|
如何给记事本状态栏添加打开文件的名称显示功能
我的基础还是不够啊 受教了~ 多谢! |
|
如何给记事本状态栏添加打开文件的名称显示功能
0100337E /$ 8BFF mov edi, edi 01003380 |. 56 push esi 01003381 |. 57 push edi 01003382 |. 8B3D 80A40001 mov edi, dword ptr [100A480] 01003388 |. 33F6 xor esi, esi 0100338A |. 56 push esi 0100338B |. E8 7FF3FFFF call 0100270F 01003390 |. 85C0 test eax, eax 01003392 |. 74 40 je short 010033D4 01003394 |. 56 push esi ; /hTemplateFile 01003395 |. 68 80000000 push 80 ; |Attributes = NORMAL 0100339A |. 6A 03 push 3 ; |Mode = OPEN_EXISTING 0100339C |. 56 push esi ; |pSecurity 0100339D |. 6A 03 push 3 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE 0100339F |. 68 00000080 push 80000000 ; |Access = GENERIC_READ 010033A4 BE 28960001 mov esi, 01009628 010033A9 |. 56 push esi ; |FileName => "" 010033AA |. FF15 04110001 call dword ptr [<&KERNEL32.CreateFile>; \CreateFileW 这里有绝对路径 如果要弄绝对路径而不只是文件名的话 010033A4 BE 28960001 mov esi, 01009628 在这一句跳到自己的代码的话,要怎么处理01009628的值? 这里找不到句柄哦,SendMessageW又该怎么写? 楼主客气了。都是在学习~~~ |
|
[求助]请问用truecrypt 加密过的分区,如何把数据 彻底删除,不被恢复?
1.不行 2.不用处理,现在数据就是加密状态 3.楼主不明白TureCrypt的加密原理。 对于硬盘上每一个字节都是加密的,必须有密码才能读取。 默认的AES加密方法的密钥是256位。穷举破解是不可能的。 假如你格式化了分区,即使你有密码都恢复不了文件。 这位兄弟,用不着这样骗新人吧? |
|
[求助]看雪论坛精华11 不能下载啊,链接失效了吗?
为什么不用其他网盘呢 |
|
[讨论]为什么看到html那种代码就感到烦呢?看到C、C#就很爽呢?
看得太少 培养好兴趣就好了 |
|
如何给记事本状态栏添加打开文件的名称显示功能
我绕得太远了 楼上偏移是怎么算出来的?能不能顺便说明一下寄存器的操作是什么意思。看着还是乱乱的 |
|
[求助]修改一个exe,让他在执行完成后运行指定代码,有什么方法
照楼上的说法直接用BAT批处理多省事 |
|
[求助]windows和mac这种系统是怎么破解的?
你要破解的是啥 |
|
[求助]这段代码错在哪里
MSDN就可以查到详细的资料 |
|
[讨论]收集的汇编指令
还不够详细 还有更详细的执行解释 |
|
[求助]如何查看exe文件的源代码
我只想说 楼主很天真无邪~这个涉及人工智能的东西现在暂时看不到被开发出来的可能性 |
|
如何给记事本状态栏添加打开文件的名称显示功能
我用的是5.1.2600.5512版本的 资源里没有主窗口,看来是运行时才绘制的 中断后CreateFileW看到 01003394 |. 56 push esi ; /hTemplateFile 01003395 |. 68 80000000 push 80 ; |Attributes = NORMAL 0100339A |. 6A 03 push 3 ; |Mode = OPEN_EXISTING 0100339C |. 56 push esi ; |pSecurity 0100339D |. 6A 03 push 3 ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE 0100339F |. 68 00000080 push 80000000 ; |Access = GENERIC_READ 010033A4 |. BE 28960001 mov esi, 01009628 ; |UNICODE "D:\text.txt" 010033A9 |. 56 push esi ; |FileName => "D:\text.txt" 010033AA |. FF15 04110001 call dword ptr [<&KERNEL32.CreateFile>; \CreateFileW 010033B0 |. 83F8 FF cmp eax, -1 010033B3 |. A3 80A40001 mov dword ptr [100A480], eax 010033B8 |. 75 08 jnz short 010033C2 010033BA |. 56 push esi 010033BB |. E8 601A0000 call 01004E20 010033C0 |. EB 0C jmp short 010033CE 010033C2 |> 6A FF push -1 010033C4 |. 56 push esi 010033C5 |. E8 AF1D0000 call 01005179 010033CA |. 85C0 test eax, eax 010033CC |. 75 06 jnz short 010033D4 010033CE |> 893D 80A40001 mov dword ptr [100A480], edi 010033D4 |> 5F pop edi 010033D5 |. 5E pop esi 010033D6 \. C3 retn 这里可以存下文件地址 中断SetWindowTextW,多次Ctrl+F9后看到 01002B41 |. 51 push ecx ; /lParam 01002B42 |. 6A 01 push 1 ; |wParam = 1 01002B44 |. 68 0B040000 push 40B ; |Message = WM_USER+11. 01002B49 |. 50 push eax ; |hWnd => 4A035A 01002B4A |. FF15 40120001 call dword ptr [<&USER32.SendMessageW>; \SendMessageW 01002B50 |> FF35 44900001 push dword ptr [1009044] ; /StringToAdd = " - 记事本" 01002B56 |. 8D85 90FCFFFF lea eax, dword ptr [ebp-370] ; | 01002B5C |. 50 push eax ; |ConcatString 01002B5D |. FF15 18110001 call dword ptr [<&KERNEL32.lstrcatW>] ; \lstrcatW 01002B63 |. 8D85 90FCFFFF lea eax, dword ptr [ebp-370] 01002B69 |. 50 push eax ; /Text 01002B6A |. FF35 30980001 push dword ptr [1009830] ; |hWnd = 001F03C8 ('text.txt - 记事本',class='Notepad') 01002B70 |. FF15 F0110001 call dword ptr [<&USER32.SetWindowTex>; \SetWindowTextW 01002B76 |. 8B4D FC mov ecx, dword ptr [ebp-4] 01002B79 |. E8 C9450000 call 01007147 01002B7E |. C9 leave 01002B7F \. C2 0400 retn 4 看不出什么似乎,查找内存“Ln” 000B8EBE 4C 00 6E 00 20 00 25 00 64 00 2C 00 20 00 43 00 L.n. .%.d.,. .C. 000B8ECE 6F 00 6C 00 20 00 25 00 64 00 20 00 20 00 00 00 o.l. .%.d. . ... 下硬件断点,中断在 77C13BD5 66:85DB test bx, bx 77C13BD8 ^ 0F85 49F6FFFF jnz 77C13227 77C13BDE 5F pop edi 77C13BDF 5E pop esi 77C13BE0 8B4D FC mov ecx, dword ptr [ebp-4] 77C13BE3 8B85 E4FBFFFF mov eax, dword ptr [ebp-41C] 77C13BE9 5B pop ebx 77C13BEA E8 A43D0100 call 77C27993 77C13BEF C9 leave 77C13BF0 C3 retn 两次Ctrl+F9,回到程序领空,往上翻 01002A55 /$ 8BFF mov edi, edi ;下断点,重新运行 01002A57 |. 55 push ebp 01002A58 |. 8BEC mov ebp, esp 01002A5A |. 81EC C8070000 sub esp, 7C8 01002A60 |. A1 04960001 mov eax, dword ptr [1009604] 01002A65 |. 66:83A5 FCFEF>and word ptr [ebp-104], 0 01002A6D |. 56 push esi 01002A6E |. 8B75 08 mov esi, dword ptr [ebp+8] 01002A71 |. 57 push edi 01002A72 |. 6A 3F push 3F 01002A74 |. 8945 FC mov dword ptr [ebp-4], eax 01002A77 |. 59 pop ecx 01002A78 |. FF35 40900001 push dword ptr [1009040] ; /String2 = "无标题" 01002A7E |. 33C0 xor eax, eax ; | 01002A80 |. 8DBD FEFEFFFF lea edi, dword ptr [ebp-102] ; | 01002A86 |. F3:AB rep stos dword ptr es:[edi] ; | 01002A88 |. 56 push esi ; |String1 01002A89 |. 66:AB stos word ptr es:[edi] ; | 01002A8B |. FF15 28110001 call dword ptr [<&KERNEL32.lstrcmpW>] ; \lstrcmpW 01002A91 |. 85C0 test eax, eax 01002A93 |. 75 19 jnz short 01002AAE 01002A95 |. FF35 40900001 push dword ptr [1009040] 01002A9B |. 8D85 90FCFFFF lea eax, dword ptr [ebp-370] 01002AA1 |. 68 36010000 push 136 01002AA6 |. 50 push eax 01002AA7 |. E8 5DF9FFFF call 01002409 01002AAC |. EB 66 jmp short 01002B14 01002AAE |> 56 push esi ; /FileName 01002AAF |. FF15 24110001 call dword ptr [<&KERNEL32.GetFileAtt>; \GetFileAttributesW 01002AB5 |. 8D85 38F8FFFF lea eax, dword ptr [ebp-7C8] 01002ABB |. 50 push eax ; /pFindFileData 01002ABC |. 56 push esi ; |FileName 01002ABD |. FF15 20110001 call dword ptr [<&KERNEL32.FindFirstF>; \FindFirstFileW 01002AC3 |. 8BF8 mov edi, eax 01002AC5 |. 83FF FF cmp edi, -1 01002AC8 |. 74 22 je short 01002AEC 01002ACA |. 8D85 64F8FFFF lea eax, dword ptr [ebp-79C] 01002AD0 |. 50 push eax 01002AD1 |. BE 04010000 mov esi, 104 01002AD6 |. 56 push esi 01002AD7 |. 8D85 88FAFFFF lea eax, dword ptr [ebp-578] 01002ADD |. 50 push eax 01002ADE |. E8 26F9FFFF call 01002409 01002AE3 |. 57 push edi ; /hSearch 01002AE4 |. FF15 1C110001 call dword ptr [<&KERNEL32.FindClose>>; \FindClose 01002AEA |. EB 13 jmp short 01002AFF 01002AEC |> 56 push esi 01002AED |. BE 04010000 mov esi, 104 01002AF2 |. 56 push esi 01002AF3 |. 8D85 88FAFFFF lea eax, dword ptr [ebp-578] 01002AF9 |. 50 push eax 01002AFA |. E8 0AF9FFFF call 01002409 01002AFF |> 56 push esi ; /BufCount 01002B00 |. 8D85 90FCFFFF lea eax, dword ptr [ebp-370] ; | 01002B06 |. 50 push eax ; |Buffer 01002B07 |. 8D85 88FAFFFF lea eax, dword ptr [ebp-578] ; | 01002B0D |. 50 push eax ; |FilePath 01002B0E |. FF15 D4120001 call dword ptr [<&comdlg32.GetFileTit>; \GetFileTitleW 01002B14 |> 6A 01 push 1 01002B16 |. 6A 01 push 1 01002B18 |. FF35 C8900001 push dword ptr [10090C8] ; |format = " Ln %d, Col %d " 01002B1E |. 8D85 FCFEFFFF lea eax, dword ptr [ebp-104] ; | 01002B24 |. 6A 7F push 7F ; |count = 7F (127.) 01002B26 |. 50 push eax ; |wstr 01002B27 |. FF15 14130001 call dword ptr [<&msvcrt._snwprintf>] ; \_snwprintf<<<<<<<<<<<<<<这里是绘制函数 01002B2D |. A1 34980001 mov eax, dword ptr [1009834] ;<<<<<<<<<<<<<<<<<<<回到这里 01002B32 |. 83C4 14 add esp, 14 01002B35 |. 85C0 test eax, eax 01002B37 |. 5F pop edi 01002B38 |. 5E pop esi 01002B39 |. 74 15 je short 01002B50 01002B3B |. 8D8D FCFEFFFF lea ecx, dword ptr [ebp-104] 01002B41 |. 51 push ecx ; /lParam 01002B42 |. 6A 01 push 1 ; |wParam = 1 01002B44 |. 68 0B040000 push 40B ; |Message = WM_USER+11. 01002B49 |. 50 push eax ; |hWnd => 4903B8 01002B4A |. FF15 40120001 call dword ptr [<&USER32.SendMessageW>; \SendMessageW 01002B50 |> FF35 44900001 push dword ptr [1009044] ; /StringToAdd = " - 记事本" 01002B56 |. 8D85 90FCFFFF lea eax, dword ptr [ebp-370] ; | 01002B5C |. 50 push eax ; |ConcatString 01002B5D |. FF15 18110001 call dword ptr [<&KERNEL32.lstrcatW>] ; \lstrcatW 01002B63 |. 8D85 90FCFFFF lea eax, dword ptr [ebp-370] 01002B69 |. 50 push eax ; /Text 01002B6A |. FF35 30980001 push dword ptr [1009830] ; |hWnd = 002303C8 ('text.txt - 记事本',class='Notepad') 01002B70 |. FF15 F0110001 call dword ptr [<&USER32.SetWindowTex>; \SetWindowTextW 01002B76 |. 8B4D FC mov ecx, dword ptr [ebp-4] 01002B79 |. E8 C9450000 call 01007147 01002B7E |. C9 leave ; (initial cpu selection) 01002B7F \. C2 0400 retn 4 注意这里 01002B16 |. 6A 01 push 1 01002B18 |. FF35 C8900001 push dword ptr [10090C8] ; |format = " Ln %d, Col %d " 01002B1E |. 8D85 FCFEFFFF lea eax, dword ptr [ebp-104] ; | 01002B24 |. 6A 7F push 7F ; |count = 7F (127.) 01002B26 |. 50 push eax ; |wstr 01002B27 |. FF15 14130001 call dword ptr [<&msvcrt._snwprintf>] ; \_snwprintf 看到堆栈为 0007F314 0007F9F4 |wstr = 0007F9F4 0007F318 0000007F |count = 7F (127.) 0007F31C 000B8EB8 |format = " Ln %d, Col %d " 0007F320 00000001 |<%d> = 1 0007F324 00000001 \<%d> = 1 这样绘制的地方就知道了 剩下的就是看下msvcrt的相关函数后顺着程序的思路操作就可以了 不过我还有问题想请教 状态栏的分隔是怎么弄出来的?不清楚啊。。。 |
|
[求助]修改一个exe,让他在执行完成后运行指定代码,有什么方法
汇编代码后添加,结束前加个CALL跳到添加的地方就可以了。 |
|
[求助]如何查看exe文件的源代码
逆向咯 不逆向是不能知道的 |
|
如何给记事本状态栏添加打开文件的名称显示功能
代码放在获得文件地址后载入比较合适 要看程序如何绘制再看怎么绘制 中午再详细说 |
|
[求助]truecrypt 对抗 天津的 "天津超级计算机,世界第二" 会有什么结果?
什么意思?RSA密钥比AES长 不过强度应该不能只比密钥长度 密码学我不大会 纯暴力破解的话密钥长的总归好吧 |
|
删了。。。。。。。
你可以提供一下程序 没有完美的加密 总会被破解的 |
|
[求助]这是什么技术?
有汇编基础的都会破解吧 这个是直接比较的 跳转前就能看到10了 |
|
[求助]truecrypt 对抗 天津的 "天津超级计算机,世界第二" 会有什么结果?
这个计算要算AES内部计算的次数,Turecrypt也是用尝试解密的验证方式.有这么强大的计算主机破解也不会很久,还是用上密钥比较安全,不过AES内部还是用的256位密钥,要真的比较安全还是RAS比较好. |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值