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 就可以了,我试验了几个程序都可以.
如果有什么不对的地方,请大家指教,谢谢!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课