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

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

2010-7-19 15:48
104605

稀里糊涂过了一年,找了份工作.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


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (51)
雪    币: 4902
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
SRC收下鸟
虽然是开源的
但是看源码可以顺便学编程
呵呵
2010-7-19 16:02
0
雪    币: 295
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
yoda shell中加密有随机化处理,要做静态脱壳机,就要自己手动解码了。。。
加密函数是有模板的 扣除关键数据 自己应该可以的,楼主不妨试试看哦
2010-7-20 07:33
0
雪    币: 5318
活跃值: (3709)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
4
多谢楼主分享啊
2010-7-20 08:55
0
雪    币: 213
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢楼主分享!下来学习一下。
2010-7-20 18:19
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
6
呐尼,我好像是这么做的阿
2010-7-22 09:28
0
雪    币: 429
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
老汪的帖子是要顶的
2010-7-22 09:39
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
好贴,留名!
2010-7-22 12:17
0
雪    币: 62
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
膜拜强大的老汪
2010-7-23 20:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好好学习,天天向上
2010-7-25 01:09
0
雪    币: 224
活跃值: (55)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
11
谢谢分享,学习之。
2010-9-1 16:54
0
雪    币: 93
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
只有学习了!
2010-12-6 23:17
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
看看 学习 一下
2011-1-7 12:54
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢分享,学习之。
2011-3-14 16:18
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习一下啊啊
2011-3-21 12:41
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢 啊啊太好
2011-3-21 12:43
0
雪    币: 735
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不错,下来学习一下
谢谢分享!!
2011-3-25 00:47
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
技术牛啊,呵呵
2011-3-25 22:22
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
自己手动解码
2011-3-30 22:50
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
不错啊
2011-4-2 20:13
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
正好用得上,谢谢了
上传的附件:
2011-4-3 09:40
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
留个记号~ 很强大
2011-8-14 11:37
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
标记下,下次有时间看!
2012-5-24 15:40
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
回帖支持下楼主
2012-6-1 13:47
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
你好,我想问个问题哈,这个源码在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


出错语句:
上传的附件:
2012-7-25 11:34
0
游客
登录 | 注册 方可回帖
返回
//