首页
社区
课程
招聘
EncryptPE 2005.3.14主程序脱壳
发表于: 2005-5-12 14:14 7767

EncryptPE 2005.3.14主程序脱壳

2005-5-12 14:14
7767
软件就不多说拉。脱也只是昨天晚上心血来潮,所以随便看看老王的壳。我很少写破文的,所以书写工具都没有的。大家将就将就,又由于大家都知道的xxx原应,所以就不放代码上来拉。我就说我的方法。

首先我们需要Dump程序。我以前写工具的时候发现两种注入Encrypt的有效方法,键盘钩子,和修改输入表。为了方便,我先用Dll注入调用函数强制结束进程,把Encrypt的进程变成了普通进程。

然后用LordPE dump出来。资源正常。^_^

接下来我们需要得到OEP,我的分析方法很简单,看看我们都拥有什么。dump文件。够拉。 我们应该知道程序用Delphi写成。那么我们用一个标准的Delphi程序来帮助我们找OEP,我们都知道,同一语言编译的程序,入口点有一些字节是固定不变的,我们还应该知道,Delphi的程序入口点一般都在代码段的结尾,也就是他后面不远处有很多0,那么用winHex吧。找固定的那字节,加上n个0,我们轻松的找到了OEP,好象是$004C7748吧。我记不清楚了。(我现在在网吧凭空写此文)。然后修改dump文件的OEP,用PEid的普通模式看,呵呵,轻易找到Borland 6-7,好拉。说明OEP正确。

BTW:现在可以用DeDe 反编译。还原出很多非常有用的东西来。^_^

现在我们用reimport 填入OEP找IAT,有几个正确的。我们不管。先把正确的提出来,然后修改到Dump文件中。 这个时候Dump能正常装入,(不是运行)。好象会出现014XXXXX地址读取错误,不管,反正我们用od装入能到入口点。

分析代码一看,原来输入表的跳转jmp dword 全部替换成了jmp了。我们再次注入程序看看究竟跳到哪儿拉。哈哈,从$1490000(我的电脑是的,不知道别的如何。)开始,就是输入表的跳转表。我们看看大小,然后记下来。

这个时候注入我写的通用IAT修复工具。选上create New thread 选项。然后获取输入表,哈,没有模拟API,这个时候修复IAT到dump文件。

然后写工具还原Jmp到jmp dword.
接下来就是修复解码和SDK拉。解码其实非常容易。我们甚至不需要去分析算法,我们看看被加密的代码是什么样子。一个call 7XXXXXX.(也就是EPEv20053134.epe空间里面的)。后面代码加密了2字节。我们需要做什么呢?很简单。我们手动在输入表里面加入这个dll.然后再次装入,运行到这个call时。不要F8,需要跟入,然后返回,看看,下面代码自动修复了。我们需要的就是用nop替换这个call,然后把正确的代码还原到dump文件上去。对于sdk,昨天晚上,4点多我由于体力不支,倒下拉,今天晚上回去研究。

上面说到的工具。我会在以后放出来,主要是现在在外面。而且在网吧。



如果方便的话。改天我把过程和代码也贴上来。不过脱后的文件嘛就免拉。那样太没技术含量,也太不仁义了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (25)
雪    币: 133
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么简单?那老王不是要喝西北风了
2005-5-12 14:18
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
3
这么简单?那老王真的要去喝西北风了
2005-5-12 14:22
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
我以前写工具的时候发现两种注入Encrypt的有效方法,键盘钩子,和修改输入表。为了方便,我先用Dll注入调用函数强制结束进程,把Encrypt的进程变成了普通进程。

--------------
how to?

这么简单?那老王真的要去喝西北风
2005-5-12 14:23
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
5
最初由 Phoenix 发布
这么简单?那老王不是要喝西北风了

不信就算拉。我又没有办法。PE是什么?PE就是一堆数据而已。组合到一起OK.
2005-5-12 14:25
0
雪    币: 133
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
强制结束进程,把Encrypt的进程变成了普通进程,这个方法我比你先发现,我在飘云群里告诉你的吧,嘿嘿,不信你问老王去,我去年就跟他提过这个问题,但是这个离脱壳还差的太远了吧?
2005-5-12 14:27
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
7
最初由 Phoenix 发布
强制结束进程,把Encrypt的进程变成了普通进程,这个方法我比你先发现,我在飘云群里告诉你的吧,嘿嘿,不信你问老王去,我去年就跟他提过这个问题

恩。谢谢先,后来老王设置了进程权限来修复这个bug。
2005-5-12 14:29
0
雪    币: 133
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不谢,但是光这些还不够的,差的远哦
2005-5-12 14:32
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
9
最初由 Phoenix 发布
不谢,但是光这些还不够的,差的远哦

我想SDK修复因该非常麻烦吧。不过无所谓,有时间就研究,没时间就算拉。但我相信,没有脱不了的壳
2005-5-12 14:34
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
..d

can you run the unpacked?
2005-5-12 14:35
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
11
最初由 vrowang123 发布
..d

can you run the unpacked?

Yes, but some functions ...
2005-5-12 14:36
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
12
输入表函数改一个字节就避开加密了
变形代码可以自己写一段解码
SDK很弱
2005-5-12 14:58
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
13
最初由 fly 发布
输入表函数改一个字节就避开加密了
变形代码可以自己写一段解码
SDK很弱

SDK好象没有代码清楚之类的。弱就好。
2005-5-12 15:01
0
雪    币: 133
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
呵呵,估计等会儿老王要来打PP了
2005-5-12 15:02
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
15
其实我想了一下,把我的工具组合修改一下,一个encrypt unpacker就可以很容易的弄出来拉。
2005-5-12 15:04
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
在网吧里居然还有学习的孩子,强烈要求网吧老板对你免费
2005-5-12 15:05
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
17
最初由 netsowell 发布

Yes, but some functions ...


self modify or

not 100% unpacking?
2005-5-12 15:07
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
18
最初由 vrowang123 发布




self modify or
........

SDK.
2005-5-12 15:10
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
19
最初由 random 发布
在网吧里居然还有学习的孩子,强烈要求网吧老板对你免费

呵呵,我是在外面,顺便来看看论坛,于是就发了一贴。我很少进网吧的。
2005-5-12 15:10
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
20
支持发脱文!
2005-5-12 16:35
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
21
最初由 fly 发布
输入表函数改一个字节就避开加密了
变形代码可以自己写一段解码
SDK很弱


我觉得SDK不算弱啊。好象是用SendMessage让
让一个隐藏窗口完成对应的功能?不过记不大
清楚了。

当时看了一下就放弃了。
2005-5-12 18:19
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
老王的“威胁”应验了?
不会吧?呵呵
2005-5-13 02:14
0
雪    币: 342
活跃值: (323)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
23
最初由 veryman 发布
老王的“威胁”应验了?
不会吧?呵呵

我郁闷,早看到那篇文章的话。我肯定不发.
2005-5-13 13:23
0
雪    币: 198
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
最初由 netsowell 发布

我郁闷,早看到那篇文章的话。我肯定不发.

哈哈~
我不是故意的
2005-5-13 16:14
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
25
waiting for your 工具
2005-5-14 17:06
0
游客
登录 | 注册 方可回帖
返回
//