首页
社区
课程
招聘
[旧帖] 求助,新手脱壳碰壁 0.00雪花
发表于: 2009-12-1 22:16 4928

[旧帖] 求助,新手脱壳碰壁 0.00雪花

2009-12-1 22:16
4928
如题,新人脱壳时遇到的问题,网上搜索的解决方案,在我的手上未能发挥实效(可能是本人理解能力有限),问题仍未解决。特!寻求本坛高手的帮助。请指出操作错误。

对象:ASPack 2.12壳     
工具:OD \ LordPE \ImportREC
脱壳过程如下:
od 载入解压入口

007DD001 >  60              PUSHAD
007DD002    E8 03000000     CALL 求索固定.007DD00A
007DD007  - E9 EB045D45     JMP 45DAD4F7
007DD00C    55              PUSH EBP
007DD00D    C3              RETN

ESP定律来到

007DD3B0   /75 08           JNZ SHORT 求索固定.007DD3BA
007DD3B2   |B8 01000000     MOV EAX,1
007DD3B7   |C2 0C00         RETN 0C
007DD3BA   \68 00104000     PUSH 求索固定.00401000
007DD3BF    C3              RETN                        

一路F8,跳转到 oep

00401000    E8 06000000     CALL 求索固定.0040100B         ; SFX 代码真实入口点
00401005    50              PUSH EAX
00401006    E8 BB010000     CALL 求索固定.004011C6         ; JMP 到 kernel32.ExitProcess
0040100B    55              PUSH EBP
0040100C    8BEC            MOV EBP,ESP
0040100E    81C4 F0FEFFFF   ADD ESP,-110

开LordPE进行dump

开ImportREC填入oep=1000,自动查找,大小为:40(按网上方法手工查得真实大小为15c),获取输入表。提示:
“当前输入表:
3 (十进制:3) 个有效模块 (已添加: +3 (十进制:+3))
46 (十进制:70) 个输入函数. (已添加: +46 (十进制:+70))
(3B (十进制:59) 个未解决的指针) (已添加: +3B (十进制:+59))”

然后选取无效的,跟踪级别1、2、3都试过,无法修复。

直接剪掉,然后点击修复dump文件。提示保存成功。

试验是否脱壳成功:打开 dump的文件后提示:“运行错误:020”。

请问高手问题出在哪,是网上所说的IAT加密了,还是操作失误?此类问题有解决方法参考吗?

哈哈,KX不多,请热心的高手说明一下。

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

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
发个程序来研究研究啊
2009-12-1 22:20
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
需要安装,我就不发附件了,地址是:请点击下载_软件大小5148KB
2009-12-1 22:49
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
到OEP后
用OD插件直接dump
选方式二修复IAT
2009-12-1 22:58
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
脱壳是成功的,运行出现错误是程序有自校验的原因,把自检验去掉就好了!
2009-12-1 23:59
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
试过也是一样的情况。提示“运行错误:020”
2009-12-2 09:01
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
00401000 >/$  E8 06000000   call    0040100B
00401005  |.  50            push    eax                              ; /ExitCode
00401006  \.  E8 BB010000   call    <jmp.&kernel32.ExitProcess>      ; \ExitProcess
0040100B  /$  55            push    ebp
0040100C  |.  8BEC          mov     ebp, esp
0040100E  |.  81C4 F0FEFFFF add     esp, -110
00401014  |.  E9 83000000   jmp     0040109C
00401019  |.  6B 72 6E 6C 6>ascii   "krnln.fnr",0
00401023  |.  6B 72 6E 6C 6>ascii   "krnln.fne",0
0040102D  |.  47 65 74 4E 6>ascii   "GetNewSock",0
00401038  |.  53 6F 66 74 7>ascii   "Software\FlySky\"
00401048  |.  45 5C 49 6E 7>ascii   "E\Install",0
00401052  |.  50 61 74 68 0>ascii   "Path",0
00401057  |.  4E 6F 74 20 6>ascii   "Not found the ke"
00401067  |.  72 6E 65 6C 2>ascii   "rnel library or "
00401077  |.  74 68 65 20 6>ascii   "the kernel libra"
00401087  |.  72 79 20 69 7>ascii   "ry is invalid!",0
00401096  |.  45 72 72 6F 7>ascii   "Error",0
0040109C  |>  8D85 FCFEFFFF lea     eax, dword ptr [ebp-104]
004010A2  |.  50            push    eax
004010A3  |.  E8 44010000   call    004011EC
004010A8  |.  68 19104000   push    00401019                         ; /String2 = "krnln.fnr"
004010AD  |.  8D85 FCFEFFFF lea     eax, dword ptr [ebp-104]         ; |
004010B3  |.  50            push    eax                              ; |String1
004010B4  |.  E8 25010000   call    <jmp.&kernel32.lstrcat>          ; \lstrcat
004010B9  |.  50            push    eax                              ; /FileName
004010BA  |.  E8 19010000   call    <jmp.&kernel32.LoadLibraryA>     ; \LoadLibraryA
004010BF  |.  85C0          test    eax, eax
004010C1  |.  0F85 9E000000 jnz     00401165
004010C7  |.  8D85 F4FEFFFF lea     eax, dword ptr [ebp-10C]
004010CD  |.  50            push    eax                              ; /pHandle
004010CE  |.  68 19000200   push    20019                            ; |Access = KEY_READ
004010D3  |.  6A 00         push    0                                ; |Reserved = 0
004010D5  |.  68 38104000   push    00401038                         ; |Subkey = "Software\FlySky\E\Install"
004010DA  |.  68 01000080   push    80000001                         ; |hKey = HKEY_CURRENT_USER
004010DF  |.  E8 36010000   call    <jmp.&advapi32.RegOpenKeyExA>    ; \RegOpenKeyExA
004010E4  |.  83F8 00       cmp     eax, 0
004010E7  |.  0F85 B8000000 jnz     004011A5
004010ED  |.  C785 F0FEFFFF>mov     dword ptr [ebp-110], 103
004010F7  |.  8D85 F0FEFFFF lea     eax, dword ptr [ebp-110]
004010FD  |.  50            push    eax                              ; /pBufSize
004010FE  |.  8D85 FCFEFFFF lea     eax, dword ptr [ebp-104]         ; |
00401104  |.  50            push    eax                              ; |Buffer
00401105  |.  6A 00         push    0                                ; |pValueType = NULL
00401107  |.  6A 00         push    0                                ; |Reserved = NULL
00401109  |.  68 52104000   push    00401052                         ; |ValueName = "Path"
0040110E  |.  FFB5 F4FEFFFF push    dword ptr [ebp-10C]              ; |hKey
00401114  |.  E8 07010000   call    <jmp.&advapi32.RegQueryValueExA> ; \RegQueryValueExA
00401119  |.  50            push    eax
0040111A  |.  FFB5 F4FEFFFF push    dword ptr [ebp-10C]              ; /hKey
00401120  |.  E8 EF000000   call    <jmp.&advapi32.RegCloseKey>      ; \RegCloseKey
00401125  |.  58            pop     eax
00401126  |.  83F8 00       cmp     eax, 0
00401129  |.  75 7A         jnz     short 004011A5
0040112B  |.  8D85 FCFEFFFF lea     eax, dword ptr [ebp-104]
00401131  |.  50            push    eax                              ; /String
00401132  |.  E8 AD000000   call    <jmp.&kernel32.lstrlen>          ; \lstrlenA
00401137  |.  8D9D FCFEFFFF lea     ebx, dword ptr [ebp-104]
0040113D  |.  03D8          add     ebx, eax
0040113F  |.  4B            dec     ebx
00401140  |.  803B 5C       cmp     byte ptr [ebx], 5C
00401143  |.  74 05         je      short 0040114A
00401145  |.  66:C703 5C00  mov     word ptr [ebx], 5C
0040114A  |>  68 23104000   push    00401023                         ; /String2 = "krnln.fne"
0040114F  |.  8D85 FCFEFFFF lea     eax, dword ptr [ebp-104]         ; |
00401155  |.  50            push    eax                              ; |String1
00401156  |.  E8 83000000   call    <jmp.&kernel32.lstrcat>          ; \lstrcat
0040115B  |.  50            push    eax                              ; /FileName
0040115C  |.  E8 77000000   call    <jmp.&kernel32.LoadLibraryA>     ; \LoadLibraryA
00401161  |.  85C0          test    eax, eax
00401163  |.  74 40         je      short 004011A5
00401165  |>  8985 F8FEFFFF mov     dword ptr [ebp-108], eax
0040116B  |.  68 2D104000   push    0040102D                         ; /ProcNameOrOrdinal = "GetNewSock"
00401170  |.  50            push    eax                              ; |hModule
00401171  |.  E8 5C000000   call    <jmp.&kernel32.GetProcAddress>   ; \GetProcAddress
00401176  |.  85C0          test    eax, eax
00401178  |. 74 20         je      short 0040119A
0040117A  |.  68 E8030000   push    3E8
0040117F  |.  FFD0          call    eax
00401181  |.  85C0          test    eax, eax
00401183  |.  74 15         je      short 0040119A
00401185  |.  E8 00000000   call    0040118A
0040118A  |$  810424 761E00>add     dword ptr [esp], 1E76
00401191  |.  FFD0          call    eax
00401193  |.  6A 00         push    0                                ; /ExitCode = 0
00401195  |.  E8 2C000000   call    <jmp.&kernel32.ExitProcess>      ; \ExitProcess
0040119A  |>  FFB5 F8FEFFFF push    dword ptr [ebp-108]              ; /hLibModule
004011A0  |.  E8 27000000   call    <jmp.&kernel32.FreeLibrary>      ; \FreeLibrary
004011A5  |>  6A 10         push    10                               ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
004011A7  |.  68 96104000   push    00401096                         ; |Title = "Error"
004011AC  |.  68 57104000   push    00401057                         ; |Text = "Not found the kernel library or the kernel library is invalid!"
004011B1  |.  6A 00         push    0                                ; |hOwner = NULL
004011B3  |.  E8 08000000   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
004011B8  |.  B8 FFFFFFFF   mov     eax, -1
004011BD  |.  C9            leave
004011BE  \.  C3            retn
004011BF      CC            int3

一系列的检验代码
绿色的就是202错误的检验
加载GetNewSock函数失败,应该是脱克的时候造成的问题
2009-12-2 09:38
0
雪    币: 1534
活跃值: (733)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
CreateFileA/W下断看看
2009-12-2 09:49
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
努力学习中,继续求助。
上传的附件:
2009-12-5 10:00
0
雪    币: 1534
活跃值: (733)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
ESP定律对大多数压缩壳还行,加密壳不一定行
2009-12-7 10:44
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
没有弄懂这软件是怎么比较真假注册码的。高手能否提示下。
2009-12-13 15:14
0
雪    币: 46
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这问题怎么解决啊?
2010-11-23 16:41
0
游客
登录 | 注册 方可回帖
返回
//