首页
社区
课程
招聘
[讨论]Fake Ninja 2.7 by Spirit.exe 脱壳问题
发表于: 2006-9-29 19:54 5149

[讨论]Fake Ninja 2.7 by Spirit.exe 脱壳问题

2006-9-29 19:54
5149
出于学习目的,拿个试炼品试试,查壳查不到,但看看加壳后的区段名,好像是一个变形壳,OD跟踪,F7跟入,esp定律,F9几步到了一处循环会慢慢把全部输入表一一解压和修复,直接用自动跟入运行几分钟便可,最后输入表修复好了,完好无损,但就是不知道哪里是入口点,dump出的东西修复后无法运行,请高手指点。

附件为输入表树文件+原版文件。

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
2
本人很菜,不知道是对是错?
OEP 004770A8
2006-9-29 20:02
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
最初由 bestchao 发布
本人很菜,不知道是对是错?
OEP 004770A8


试过了不行的。
2006-9-29 20:06
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
hmimys-Packer V1.0 -> hmimys *

00472D0C     55                 push ebp
//OEP
00472D0D     8BEC               mov ebp,esp
00472D0F     83C4 F0            add esp,-10
00472D12     B8 1C2B4700        mov eax,472B1C
00472D17     E8 6C2FF9FF        call 00405C88
2006-9-29 20:09
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
请教各位老兄及fly兄:下面一个循环如何才能跳过
004A64ED    FF13            call    near [ebx]
004A64EF    8BE8            mov     ebp, eax
004A64F1    AC              lods    byte ptr [esi]
004A64F2    84C0            test    al, al
004A64F4  ^ 75 FB           jnz     short Fake_Nin.004A64F1
004A64F6    AC              lods    byte ptr [esi]
004A64F7    84C0            test    al, al
004A64F9  ^ 74 EA           je      short Fake_Nin.004A64E5
004A64FB    4E              dec     esi
004A64FC    AD              lods    dword ptr [esi]
004A64FD    A9 00000080     test    eax, 80000000
004A6502    75 0B           jnz     short Fake_Nin.004A650F
004A6504    83EE 04         sub     esi, 4
004A6507    56              push    esi
004A6508    55              push    ebp
004A6509    FF53 04         call    near [ebx+4]
004A650C    AB              stos    dword ptr es:[edi]
004A650D  ^ EB E2           jmp     short Fake_Nin.004A64F1
004A650F    25 FFFFFF7F     and     eax, 7FFFFFFF  这里F4会飞掉
004A6514    50              push    eax
004A6515    55              push    ebp
004A6516    FF53 04         call    near [ebx+4]
2006-9-29 20:18
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
6
FLY老大 帮忙看下。。我的2个问题帖 Thanks
2006-9-29 20:19
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
知道了OEP下个硬件执行断点便可一步到达,可是不知道oep该如何走呢?迷茫.......
2006-9-29 20:24
0
雪    币: 319
活跃值: (2404)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
8
bp GetModuleHandleA

然后返回,再返回,往上找。。。。
2006-9-29 20:36
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
最初由 csjwaman 发布
bp GetModuleHandleA

然后返回,再返回,往上找。。。。


找死都找不到,此法不科学。

fly这样说:
原帖由 fly 于 2006-9-29 20:42 发表
输入表处理完
有ret
返回就是OEP了
2006-9-29 21:47
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
10
最初由 cxlrb 发布
请教各位老兄及fly兄:下面一个循环如何才能跳过
004A64ED FF13 call near [ebx]
004A64EF 8BE8 mov ebp, eax
004A64F1 AC lods byte ptr [esi]
004A64F2 84C0 test al, al
........


能跳出这个循环的还有一个位置:
004A64E5     AD             lods dword ptr ds:[esi]
004A64E6     85C0           test eax,eax
004A64E8     74 32          je short Fake_Nin.004A651C   ; 这里
我的经验,在各个能退出循环的地方下断,然后F9,一般情况下飞不掉.
2006-9-30 07:18
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
11
不好意思,刷了2下.
2006-9-30 07:36
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
12
感谢cyto兄最有效的方法,感谢其他各位老兄的提示。
2006-9-30 08:45
0
雪    币: 319
活跃值: (2404)
能力值: ( LV12,RANK:980 )
在线值:
发帖
回帖
粉丝
13
00405C8D    A3 A0304700     MOV DWORD PTR DS:[4730A0],EAX
00405C92    6A 00           PUSH 0
00405C94    E8 2BFFFFFF     CALL 00405BC4                            ; JMP 到 Kernel32.GetModuleHandleA
00405C99    A3 64C64700     MOV DWORD PTR DS:[47C664],EAX            ; 第一次返回
00405C9E    A1 64C64700     MOV EAX,DWORD PTR DS:[47C664]
00405CA3    A3 AC304700     MOV DWORD PTR DS:[4730AC],EAX
00405CA8    33C0            XOR EAX,EAX
00405CAA    A3 B0304700     MOV DWORD PTR DS:[4730B0],EAX
00405CAF    33C0            XOR EAX,EAX
00405CB1    A3 B4304700     MOV DWORD PTR DS:[4730B4],EAX
00405CB6    E8 C1FFFFFF     CALL 00405C7C                            ; Fake_Nin.00405C7C
00405CBB    BA A8304700     MOV EDX,4730A8
00405CC0    8BC3            MOV EAX,EBX
00405CC2    E8 21DFFFFF     CALL 00403BE8                            ; Fake_Nin.00403BE8
00405CC7    5B              POP EBX
00405CC8    C3              RETN   ;再返回

00472D0C    55              PUSH EBP//入口
00472D0D    8BEC            MOV EBP,ESP
00472D0F    83C4 F0         ADD ESP,-10
00472D12    B8 1C2B4700     MOV EAX,472B1C
00472D17    E8 6C2FF9FF     CALL 00405C88                            ; 返回到这里,往上找
00472D1C    A1 14BA4700     MOV EAX,DWORD PTR DS:[47BA14]
00472D21    8B00            MOV EAX,DWORD PTR DS:[EAX]
00472D23    E8 C08EFEFF     CALL 0045BBE8                            ; Fake_Nin.0045BBE8
2006-9-30 08:54
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
14
最初由 csjwaman 发布
00405C8D A3 A0304700 MOV DWORD PTR DS:[4730A0],EAX
00405C92 6A 00 PUSH 0
00405C94 E8 2BFFFFFF CALL 00405BC4 ; JMP 到 Kernel32.GetModuleHandleA
00405C99 A3 64C64700 MOV DWORD PTR DS:[47C664],EAX ; 第一次返回
00405C9E A1 64C64700 MOV EAX,DWORD PTR DS:[47C664]
........


我这里断了N次,不知何时返回,还请赐教
2006-10-1 11:16
0
雪    币: 351
活跃值: (80)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
15
http://bbs.pediy.com/showthread.php?s=&threadid=32738
这篇可能会对您有帮助
2006-10-1 17:10
0
游客
登录 | 注册 方可回帖
返回
//