首页
社区
课程
招聘
[求助]实在是看不出这是个啥壳!(一个简单虚拟机保护)
发表于: 2007-9-7 00:49 6409

[求助]实在是看不出这是个啥壳!(一个简单虚拟机保护)

2007-9-7 00:49
6409
0041DF7C >  68 199C4200     push    00429C19
0041DF81    E9 DE010000     jmp     0041E164
0041DF86    45              inc     ebp



0041E164    9C              pushfd
0041E165    60              pushad
0041E166    68 00000000     push    0
0041E16B    8B7424 28       mov     esi, dword ptr [esp+28]
0041E16F    FC              cld
0041E170    BF 86DF4100     mov     edi, 0041DF86
0041E175    033424          add     esi, dword ptr [esp]
0041E178    AC              lods    byte ptr [esi]
0041E179    0FB6C0          movzx   eax, al
0041E17C    FF3485 00904200 push    dword ptr [eax*4+429000]         ; adsL.0042940D
0041E183    C3              retn
0041E184    5B              pop     ebx

00429408  - E9 6B4DFFFF     jmp     0041E178
0042940D    0FB606          movzx   eax, byte ptr [esi]
00429410    8F0487          pop     dword ptr [edi+eax*4]
00429413    46              inc     esi
00429414  - E9 5F4DFFFF     jmp     0041E178

0041E178    AC              lods    byte ptr [esi]
0041E179    0FB6C0          movzx   eax, al
0041E17C    FF3485 00904200 push    dword ptr [eax*4+429000]
0041E183    C3              retn

F8,一直在这几段里跳,怎么也跳不出去来~

是一个加了壳的ADSL密码获取程序,只是好奇,学习脱壳,没有其他目的

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
2
bp VirtualAlloc,2次后在code下访问断点,来到:
00406A73    0000                  add byte ptr ds:[eax],al
00406A75    0000                  add byte ptr ds:[eax],al
00406A77    0000                  add byte ptr ds:[eax],al
00406A79    83EC 58               sub esp,58                                        ; foep
00406A7C    53                    push ebx
2007-9-7 08:13
0
雪    币: 295
活跃值: (346)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
3
一简单的虚拟机, 虚拟机入口为0041E164,  带一参数, 为 虚拟指令的起始地址.

0041E16B    8B7424 28       mov     esi, dword ptr [esp+28]       // 取参数, 虚拟指令的起始地址
0041E16F    FC              cld
0041E170    BF 86DF4100     mov     edi, 0041DF86
0041E175    033424          add     esi, dword ptr [esp]
0041E178    AC              lods    byte ptr [esi]                             // 取一条指令
0041E179    0FB6C0          movzx   eax, al
0041E17C    FF3485 00904200 push    dword ptr [eax*4+429000]         ;  // 每条指令对应的地址
0041E183    C3              retn           // 跳去执行指令

共 256 条 虚拟指令, 对应的执行代码地址表在429000-4293FF中, 共 256 组代码.

其中, 虚拟指令3F 相当于 retn, 比较关键

脱壳很简单, bp GetVersion 就可找到OEP: 00406A79, 与upx难度一样

把它的虚拟机全搞明白, 可不是一时三刻的功夫可搞定的.
2007-9-7 08:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上大牛!我正好学脱壳学到VM部分,这个简单VM将使我跨出第一步。感谢!
2007-9-7 08:59
0
雪    币: 192
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
NSP+VMP(最小化)?
2007-9-7 10:20
0
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
vmprotect 1.5 demo.比1。22差了10.8万千里.
2007-9-7 14:26
0
雪    币: 70
活跃值: (74)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
确实  VM1。22十分强悍  我是搞不懂  (1。5其实也…………)
2007-10-5 00:49
0
游客
登录 | 注册 方可回帖
返回
//