|
|
|
[求助]MD5的一个疑问
google: md5 source code |
|
[已解决]一个程序的算法问题
设假码: "ABCDEFGHIJKL", 长度 = 12 2、5、7、8、10位,再加长度,得 "BEGHJ12" 再做如下运算: ('B'+'E') % 5 + 'a' ==> x1 ('G'+'H') % 5 + 'a' ==> x2 ('J'+'1') % 5 + 'a' ==> x3 ('2'+'B'+'G') % 5 + 'a' ==> x4 设x1x2x3x4 为 "abcd" 'A' 应满足 ( 'A' % 0x3b ) <= 0x2e 'I' 应满足 ( 'I' % 0x3d ) <= 0x2a 由 "BEGHJ12" 和 "abcd" 挑出8位排成 dEbG12 最后判断 adEbG12 == "be9c912" ? |
|
[求助]这两个机器码的汇编指令一样吗?
如果是16位代码段,66前缀表示指令使用32位操作数,67前缀表示指令使用32位地址;如果是32位代码段,66前缀表示指令使用16位操作数,67前缀表示指令使用16位地址。 |
|
[求助]手动脱壳进阶第一篇Petite2.2中遇到的一个问题(红色部分)
http://bbs.pediy.com/showthread.php?p=436767 |
|
[求助]这样的代码是API调用吗?
看看USER32.LoadCursorA |
|
|
|
[求助]DLL 重定向问题
除了用重定位表, 还可以这样。 PUSHA CALL NEXT NEXT: POP EBP MOV EDI, EBP ADD EDI, XXXX OR ECX FFFFFFFF XOR EAX, EAX REPNZ SCASB NOT ECX ... POPA 实际上也是重定位, 病毒与壳常这样 |
|
[求助]自效验的问题
第一个检查, 过 loader , 是下断 bp ExitProcess, 略过。 第二个检查, 是下断 bp TerminateProcess, F9, 断下 然后到 Menu ==> View ==> Call stack , 如下: Call stack of main thread Address Stack Procedure / arguments Called from Frame 0012FBE8 004AAAD3 .004B6A8F .004AAACE 0012FC00 很明显, call stack 不全; CPU 窗口,Ctrl+G 到 004AASACE, 看到 有些反汇编代码是 db ..., 如下 004AAACE |. E8 BCBF0000 call 004B6A8F 004AAAD3 |. 3965 F8 cmp dword ptr [ebp-8], esp 004AAAD6 |. 74 0D je short 004AAAE5 004AAAD8 |. 68 06000000 push 6 004AAADD |. E8 A7BF0000 call 004B6A89 004AAAE2 |. 83C4 04 add esp, 4 004AAAE5 |> E9 00000000 jmp 004AAAEA 004AAAEA |> 8BE5 mov esp, ebp 004AAAEC |. 5D pop ebp 004AAAED \. C2 0400 retn 4 004AAAF0 55 db 55 ; CHAR 'U' 004AAAF1 8B db 8B 004AAAF2 EC db EC 004AAAF3 81 db 81 004AAAF4 EC db EC 004AAAF5 1C db 1C 004AAAF6 00 db 00 右键点CPU窗后, Analysis ==> Remove analysis from module 再看 Call stack 如下: Call stack of main thread Address Stack Procedure / arguments Called from Frame 0012FBE8 004AAAD3 .004B6A8F .004AAACE 0012FC00 0012FC04 004B5142 ? .004AAA7F .004B513D 0012FC68 004B51A4 .004B449B .004B519F 0012FC64 0012FC80 77D1CCD1 Includes .004B51A4 USER32.77D1CCCE 0012FC9C 0012FCA0 77D1CDAD USER32.77D1CC7D USER32.77D1CDA8 0012FC9C 0012FCC0 004B4301 .004B6A8F .004B42FC 0012FCBC 0012FCE4 10028ED9 Includes .004B4301 krnln.10028ED6 0012FCE0 0012FD18 100523D8 krnln.10028E69 krnln.100523D3 0012FD14 0012FD48 10056AB9 krnln.10051FE0 krnln.10056AB4 0012FD58 10056A7A Includes krnln.10056AB9 krnln.10056A78 0012FD68 10053A91 krnln.10056A60 krnln.10053A8C 0012FD6C 000007D8 Arg1 = 000007D8 0012FD70 0012FE24 Arg2 = 0012FE24 0012FD74 00000000 Arg3 = 00000000 0012FE50 10053EB0 krnln.10053160 krnln.10053EAB 0012FE6C 10029658 krnln.10053E80 krnln.10029653 0012FE78 004B6A47 .004B6A65 .004B6A42 然后用 两个OD重跟,一个跟原程序, 一个跟脱壳的, 最好是在两台机器上跟, 效果最好。 过了第一个检查点后, 在所有的 上面的 Call stack 中的 Called from 地址上下断, 即 004AAACE 004B513D 004B519F 004B42FC 然后两个OD一起运行, 看看经过哪个call 后不一样, 脱壳的会过每一个断点, 到TerminateProcess, 未脱壳 的不会; F8 经过下面的一句, 两个OD的结果不一样, 004B519F E8 F7F2FFFF call 004B449B 脱壳的在004B449B中会走到 004B513D E8 3D59FFFF call 004AAA7F 未脱壳的不会; 所以问题出在004B449B中, 用两个OD F8单步跟, 很快可发现过了004B50C8后不一样, 一个跳, 一个不跳 |
|
[求助]自效验的问题
004B50C1 817D CC 301F080>cmp dword ptr [ebp-34], 81F30 004B50C8 0F8C 05000000 jl 004B50D3 |
|
[求助]学二哥教程中遇到的问题 请朋友们指点 谢谢
1. Alt+F9应该是在无Exception 的时候才对; 2. 单步时, OD会在每一步代码都产生一单步异常, 由OD自己处理, 应该是处理指令结果, 刷新OD的各个窗口, 然后让程序停在下一句; 若程序代码也产生了单步异常, OD 还是按是自己产生的单步异常来处理, 因为它分不清是自己产生的还是程序故意产生的. 可以这么说, 单步异常全是给调试器用的, 若程序代码主动导致的单步异常,则都是反调试的. |
|
[求助]学二哥教程中遇到的问题 请朋友们指点 谢谢
第一次异常在 40D0135, 由SEH_handler 40584c处理 004058B2,4058B5 走过后, SEH被修改, handler 为405B0E 004058B2 894B 04 mov dword ptr [ebx+4], ecx 004058B5 64:891D 0000000>mov dword ptr fs:[0], ebx 下面的几行,在4058E4处产生一单步异常, 由405B0E处理, 而在用F7或F8单步时,不会 执行到405B0E处; 004058DA 60 pushad 004058DB 66:9C pushfw 004058DD 0FBA3C24 08 btc dword ptr [esp], 8 004058E2 66:9D popfw 004058E4 5B pop ebx 00405B0E 33C0 xor eax, eax 00405B10 64:8B18 mov ebx, dword ptr fs:[eax] 00405B13 8B1B mov ebx, dword ptr [ebx] 00405B15 8D63 AE lea esp, dword ptr [ebx-52] 00405B18 61 popad 00405B19 833E 00 cmp dword ptr [esi], 0 00405B1C ^ 0F84 C2FDFFFF je 004058E4 // 最终由这跳回4058E4继续执行 00405B22 0FBA26 1F bt dword ptr [esi], 1F 00405B26 73 05 jnb short 00405B2D ... 00405B90 ^\EB C5 jmp short 00405B57 在OD中,单步跟会导致00405B0E-00405B90之间的代码执行不到, 最后的结果就是在405937处的比较结果不对。 在第二次异常后, 可在405B0E处下断, shift+F9; 然后可单步到405937, 结果正确。 |
|
|
|
[求助]关于破解UltraISO软件头痛问题!
UltraISO-8.2.0.1669 PE ultraiso@pediy.com TDDC-DDCT-HPHW-RWVC KHTY-WVVB-RBKM-GBXW KYBT-HHVF-CRBR-YDRH |
|
[求助]大嘴日语的四层壳脱掉后的修复问题
跟原程序, 到OEP后对6BE2B0,6BE4C8下硬件访问断点: [6BE2B0]=kernel32.GetProcAddress [6BE4C8]=kernel32.GetProcAddress copy data\data.dat . 修复的程序就可以运行, 不过, 原程序和修复的程序运行都有什么 OLE错误, 那就不是脱壳的问题了! |
|
[求助]新手求助请问句中的[ebp-1C]从那里来?
007A9251 8BEC mov ebp, esp // ebp = old_esp ... 007A9261 8D45 E4 lea eax, dword ptr [ebp-1C] // eax = ebp - 0x1C |
|
[求助]keymake为什么没有注册码出现?
注册码不在EDX中, 而在 [EBP-0xFC]中 |
|
脱壳后的程序有自校验
如果 BP CreateFileA 不行, 用 BP FindFirstFileA 试一试 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值