首页
社区
课程
招聘
制作脱壳机-yoda's cryptor1.2
发表于: 2004-5-15 11:35 11645

制作脱壳机-yoda's cryptor1.2

2004-5-15 11:35
11645

制作脱壳机-yoda's cryptor1.2
kongfoo/2004.5.2-5.15

  yoda's cryptor1.2没有OEP stolen code、Replace code、IAT加密、分段加密等
障碍,而且没来对原程序压缩,用来做作脱壳机的演示就最合适了。
  当我们要做一个脱壳机时,面对的是加壳器对原程序的加密算法,知道了加密算法
就可以直接对文件进行解密还原。(题外话:所以加壳器所用的加密算法强度很重要:))

  由于yoda's cryptor是动态加/解密,所以要借用原壳代码解码。
  先来分析一下解密算法,解密算法就是加密算法的逆算法:
010103CF    8BFE            MOV EDI,ESI                       ==代码已经去除花指令
010103D1    AC              LODS BYTE PTR DS:[ESI]
010103D5    34 F2           XOR AL,0F2
010103DA    2AC1            SUB AL,CL
010103DF    2AC1            SUB AL,CL
010103E1    34 EB           XOR AL,0EB
010103EA    02C1            ADD AL,CL
010103F0    04 36           ADD AL,36
010103F2    FEC8            DEC AL
010103F8    2AC1            SUB AL,CL
010103FC    2AC1            SUB AL,CL
010103FE    C0C8 78         ROR AL,78                                
01010402    AA              STOS BYTE PTR ES:[EDI]
01010403  ^ E2 CC           LOOPD SHORT NOTEPAD2.010103D1
  这段代码是跟踪加过壳的程序得到的,在Loader里面,而yoda's crytptor对Loader也
做了加密,哪么我们可以先提取解密Loader的代码解密,再提取解密原程序的代码运行。
  分析yoda's cryptor的源码可知,加/解密时会跳过某些节。

  脱壳解密思路:取节数(number of sections),定位到各节,根据节名判断是否需要
解密,解密节,再恢复peheader中的一些值,最后去掉壳增加的节。

  源码附后,篇幅关系程序没有容错处理,也没有处理CheckSum等项目。另外在我的XP上
加壳时选上Erase PE header或Delete Import Information或API Redirection后被加壳程序
不能正常运行,所以加壳时只选上其它3项。另外测试方面只测试了notepad.exe和脱壳程序
本身。
  写这个脱壳机感觉解密原程序并不难,难在修复peheader中的项目(引入表地址)。文
章很肤浅,旨在演示最简单的脱壳机写法,稍为复杂一点的壳我都写不出来啦,高手们不要
见笑:)


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 10
支持
分享
最新回复 (12)
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
2
2004-5-15 11:37
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
赞:D
2004-5-15 11:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
zan
但在代码段中最好禁用协情符号
2004-5-15 13:26
0
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
5
不是我用的:( masm的qeditor生成的模板;)
2004-5-15 13:42
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
GOOD
2004-5-15 14:55
0
雪    币: 107
活跃值: (811)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
7
佩服
2004-5-15 16:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 kongfoo 发布
不是我用的:( masm的qeditor生成的模板;)

还是让坛主改进比较好
在code段中直接忽略表情符号;)
2004-5-15 17:32
0
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
9
果然好看很多:D
2004-5-15 19:54
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
10
加亮一下更好
2004-5-15 20:07
0
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
11
没所谓啦:D
2004-5-15 21:26
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
大快人心
2004-5-15 22:33
0
雪    币: 210
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
不行,我试了脱不了。
2005-3-21 17:09
0
游客
登录 | 注册 方可回帖
返回
//