首页
社区
课程
招聘
[原创]手脱yoda's Protector 1.3 - Ashkbiz Danehkar
发表于: 2007-9-28 01:09 6988

[原创]手脱yoda's Protector 1.3 - Ashkbiz Danehkar

2007-9-28 01:09
6988
【文章标题】: 手脱yoda's Protector 1.3 - Ashkbiz Danehkar
【文章作者】: 未秋叶已落
【作者邮箱】: 33445621@163.com
【作者QQ号】: 307727654
【软件名称】: QQ空间人气精灵
【软件大小】: 302 KB
【下载地址】: 附件
【加壳方式】: yoda's Protector 1.3 - Ashkbiz Danehkar
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【使用工具】: OD PEID
【操作平台】: WinXP
【作者声明】: 首先感谢:完美!这个软件是他给我练习用的,但本人真的很菜,几天尝试均未成功。是他让我一直没有放弃,
今晚尝试了30多次终于成功脱壳。告诉同我一样菜的鸟:只要不放弃就会有希望!
--------------------------------------------------------------------------------
【详细过程】
   
    首先用PEid查壳,yoda's Protector 1.3 - Ashkbiz Danehkar。
    用OD载入,忽略除非法访问内存以外的所有异常,然后按CTRL+F2重新载入,
    F9运行停了下来,这里看一下堆栈窗口,如下:
    0012FFAC   0012FFE0  指向下一个 SEH 记录的指针
    0012FFB0   0050890B  SE处理程序        
    0012FFB4   7C930738  ntdll.7C930738
    0012FFB8   FFFFFFFF
    0012FFBC   7FFDE000
    0012FFC0   0012FFF0
    0012FFC4   7C816FD7  返回到 kernel32.7C816FD7
    0012FFC8   7C930738  ntdll.7C930738
    0012FFCC   FFFFFFFF
    我们在主窗口Ctrl+F输入0050890B(为什么要输入0050890B依据是:0012FFB0   0050890B  SE处理程序 ),跟随来到
    0050890B    55              PUSH EBP
    在这里F2下断点,Shift+F9运行。取消断点,F8向下单步走来到
    00508934    3E:89B8 B800000>MOV DWORD PTR DS:[EAX+B8],EDI            ; QQ空间人.00507017
    到这里时可以看到注释窗口里提示如下:
    EDI=00507017 (QQ空间人.00507017)
    堆栈 DS:[0012FD98]=00508982 (QQ空间人.00508982)
    在这里我们Ctrl+F输入00507017跟随到
    00507017    90              NOP
    在这里我们要向上看,可以看到有一个JMP EAX如下:
    00507010    B8 48475000     MOV EAX,QQ空间人.00504748
    00507015    FFE0            JMP EAX
    00507017    90              NOP
    00507018    90              NOP
    我们选中JMP EAX行,F2下断点,F9运行,再F2取消断点,F8来到:
    00504748    94              XCHG EAX,ESP
    00504749    BC 31475000     MOV ESP,QQ空间人.00504731
    0050474E    B9 17000000     MOV ECX,17
    00504753    80340C DB       XOR BYTE PTR SS:[ESP+ECX],0DB
    00504757  ^ E2 FA           LOOPD SHORT QQ空间人.00504753
    00504759    94              XCHG EAX,ESP
    0050475A    90              NOP
    0050475B    90              NOP
    0050475C    90              NOP
    0050475D    FFE0            JMP EAX
    0050475F    FFE8            JMP FAR EAX                              ; 非法使用寄存器
    00504761    0000            ADD BYTE PTR DS:[EAX],AL
    在这里我们依旧选中
    0050475D    FFE0            JMP EAX
    F2下断点,F9运行到这里,F2取消断点,F8单步来到:
    00504731    B8 C0455000     MOV EAX,QQ空间人.005045C0
    00504736    B9 71010000     MOV ECX,171
    0050473B    803408 08       XOR BYTE PTR DS:[EAX+ECX],8
    0050473F  ^ E2 FA           LOOPD SHORT QQ空间人.0050473B
    00504741    FFE0            JMP EAX
    00504743    B9 8B508F83     MOV ECX,838F508B
    在这里我们又看到JMP EAX,我们还是选中JMP EAX这一行。
    00504741    FFE0            JMP EAX
    F2下断点,F9运行,F2取消断点,F8单步来到:
    005045C0    60              PUSHAD
    005045C1    BE 00C04B00     MOV ESI,QQ空间人.004BC000
    005045C6    8DBE 0050F4FF   LEA EDI,DWORD PTR DS:[ESI+FFF45000]
    到这里后我们就可以F8一路不回头向下跟了,最终来到:
    00504720    83C3 04         ADD EBX,4
    00504723  ^ EB D8           JMP SHORT QQ空间人.005046FD
    00504725    FF96 E45D1000   CALL DWORD PTR DS:[ESI+105DE4]
    0050472B    61              POPAD
    0050472C  - E9 43CBEFFF     JMP QQ空间人.00401274
    00504731    B0 C0           MOV AL,0C0
    当走到
    0050472C  - E9 43CBEFFF     JMP QQ空间人.00401274
    这个远跳就会把我们带到OEP
    00401274    68 D0174000     PUSH QQ空间人.004017D0    ; ASCII "VB5!6&vb6chs.dll"   //OEP,在这里脱壳
    00401279    E8 F0FFFFFF     CALL QQ空间人.0040126E    ; JMP 到 MSVBVM60.ThunRTMain
    0040127E    0000            ADD BYTE PTR DS:[EAX],AL
   
   
    再次感谢完美给我这个壳做练习,让我知道坚持的意义!感谢看雪块学习的乐园!
  
--------------------------------------------------------------------------------
【经验总结】
  由于本人纯属菜鸟,所以在脱这个壳的时候每遇到一个远跳就会Dump下来观察一下可用的信息,以下是我胡乱Dump时发现的
  东东,用PEID查了几次分别看到了不同的壳,不知道是不是这个软件加了N多壳?菜鸟不懂,请高手指教!
  
  00507000 >  B8 47475000     MOV EAX,1.00504747   //在这脱后出现下面壳
  SPLayer 0.08 -> Jibz
  
  00504748    94              XCHG EAX,ESP         //在这脱后出现下面壳(但Dump下来的软件已损坏)
  UPX$HiT 0.0.1 -> dj-siba
  
  005045C0    60              PUSHAD
  005045C1    BE 00C04B00     MOV ESI,1.004BC000   //在这脱后出现下面壳(但Dump下来的软件已损坏)
  UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢! 再次感谢完美!!!

                                                       2007年09月28日 1:06:02

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习lz的这种。。。。。(省略)
dump后还要修复一下输入表  最好在没壳后在dump
2007-9-28 11:36
0
雪    币: 200
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
VB加壳直接在ThunRTMain下断 返回原程序 上面就是入口
push XXXX
Call XXXX
2007-9-28 11:37
0
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
希望看雪能给他一个鼓励
2007-9-28 12:59
0
雪    币: 122
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
三楼说的偶不太懂哦。。。
讲讲如何?
2007-9-29 20:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
怎么,PEID外部扫描为:yoda's Crypter 1.3 -> Ashkbiz Danehkar *
2007-10-22 16:49
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=;]...[/QUOTE]
好像有自效验吧
2007-10-22 18:21
0
雪    币: 8599
活跃值: (5065)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
ESP定律就可以搞得定的。
2007-10-22 22:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
搂主,按你说的怎么就不能运行
2007-10-23 15:59
0
游客
登录 | 注册 方可回帖
返回
//