首页
社区
课程
招聘
请教脱壳
2004-7-16 23:46 4119

请教脱壳

2004-7-16 23:46
4119
ftp://221.229.250.35/incoming/go600/go60.rar
我把它传到了这个机器上面了!

软件的壳有自修改的,我经过分析第一个断点要设在
4a0179的位置,但是很奇怪无法全速跟踪,
只能单步走!   

软件的壳有自修改的,我经过分析第一个断点要设在
4a0179的位置,但是很奇怪无法全速跟踪,
只能单步走!   

而且有些CALL的程序也不能步过的跟踪,只能步入
程序的结构也特别的气人!
下面是一个动态修改回来的程序段,这个CALL 不能步过的跟踪,
否则要跑飞,当步入的时候ECX=4190H,而且在ret的地方也不能下断点,
否则也会飞掉,难道要这样单步跟踪几千次吗?
有没有好一点的办法?
我也不知道这个壳究竟有多大?   

:00004310 50                      push eax
:00004311 51                      push ecx
:00004312 EB0F                    jmp 00004323 --->
:00004314 B9EB0FB8EB              mov ecx, EBB80FEB
:00004319 07                      pop es
:0000431A B9EB0F90EB              mov ecx, EB900FEB
:0000431F 08FD                    or ch, bh
:00004321 EB0B                    jmp 0000432E
:00004323 F2                --->  repnz
:00004324 EBF5                    jmp 0000431B --->

004A431B   EB 0F            JMP SHORT GO600.004A432C

004A432C   EB E9            JMP SHORT GO600.004A4317

004A4317   B8 EB07B9EB      MOV EAX,EBB907EB
004A431C   0F90EB           SETO BL
004A431F   08FD             OR CH,BH
004A4321   EB 0B            JMP SHORT GO600.004A432E

004A432E   F3:              PREFIX REP:                              ;
004A432F   EB E4            JMP SHORT GO600.004A4315

004A4315   EB 0F            JMP SHORT GO600.004A4326

004A4326   EB F6            JMP SHORT GO600.004A431E

004A431E   EB 08            JMP SHORT GO600.004A4328

004A4328   F2:              PREFIX REPNE:     
004A4329   EB 08            JMP SHORT GO600.004A4333

004A4333   59               POP ECX
004A4334   58               POP EAX
004A4335   D208             ROR BYTE PTR DS:[EAX],CL
004A4337   3008             XOR BYTE PTR DS:[EAX],CL
004A4339   40               INC EAX
004A433A   49               DEC ECX
004A433B   85C9             TEST ECX,ECX
004A433D   75 D1            JNZ SHORT GO600.004A4310
004A433F   C3               RETN

:00004326 EBF6              jmp 0000431E
:00004328 F2                repnz
:00004329 EB08              jmp 00004333
:0000432B FD                std
:0000432C EBE9              jmp 00004317
:0000432E F3                repz
:0000432F EBE4              jmp 00004315
:00004331 FC                cld
:00004332 E95958D208        jmp 08D29B90
:00004337 3008              xor byte ptr [eax], cl
:00004339 40                inc eax
:0000433A 49                dec ecx
:0000433B 85C9              test ecx, ecx
:0000433D 75D1              jne 00004310
:0000433F C3                ret

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞2
打赏
分享
最新回复 (7)
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
k4b 2004-7-17 00:42
2
0
这样的call是变形JMP指令,只能步入,没别的办法
雪    币: 1540
活跃值: (2797)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
limee 2004-7-17 10:24
3
0
感觉手工脱壳的话,工作量很大啊~!
大虾能帮我看看吗?
这个壳的反跟踪的的代码在哪里?
我跟踪老是跑飞,能够指点一二吗?谢谢!
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
k4b 2004-7-17 10:40
4
0
你跟多久了?就说老火?我都跟2个星期了。
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-17 11:24
5
0
雪    币: 1540
活跃值: (2797)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
limee 2004-7-17 16:42
6
0
程序边运行边解码,一直到这里我发现了可疑的地方!
从这里出来,程序就飞掉了!
请教各位程序是用的什么数据结构进行反跟踪的?

004A3254   8B95 5C3E0000    MOV EDX,DWORD PTR SS:[EBP+3E5C]
004A325A   83FA 00          CMP EDX,0
004A325D   74 25            JE SHORT GO600.004A3284
004A325F   66:813E 4D5A     CMP WORD PTR DS:[ESI],5A4D!
004A3264   74 0F            JE SHORT GO600.004A3275
004A3266   81EE 00000100    SUB ESI,10000
004A326C   8B95 5C3E0000    MOV EDX,DWORD PTR SS:[EBP+3E5C]
004A3272   4A               DEC EDX
004A3273  ^EB DF            JMP SHORT GO600.004A3254
004A3275   8B7E 3C          MOV EDI,DWORD PTR DS:[ESI+3C]
004A3278   03FE             ADD EDI,ESI
004A327A   813F 50450000    CMP DWORD PTR DS:[EDI],4550
004A3280   74 07            JE SHORT GO600.004A3289
004A3282  ^EB E2            JMP SHORT GO600.004A3266
004A3284   BE 0000F7BF      MOV ESI,BFF70000
004A3289   8BC6             MOV EAX,ESI
004A328B   C3               RETN
004A328C   8BC8             MOV ECX,EAX
004A328E   81E1 FF0F0000    AND ECX,0FFF
004A3294   51               PUSH ECX
004A3295   038D 663E0000    ADD ECX,DWORD PTR SS:[EBP+3E66]
004A329B   81C1 FF0F0000    ADD ECX,0FFF
004A32A1   C1E9 0C          SHR ECX,0C
004A32A4   C1E8 0C          SHR EAX,0C
004A32A7   50               PUSH EAX
004A32A8   68 00000420      PUSH 20040000
004A32AD   6A FF            PUSH -1
004A32AF   51               PUSH ECX
004A32B0   50               PUSH EAX
004A32B1   68 0D000100      PUSH 1000D
004A32B6   FF95 623E0000    CALL DWORD PTR SS:[EBP+3E62]
004A32BC   40               INC EAX
004A32BD   5A               POP EDX
004A32BE   59               POP ECX
004A32BF   74 05            JE SHORT GO600.004A32C6
004A32C1   8BC2             MOV EAX,EDX
004A32C3   C1E0 0C          SHL EAX,0C
004A32C6   C3               RETN
雪    币: 1540
活跃值: (2797)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
limee 2004-7-17 16:45
7
0
004A3254   MOV EDX,DWORD PTR SS:[EBP+3E5C]
004A325A   CMP EDX,0
004A325D   JE SHORT GO600.004A3284
004A325F   CMP WORD PTR DS:[ESI],5A4D
004A3264   JE SHORT GO600.004A3275
004A3266   SUB ESI,10000
004A326C   MOV EDX,DWORD PTR SS:[EBP+3E5C]
004A3272   DEC EDX
004A3273   JMP SHORT GO600.004A3254
004A3275   MOV EDI,DWORD PTR DS:[ESI+3C]
004A3278   ADD EDI,ESI
004A327A   CMP DWORD PTR DS:[EDI],4550
004A3280   JE SHORT GO600.004A3289
004A3282   JMP SHORT GO600.004A3266
004A3284   MOV ESI,BFF70000
004A3289   MOV EAX,ESI
004A328B   RETN
雪    币: 1540
活跃值: (2797)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
limee 2004-7-17 17:00
8
0
斑竹能否看看,是不是在4A3254的地方
就是程序的OEP吗?

004A3254 MOV EDX,DWORD PTR SS:[EBP+3E5C]
004A325A CMP EDX,0
004A325D JE SHORT GO600.004A3284
004A325F CMP WORD PTR DS:[ESI],5A4D
004A3264 JE SHORT GO600.004A3275
004A3266 SUB ESI,10000
004A326C MOV EDX,DWORD PTR SS:[EBP+3E5C]
004A3272 DEC EDX
004A3273 JMP SHORT GO600.004A3254
004A3275 MOV EDI,DWORD PTR DS:[ESI+3C]
004A3278 ADD EDI,ESI
004A327A CMP DWORD PTR DS:[EDI],4550
004A3280 JE SHORT GO600.004A3289
004A3282 JMP SHORT GO600.004A3266
004A3284 MOV ESI,BFF70000
004A3289 MOV EAX,ESI
004A328B RETN
游客
登录 | 注册 方可回帖
返回