首页
社区
课程
招聘
[旧帖] 关于脱壳后的程序,自校验问题 0.00雪花
发表于: 2012-5-4 17:25 4633

[旧帖] 关于脱壳后的程序,自校验问题 0.00雪花

2012-5-4 17:25
4633
有一软件脱壳后,运行即关闭。有自校验,双开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虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 817
活跃值: (2063)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用 OD 加载脱过壳的程序,下断点,

    bp ExitProcess

    F9运行,程序断下后,从堆栈获得程序调用该 API 的位置,分析程序来路上的可疑之处,尝试绕过此 API 调用。这时,可以和未脱壳程序对比,看看未脱壳的程序是如何绕过这个 API 的,应该很容易找到关键。
2012-5-4 18:18
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
3
前面一个地方是对的可能性高于后面一个,GetFileSize也有可能被其他什么部分的代码调用。
2012-5-4 19:11
0
雪    币: 508
活跃值: (202)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
4
脱壳后的上传看看
2012-5-4 20:09
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不好意思,附件不能上传,是一国产软件,壳是脱了的,主要怕某公司得知今后破解更难呀
2012-5-4 20:13
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
下 bp ExitProcess 断点,返回,到段首看是哪里调用,再到调用处看段首,如此下去就应该能找到校验关键点。
2012-5-5 05:50
0
雪    币: 508
活跃值: (202)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
7
纸上谈兵是比较困难
2012-5-5 07:02
0
雪    币: 205
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
此软件不是退出,是 0000005 错误
2013-1-23 21:48
0
游客
登录 | 注册 方可回帖
返回
//