1.用Ollydbg载入 2.在API GetProcAddress 设置断点 3.F9运行程序 4.断点在GetProcAddress上,此时查看Olly的调用堆栈,找到在 在程序段内的调用地址,通常只有一处,双击来到类似下面的代码 004001C6 FF53 10 CALL NEAR DWORD PTR [EBX+10] 004001C9 95 XCHG EAX, EBP 004001CA 8B07 MOV EAX, DWORD PTR [EDI] 004001CC 40 INC EAX ; KERNEL32.77E60000 004001CD ^ 78 F3 JS SHORT 004001C2 ; FullScre.004001C2 004001CF 75 03 JNZ SHORT 004001D4 ; FullScre.004001D4 004001D1 FF63 0C JMP NEAR DWORD PTR [EBX+C] 004001D4 50 PUSH EAX ; KERNEL32.77E60000 004001D5 55 PUSH EBP 004001D6 FF53 14 CALL NEAR DWORD PTR [EBX+14] 004001D9 AB STOSD 004001DA ^ EB EE JMP SHORT 004001CA ; FullScre.004001CA 004001DC 33C9 XOR ECX, ECX 004001DE 41 INC ECX 004001DF FF13 CALL NEAR DWORD PTR [EBX] 004001E1 13C9 ADC ECX, ECX 5.注意其中的 JMP NEAR DWORD PTR [EBX+C]处,这里下断点,然后F9运行 6.中断在JMP NEAR DWORD PTR [EBX+C]处时,就是跳向OEP了 7.OllyDump Dump 就可以了,我试验了几个程序都可以.
|