首页
社区
课程
招聘
[原创]yoda's Protector V1.03.3静态脱壳机(附源码)
2010-7-19 15:48 102869

[原创]yoda's Protector V1.03.3静态脱壳机(附源码)

2010-7-19 15:48
102869
稀里糊涂过了一年,找了份工作.pe格式忘得差不多了.所以拿此壳来练手
给新手朋友们一点参考,希望大牛们多拍砖与指点.可能以后的工作会跟壳有关了

说下大概流程:
1.首先解密shell代码的两处加密,由于yp的加密方式有了一点小动态.所以采取了动态抠代码的方式来解密的.(直接用opcode比较效率高一些,人懒了点.带了个反汇编引擎.见谅)
2.对加密的节区进行三次解密.
3.如有资源节,则还原.并替换掉.x01节为.rsrc
4.还原IAT,将.yp节删掉
5.修复OEP,sizeofImage等等信息.
6.dump2file.

ps:写完后才发现此壳开源的,有意向的朋友可看源码学习

Yoda's Protector v1.03.3主程序下载地址:
http://www.pediy.com/tools/PACK/Protectors/yodap/yp1.03.3.zip

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (51)
雪    币: 4902
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
奘和 2010-7-19 16:02
2
0
SRC收下鸟
虽然是开源的
但是看源码可以顺便学编程
呵呵
雪    币: 295
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hyperchem 1 2010-7-20 07:33
3
0
yoda shell中加密有随机化处理,要做静态脱壳机,就要自己手动解码了。。。
加密函数是有模板的 扣除关键数据 自己应该可以的,楼主不妨试试看哦
雪    币: 6306
活跃值: (2719)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
littlewisp 2 2010-7-20 08:55
4
0
多谢楼主分享啊
雪    币: 213
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
clong 2010-7-20 18:19
5
0
感谢楼主分享!下来学习一下。
雪    币: 2122
活跃值: (358)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
疯子 4 2010-7-22 09:28
6
0
呐尼,我好像是这么做的阿
雪    币: 429
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
活个痛快 2010-7-22 09:39
7
0
老汪的帖子是要顶的
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
Lenus 3 2010-7-22 12:17
8
0
好贴,留名!
雪    币: 62
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
creakerzgz 1 2010-7-23 20:26
9
0
膜拜强大的老汪
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
加菲花猫 2010-7-25 01:09
10
0
好好学习,天天向上
雪    币: 224
活跃值: (55)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
cornera 3 2010-9-1 16:54
11
0
谢谢分享,学习之。
雪    币: 93
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大星星 2010-12-6 23:17
12
0
只有学习了!
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
LONGNOL 2011-1-7 12:54
13
0
看看 学习 一下
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qwsk 2011-3-14 16:18
14
0
谢谢分享,学习之。
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mimajieba 2011-3-21 12:41
15
0
学习一下啊啊
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mimajieba 2011-3-21 12:43
16
0
谢谢 啊啊太好
雪    币: 735
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sdslcl 2011-3-25 00:47
17
0
不错,下来学习一下
谢谢分享!!
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cjteam 2011-3-25 22:22
18
0
技术牛啊,呵呵
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qwsk 2011-3-30 22:50
19
0
自己手动解码
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
昨夜风 2011-4-2 20:13
20
0
不错啊
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
梦之旅 2011-4-3 09:40
21
0
正好用得上,谢谢了
上传的附件:
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
重重 2011-8-14 11:37
22
0
留个记号~ 很强大
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xScanf 2012-5-24 15:40
23
0
标记下,下次有时间看!
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
江南游子 2012-6-1 13:47
24
0
回帖支持下楼主
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hustd 2012-7-25 11:34
25
0
你好,我想问个问题哈,这个源码在VC6.0运行ok,但是在VS2010中运行有问题。我分析了一下,问题在于

        ////解密壳的数据段
        if(CollectDecodeCode(pSecondDecodeAddr+0x816,pSecondDecodeAddr,0x67D)){//ybm
                CallDecode();
        }

这一段中,VS里pSecondDecodeAddr指向的内存内容与与VC中是一样的,但是加上0x816之后,指向的内容就不一样了,也就是说在VC和VS中调用CollectDecodeCode函数时传入的第一个参数的值看起来是一样的,但是所指向的内容是不同的,因此VS中程序最终挂掉了,在这个判断句中直接返回false。
我很想问的是,pSecondDecodeAddr指向的内存内容都是一样的,为什么加上一个偏移以后指向的就不一样了呢?难道,同一个文件在被装入内存后,对于VS和VC来说内存里的数据是不同的吗?

万分感谢!!!!!!!!!

VC6.0中:pSecondDecodeAddr


VS2010中pSecondDecodeAddr


VC6.0中:pSecondDecodeAddr+0x816


VS2010中:pSecondDecodeAddr+0x816


出错语句:
上传的附件:
游客
登录 | 注册 方可回帖
返回