飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

楼主: glts

【PYG3周年庆典活动之一】脱壳竟赛第一章

 关闭 [复制链接]

该用户从未签到

发表于 2007-12-1 20:55:35 | 显示全部楼层
我oep 设到 0051317C
显示有SPLayer 0.08 -> Jibz
为此我绕了两个多小时“脱壳”

吐血.........
为什么就没有想到 重新整合一下呢~/:010 /:010 /:010 /:010

hyd009 还在 哦~
呵呵~


a__P 我终于找到解决进程隐藏的方法了


另类脱壳方法

对抗调试

1. OD 加载出错
001-OD加载出错.gif

2. LoadPE,ImprotRec,任务管理器隐藏进程
002-LoadPE,ImprotRec,任务管理器隐藏进程.gif

对策

1. 针对 OD 加载错误,我们可以使用OD插件 强烈支持使用海牛哥哥 StrongOD 或者 Phant0m.dll
   尽管用了插件,我们可以直接用od转存 脱壳文件,但是感觉插件不是太稳定,我还是喜欢用土方法,LoadPE 抓取,IMprotrec 修复ita
2. 针对隐藏 进程我们可以追查源头
   原因出在 PYG.dll,是TMD 的,隐藏进程定是它做的手脚
003-看到输入表里PYG.dll的手脚.gif

解决隐藏进程
1. 查看 1.exe 的输入表,里面有个对 PYG.DLL里面K 函数的调用,个人感觉有鬼
   我们 手动制作一个 PYG.DLL 吧
   写 DLL 我不会,我还是找个DLL 的输出表。这里选用PEID 插件 crc32.dll
   修改 DoMyJob 为小写 k 保存文件名为 PYG.DLL 到 1.exe 文件目录
004-伪造个PYG.DLL.gif

2. 运行看看
   1.exe 程序 可以运行,进程可以显示了
005-重见天日.gif

脱壳程序

由于 不用加载原来 TMD 马甲的 PYG.DLL ,一切麻烦变地简单许多

1 .OD 加载
AsPack 外壳

00514001 >  60              PUSHAD
00514002    E8 03000000     CALL 1.0051400A
00514007  - E9 EB045D45     JMP 45AE44F7
0051400C    55              PUSH EBP
0051400D    C3              RETN
0051400E    E8 01000000     CALL 1.00514014
00514013    EB 5D           JMP SHORT 1.00514072
00514015    BB EDFFFFFF     MOV EBX,-13
0051401A    03DD            ADD EBX,EBP
0051401C    81EB 00401100   SUB EBX,114000
00514022    83BD 22040000 0>CMP DWORD PTR SS:[EBP+422],0
00514029    899D 22040000   MOV DWORD PTR SS:[EBP+422],EBX
0051402F    0F85 65030000   JNZ 1.0051439A                           ; 去 51439A 看看
00514035    8D85 2E040000   LEA EAX,DWORD PTR SS:[EBP+42E]


☆ 0051439A

0051439A    B8 A3311100     MOV EAX,1131A3
0051439F    50              PUSH EAX
005143A0    0385 22040000   ADD EAX,DWORD PTR SS:[EBP+422]
005143A6    59              POP ECX
005143A7    0BC9            OR ECX,ECX
005143A9    8985 A8030000   MOV DWORD PTR SS:[EBP+3A8],EAX
005143AF    61              POPAD
005143B0    75 08           JNZ SHORT 1.005143BA
005143B2    B8 01000000     MOV EAX,1
005143B7    C2 0C00         RETN 0C
005143BA    68 00000000     PUSH 0
005143BF    C3              RETN                                     ; 典型 AsPack 出口,F4过来,F8
005143C0    8B85 26040000   MOV EAX,DWORD PTR SS:[EBP+426]

二层外壳
005131A3    90              NOP                                      ;OEP,外层壳
005131A4    90              NOP
005131A5    90              NOP
005131A6    90              NOP
005131A7    90              NOP
005131A8    90              NOP
005131A9    B8 7C315100     MOV EAX,1.0051317C
005131AE    FFE0            JMP EAX
005131B0    BA 7C315100     MOV EDX,1.0051317C
005131B5    90              NOP
005131B6    90              NOP
005131B7    90              NOP
005131B8    90              NOP
005131B9    B8 08CDD6B1     MOV EAX,B1D6CD08
005131BE    8902            MOV DWORD PTR DS:[EDX],EAX
005131C0    83C2 04         ADD EDX,4
005131C3    B8 CDDE99AD     MOV EAX,AD99DECD
005131C8    8902            MOV DWORD PTR DS:[EDX],EAX
005131CA    B8 8C315100     MOV EAX,1.0051318C
005131CF    90              NOP
005131D0    90              NOP
005131D1    90              NOP
005131D2    90              NOP
005131D3    FFE0            JMP EAX

F8+F4 很快来到 抽走的代码

0051317C    55              PUSH EBP                       ; 忽悠我两个小时的“马甲”伪OEP
0051317D    90              NOP
0051317E    8BEC            MOV EBP,ESP
00513180    90              NOP
00513181    83C4 F0         ADD ESP,-10
00513184    90              NOP
00513185    B8 BEAF4800     MOV EAX,1.0048AFBE
0051318A  - FFE0            JMP EAX                        ; 1.0048AFBE

下面就是 头
0048AFBE      B8            DB B8
0048AFBF      78AC4800      DD 1.0048AC78
0048AFC3      E8            DB E8
0048AFC4      D0            DB D0
0048AFC5   .  B3 F7         MOV BL,0F7
0048AFC7   .  FFA1 08DA4800 JMP DWORD PTR DS:[ECX+48DA08]

我们还是修复下抽走的头
558BEC83C4F0


0048AFB8    55              PUSH EBP                       ; OEP ,修复了抽走的代码
0048AFB9    8BEC            MOV EBP,ESP
0048AFBB    83C4 F0         ADD ESP,-10
0048AFBE    B8 78AC4800     MOV EAX,1.0048AC78
0048AFC3    E8 D0B3F7FF     CALL 1.00406398

2. LoadPe 转存+ ImportREC 修复


006-终于笑了我.gif

3. 优化脱壳文件
我不会,还是简单删除几个区段好了。。。。。。。。。。

007-脱壳成功.gif

嘿嘿至此我们的1.exe 文件脱壳完毕,脱壳后的程序不在依赖 PYG.DLL 文件

这个是我脱好的
UnPackED.By.CaTer.part1.rar (263.67 KB, 下载次数: 4)
UnPackED.By.CaTer.part2.rar (55.63 KB, 下载次数: 4)

dIy 的 PYG.DlL
diy 的 Pyg.DLL.rar (27.58 KB, 下载次数: 13)


StrongOD od插件
StrongOD.rar (252.91 KB, 下载次数: 47)

Cater QQ:24882688 2007.12.01

[ 本帖最后由 cater 于 2007-12-2 11:14 编辑 ]

评分

参与人数 1威望 +200 飘云币 +200 收起 理由
glts + 200 + 200 您的贴子很精彩,希望能再次分享!同时发放 ...

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-12-1 21:04:06 | 显示全部楼层
    壳盲完全不懂啊,只知是竞赛非竟赛/:001
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-12-1 21:16:07 | 显示全部楼层
    我也是壳盲,呵呵,纯支持一下,呵呵,

    至于OEP,反正是游戏,呵呵,不一定非得在程序入口处,呵呵,

    能正常运行就行,何必在乎?/:0177" />

    不过ABCdiyPE补的代码反而有错误,呵呵,

    退出会有错误

    [ 本帖最后由 yingfeng 于 2007-12-1 21:18 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-1 21:36:07 | 显示全部楼层
    也是壳盲,好像到OEP不修复也能运行。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-1 21:59:00 | 显示全部楼层
    不是吧!
    我的OD根本就载入不了!更别说脱了!
    Themida的啊!
    如图!
    1.JPG
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-7-16 11:27
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2007-12-1 22:11:55 | 显示全部楼层
    原帖由 jjdg 于 2007-12-1 21:59 发表
    不是吧!
    我的OD根本就载入不了!更别说脱了!
    Themida的啊!
    如图!

    我跟楼上一定不能载入,继续学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-2 00:14:04 | 显示全部楼层
    刚写好教程,宿舍就断网了…
    明天大早我贴个原创…
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-2 09:12:46 | 显示全部楼层
    都很厉害哦 /:018
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-1-13 12:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-12-2 09:39:58 | 显示全部楼层
    7楼请及时联系QQ拿礼物!!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2018-3-5 11:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-12-2 10:51:21 | 显示全部楼层
    原帖由 jjdg 于 2007-12-1 21:59 发表
    不是吧!
    我的OD根本就载入不了!更别说脱了!
    Themida的啊!
    如图!

    隐藏OD试试
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表