有个程序,有如下代码:
005C2B3C . 50 PUSH EAX
005C2B3D . 51 PUSH ECX
005C2B3E . FF7424 04 PUSH DWORD PTR SS:[ESP+4]
005C2B42 . 68 F7395C00 PUSH WinMPGVi.005C39F7
005C2B47 . 810424 BA0200>ADD DWORD PTR SS:[ESP],2BA
005C2B4E . C3 RENT
005C2B4F > 83C0 08 ADD EAX,8
005C2B52 . 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
005C2B56 . 894424 04 MOV DWORD PTR SS:[ESP+4],EAX
005C2B5A . FF7424 04 PUSH DWORD PTR SS:[ESP+4]
005C2B5E . 50 PUSH EAX
005C2B5F . 68 7C3B5C00 PUSH WinMPGVi.005C3B7C
005C2B64 . 810424 460100>ADD DWORD PTR SS:[ESP],146
005C2B6B . C3 RETN
005C2B6C . 83C0 0C ADD EAX,0C
005C2B6F . 8B7C24 08 MOV EDI,DWORD PTR SS:[ESP+8]
005C2B73 . 897C24 10 MOV DWORD PTR SS:[ESP+10],EDI
005C2B77 . 8BC4 MOV EAX,ESP
005C2B79 . 83C0 0C ADD EAX,0C
005C2B7C . 68 1F405C00 PUSH WinMPGVi.005C401F
005C2B81 . 812C24 470300>SUB DWORD PTR SS:[ESP],347
005C2B88 . C3 RETN
005C2B89 . 897C24 10 MOV DWORD PTR SS:[ESP+10],EDI
005C2B8D . 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
005C2B91 . 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
005C2B95 . 8B3C24 MOV EDI,DWORD PTR SS:[ESP]
005C2B98 . 83C4 0C ADD ESP,0C
005C2B9B . 68 F63C5C00 PUSH WinMPGVi.005C3CF6
005C2BA0 . 830424 00 ADD DWORD PTR SS:[ESP],0
005C2BA4 . C3 RETN
005C2BA5 $ 68 AFD65A00 PUSH WinMPGVi.005AD6AF
005C2BAA . 013424 ADD DWORD PTR SS:[ESP],ESI
005C2BAD . 6A DF PUSH -21
005C2BAF . 53 PUSH EBX
005C2BB0 . E9 56110000 JMP WinMPGVi.005C3D0B
005C2BB5 . C2 0400 RETN 4
005C2BB8 . 68 DC3E5C00 PUSH WinMPGVi.005C3EDC
005C2BBD . 812C24 B10100>SUB DWORD PTR SS:[ESP],1B1
005C2BC4 . C3 RETN
有很多返回.如程序执行到005C2B4F处时,不是通过跳转(如jmp)或函数调用(如call)而来的,而是通过返回(RENT)来的,若是通过跳转来的,在OLLDBG中能够知道是从哪儿跳来的(例如显示"跳转来自005C2B3C).可通过这种返回方式来的就不知道是从哪个地址来的了,请各位大侠帮忙给看看.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课