以前弄到一个软件,是查身份证的。但是有壳,一直没能破解。peid检查是aspack1.08b,但是拿stripper脱不掉。正好前些日子学了ASPACK的脱法,于是想试试这个玩意。
开OD,忽略所有异常。
入口点代码如下
00502082 > 60 PUSHAD
00502083 E8 00000000 CALL IDCARD.00502088
00502088 5D POP EBP
00502089 81ED FC8D4500 SUB EBP,IDCARD.00458DFC
0050208F 8DBD F68D4500 LEA EDI,DWORD PTR SS:[EBP+458DF6]
这个不去管,一直向下拉,到
00502359 8B85 F1904500 MOV EAX,DWORD PTR SS:[EBP+4590F1]
0050235F 0347 28 ADD EAX,DWORD PTR DS:[EDI+28]
00502362 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
00502366 61 POPAD
00502367 FFE0 JMP EAX
在00502367用Run to cursor。此时EAX=443067,go。
00443067 . 90 NOP
00443068 . 75 00 JNZ SHORT IDCARD.0044306A
0044306A >-E9 91AF0B00 JMP IDCARD.004FE000
继续
004FE000 60 PUSHAD
004FE001 E8 00000000 CALL IDCARD.004FE006
004FE006 5D POP EBP
004FE007 81ED 3ED94300 SUB EBP,IDCARD.0043D93E
004FE00D B8 38D94300 MOV EAX,IDCARD.0043D938
004FE012 03C5 ADD EAX,EBP
004FE014 2B85 0BDE4300 SUB EAX,DWORD PTR SS:[EBP+43DE0B]
004FE01A 8985 17DE4300 MOV DWORD PTR SS:[EBP+43DE17],EAX
004FE020 80BD 01DE4300 00 CMP BYTE PTR SS:[EBP+43DE01],0
004FE027 75 15 JNZ SHORT IDCARD.004FE03E
004FE029 FE85 01DE4300 INC BYTE PTR SS:[EBP+43DE01]
004FE02F E8 1D000000 CALL IDCARD.004FE051
004FE034 E8 79020000 CALL IDCARD.004FE2B2
004FE039 E8 12030000 CALL IDCARD.004FE350
004FE03E 8B85 03DE4300 MOV EAX,DWORD PTR SS:[EBP+43DE03]
004FE044 0385 17DE4300 ADD EAX,DWORD PTR SS:[EBP+43DE17]
004FE04A 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
004FE04E 61 POPAD
004FE04F FFE0 JMP EAX
这里和开头几乎一样,只是短得多。
在004FE04F用Run to cursor。此时EAX=4A1A48,go。
004A1A48 ? 55 PUSH EBP
004A1A49 . 8BEC MOV EBP,ESP
004A1A4B . 83C4 F0 ADD ESP,-10
004A1A4E ? B8 90164A00 MOV EAX,IDCARD.004A1690
004A1A53 . E8 8C4EF6FF CALL IDCARD.004068E4
004A1A58 ? A1 30464A00 MOV EAX,DWORD PTR DS:[4A4630]
004A1A5D . 8B00 MOV EAX,DWORD PTR DS:[EAX]
这里是Borland系列的入口特征。用LordPE dump。ImportRec修复,可以正常运行。
这个应该是纯粹的压缩壳。没有加密IAT。所以特别容易。但是从代码看,不象ASPACK。另外,用最新的peid分析,说是*PESHiELD 0.25 -> ANAKiN*。首次脱未知壳(以前只会脱ASPACK2.12),哪位给个说法?
http://firstrose.ys168.com/
破解目录->IDCARD.RAR
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)