|
|
首先载入目标,F9 003D042F 8918 MOV DWORD PTR DS:[EAX],EBX ---第一处异常 003D0431 EB 3C JMP SHORT 003D046F 003D0433 DF69 4E FILD QWORD PTR DS:[ECX+4E] 003D0436 58 POP EAX 003D0437 DF59 71 FISTP WORD PTR DS:[ECX+71] 003D043A F4 HLT 003D043B EB 01 JMP SHORT 003D043E 003D043D DF70 EF FBSTP TBYTE PTR DS:[EAX-11] 003D0440 DF51 EB FIST WORD PTR DS:[ECX-15] 003D0443 F4 HLT 003D0444 EB EB JMP SHORT 003D0431 ----------------------------------------------------- 按SHIFT+F9到这里 003D4C83 D975 F8 FSTENV (28-BYTE) PTR SS:[EBP-8] ---第二处异常 003D4C86 2BC0 SUB EAX,EAX 003D4C88 0FB74C16 06 MOVZX ECX,WORD PTR DS:[ESI+EDX+6] 003D4C8D C1E0 05 SHL EAX,5 003D4C90 C1E1 03 SHL ECX,3 003D4C93 8908 MOV DWORD PTR DS:[EAX],ECX 003D4C95 0FB74C16 14 MOVZX ECX,WORD PTR DS:[ESI+EDX+14] 003D4C9A 03C1 ADD EAX,ECX 003D4C9C 83E8 10 SUB EAX,10 003D4C9F 03D0 ADD EDX,EAX 003D4CA1 8B4C16 0C MOV ECX,DWORD PTR DS:[ESI+EDX+C] --------------------------------------------------------- 看一下ESP+4,并设断点,按SHIFT+F9 003D4D38 64:67:A1 0000 MOV EAX,DWORD PTR FS:[0] ---在这里设断 003D4D3D 8B20 MOV ESP,DWORD PTR DS:[EAX] 003D4D3F 64:67:8F06 0000 POP DWORD PTR FS:[0] 003D4D45 E8 00000000 CALL 003D4D4A 003D4D4A 5D POP EBP 003D4D4B 81ED 86AA4000 SUB EBP,40AA86 003D4D51 80BD 72CF4000 FF CMP BYTE PTR SS:[EBP+40CF72],FF 003D4D58 74 11 JE SHORT 003D4D6B 点右键里的seach for ..command 输入 jmp edx , Find 到这里 003D4D60 890C24 MOV DWORD PTR SS:[ESP],ECX 003D4D63 8B95 E1A44200 MOV EDX,DWORD PTR SS:[EBP+42A4E1] 003D4D69 FFE2 JMP EDX ---不是她 003D4D6B E8 00000000 CALL 003D4D70 003D4D70 5D POP EBP 003D4D71 81ED ACAA4000 SUB EBP,40AAAC 003D4D77 EB 47 JMP SHORT 003D4DC0 003D4D79 DF69 4E FILD QWORD PTR DS:[ECX+4E] 点右键里的seach for .. Next 到这里 003D5CE9 0D FD0A4369 OR EAX,69430AFD 003D5CEE EB F4 JMP SHORT 003D5CE4 003D5CF0 EB EB JMP SHORT 003D5CDD 003D5CF2 EB 8C JMP SHORT 003D5C80 003D5CF4 40 INC EAX 003D5CF5 FFE2 JMP EDX ---aha 设个断点,F9下车吧。 003D5CF7 EB 3A JMP SHORT 003D5D33 003D5CF9 DF69 4E FILD QWORD PTR DS:[ECX+4E] 003D5CFC 58 POP EAX 003D5CFD DF59 72 FISTP WORD PTR DS:[ECX+72] 003D5D00 F4 HLT 003D5D01 EB 01 JMP SHORT 003D5D04 dump出来,下面就是重建Import table
用ollydbg跟踪asproctect1.2加壳的软件 (1千字) 发信人:zczc 时 间:2002-4-14 15:47:48用ollydbg跟踪asproctect1.2加壳的软件 作者:zczc 写文章只是为交流技术,转载请保持完整。 打开ollydbg,将options菜单下的debugging options中的Exceptions的int3 break 和single break 勾选上,好了,开始吧。 这次以XXXXXX为目标,加载XXXXX ,按F9 嘭..... 中断在第一个异常处: 003D009D 3100 XOR DWORD PTR DS:[EAX],EAX <--- 003D009F EB 01 JMP SHORT 003D00A2 003D00A1 68 648F0500 PUSH 58F64 003D00A6 0000 ADD BYTE PTR DS:[EAX],AL 这次要按shift+F9忽略异常,继续执行 又断下,前后要按大约19次(呵呵,没仔细数),来到: 00901CA4 FE06 INC BYTE PTR DS:[ESI] <--- 00901CA6 EB E8 JMP SHORT 00901C90 00901CA8 83E0 72 AND EAX,72 00901CAB 33D2 XOR EDX,EDX 00901CAD 64:8F02 POP DWORD PTR FS:[EDX] 看一下右下角的esp数据窗,在代码窗点右键,go to -->Expression ,把esp+4的内容填入,F2设个断点,按shift+F9 安全落地。呵呵,接下来一路F7(别按太快,你看仔细) 00901C77 5B POP EBX 00901C78 58 POP EAX 00901C79 05 F7AA26E5 ADD EAX,E526AAF7 00901C7E 5C POP ESP 00901C7F 0BC9 OR ECX,ECX 00901C81 74 E3 JE SHORT 00901C66 00901C83 8901 MOV DWORD PTR DS:[ECX],EAX 00901C85 03C3 ADD EAX,EBX 00901C87 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX 00901C8B 61 POPAD 00901C8C FFE0 JMP EAX <---到这里下车
|