有一软件脱壳后,运行即关闭。有自校验,双开OD,下断点BP GetFileSize拦下,返回程序领空,发现未脱壳软件与脱壳软件代码完全不一样,但跟进GetFileSize是一样的
脱壳后程序领空:
0054ABA2 8B16 MOV EDX,DWORD PTR DS:[ESI]
0054ABA4 8D4424 58 LEA EAX,DWORD PTR SS:[ESP+58]
0054ABA8 50 PUSH EAX
0054ABA9 8BCE MOV ECX,ESI
0054ABAB FF52 20 CALL NEAR DWORD PTR DS:[EDX+20]
0054ABAE 50 PUSH EAX //此处是按alt+f9返回处
0054ABAF 8D4C24 68 LEA ECX,DWORD PTR SS:[ESP+68]
0054ABB3 C64424 54 01 MOV BYTE PTR SS:[ESP+54],1
0054ABB8 E8 25964400 CALL <JMP.&mfc42.#CString::operator=_858>
0054ABBD 8D4C24 58 LEA ECX,DWORD PTR SS:[ESP+58]
0054ABC1 885C24 50 MOV BYTE PTR SS:[ESP+50],BL
0054ABC5 E8 E2954400 CALL <JMP.&mfc42.#CString::~CString_800>
0054ABCA 8B16 MOV EDX,DWORD PTR DS:[ESI]
0054ABCC 8D4424 0C LEA EAX,DWORD PTR SS:[ESP+C]
0054ABD0 6A 04 PUSH 4
0054ABD2 50 PUSH EAX
0054ABD3 8BCE MOV ECX,ESI
0054ABD5 FF52 3C CALL NEAR DWORD PTR DS:[EDX+3C]
0054ABD8 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
0054ABDC 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14]
0054ABE0 894F 3C MOV DWORD PTR DS:[EDI+3C],ECX
未脱壳程序领空:
0077A618 C745 FC 0100000>MOV DWORD PTR SS:[EBP-4],1
0077A61F 50 PUSH EAX
0077A620 C745 DC 1000000>MOV DWORD PTR SS:[EBP-24],10
0077A627 895D E0 MOV DWORD PTR SS:[EBP-20],EBX
0077A62A 895D E8 MOV DWORD PTR SS:[EBP-18],EBX
0077A62D C645 FC 02 MOV BYTE PTR SS:[EBP-4],2
0077A631 FF15 30D09E00 CALL NEAR DWORD PTR DS:[9ED030] ; advapi32.CryptAcquireContextA
0077A637 85C0 TEST EAX,EAX
0077A639 0F84 AC000000 JE WinStock.0077A6EB
0077A63F 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20]
0077A642 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18]
0077A645 51 PUSH ECX
0077A646 53 PUSH EBX
0077A647 53 PUSH EBX
0077A648 68 03800000 PUSH 8003
0077A64D 52 PUSH EDX
0077A64E FF15 2CD09E00 CALL NEAR DWORD PTR DS:[9ED02C] ; advapi32.CryptCreateHash
0077A654 85C0 TEST EAX,EAX //此处是按alt+f9返回处
0077A656 0F84 8F000000 JE WinStock.0077A6EB
0077A65C 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0077A65F 83C9 FF OR ECX,FFFFFFFF
弄的我无法下手对两段代码进行对比。不知是何原因,望高人予以解惑。谢谢
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法