首页
社区
课程
招聘
隆重推出 DT_FixRes 最终版 -- 最好的 PE 资源修复引擎
发表于: 2005-3-13 20:02 69270

隆重推出 DT_FixRes 最终版 -- 最好的 PE 资源修复引擎

2005-3-13 20:02
69270
收藏
免费 0
支持
分享
最新回复 (146)
雪    币: 277
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
真是好东东!
2005-3-16 17:57
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
一出手就是精品啊!好工具!
2005-3-16 23:25
0
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
真的非常好用!连 MEW 11 SE v1.2  -> Northfox [HCC] 加壳档案脱壳后也能正确修正资源,真是谢谢!以后汉化方便多了.
2005-3-17 06:05
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
楼上几位给偶很大的鼓励,thx!
2005-3-17 08:33
0
雪    币: 239
活跃值: (478)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
30
再支持老D的东东,好用!
2005-3-17 11:38
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
31
好贴正如美妇,我顶
2005-3-17 13:27
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
32
学习DreamtHearter的精神
2005-3-17 13:36
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
33
DT老大,DT-FixRes修复出来的资源节还可以优化紧凑的大小吧,似乎大了点(只要资源工具能正确识别出来,是会自动根据用户需要扩充缩水的);另外,可以将原来的资源尸体也清零(包括分布到其它节的)吧,这样我们懂点PE的可以减一下肥,若资源较大,那是很可观的哟!;还有的是能不能再做另一个接口(或集成加Rva参数,默认为0则不输出资源节,若用户给定Rva则输出):

如:function  OutOrderRes(const OutResFileName: PChar; ErrBuff: PChar; Rva: Dword): Boolean; stdcall;

将资源节按用户填写的资源表RVA值(目录表里的那个)进行处理,输出独立的二进制资源文件(整份),以方便我们更灵活的精简组装PE!

引擎源码在你手上,不然我自己来,这个实现对于你来说更简单的,我个人觉得这样的FixRes引擎是最吸引人的!
2005-3-17 15:14
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
据我了解,目前只有我这个引擎具有真正的实用价值,你可以试试我在该帖中提到的几个俄国老写的东西,我认为都很差,从这点来说,我的引擎是一个大进步,当然,肯定还有很多缺陷,正如你所说的,为什么不清除原来的资源尸体?这个我当然想过,没有清除原因如下:
1。PE格式优化是一个复杂而整体的过程,清除某部分数据,相应要调整很多参数,比如16个 IMAGE_DATA_DIRECTORY 的相应 VirtualAddress,以及data 的挪移,这需要很多代码的
2。同一个pE文件被不同的壳加壳后,再脱壳修复都会得到不同资源尸体修复方案,可想而知的复杂性

至于再做一个接口,dump 出 resource section 我觉得是一个很不错的建议,我这样设计这个函数,不集成在一个接口里,因为既然 dump ,肯定用户自己修复,没必要修复原 PE 文件

DumpResSection (const PeFile: PChar; const OutResSecFile: PChar; RVA: DWord; ErrBuff: PChar): Boolean; stdcall;

其中请保证 RVA 是一个 section 的起始位置 RVA

先看方案如何,如果没问题,我再下手写,很简单
2005-3-17 16:02
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
35
俄国老写的东西我也早就试过了,的确是懒人产品

其实我意思不是要你做清除资源尸体的工作(而是将其清0),因为清除就意味优化,优化会带来复杂性和难于保证正确优化--原因也很多,我想优化是见人见智的事,好像hexer优化得那么变态的狠,是比较少人去做的事

对资源输出的RVA(就称资源入口)值的确定方案我有2种吧:

1.和2.都要共同遵守 Sections_sum <= RVA >=1000 [公则范围],不在这个范围,我也不知使用者想干什么;

我所见的PE头(泛指)映射到内存都是image+1000之前,以后才是代码和数据的,资源安排到这个PE头我也没见过,超出Sections_sum的,干嘛不直接选择PE资源一同修复,也不太合理吧。

1. 资源入口是能整除 1000h 的16进制值,采用Section块对齐[工整,顺眼]
2. 资源入口是在 [公则范围] 内随意16进制值,出于输出节对原PE文件的无直接相关性,用户比较了解PE如何能优化映射内存。

我个人喜欢后者,不过无论选择哪个也不是有什么大影响,因为使用者要求自己去动手优化(重新组装PE)。
2005-3-17 21:41
0
雪    币: 414
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
36
好东西,已收藏!
2005-3-18 14:53
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
最初由 askformore 发布
俄国老写的东西我也早就试过了,的确是懒人产品

对资源输出的RVA(就称资源入口)值的确定方案我有2种吧:

1.和2.都要共同遵守 Sections_sum <= RVA >=1000 [公则范围],不在这个范围,我也不知使用者想干什么;

我所见的PE头(泛指)映射到内存都是image+1000之前,以后才是代码和数据的,资源安排到这个PE头我也没见过,超出Sections_sum的,干嘛不直接选择PE资源一同修复,也不太合理吧。

1. 资源入口是能整除 1000h 的16进制值,采用Section块对齐[工整,顺眼]
2. 资源入口是在 [公则范围] 内随意16进制值,出于输出节对原PE文件的无直接相关性,用户比较了解PE如何能优化映射内存。


........


1.和2.都要共同遵守 Sections_sum <= RVA >=1000 [公则范围],不在这个范围,我也不知使用者想干什么;
呵呵,这个我已想到,放心

1. 资源入口是能整除 1000h 的16进制值,采用Section块对齐[工整,顺眼]
这种方案推荐

2. 资源入口是在 [公则范围] 内随意16进制值,出于输出节对原PE文件的无直接相关性,用户比较了解PE如何能优化映射内存。
不推荐,根据我的测试,不能是任意值,必须 dword alignment,UPX 0.72就是采取这种我认为比较变态的方式,不好,

代码已经写出来了,测试OK,不过又发现了一些不理想的地方,正进行改写
2005-3-18 17:40
0
雪    币: 255
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
38
半年没来,
一上来就有大礼,
谢谢~!
2005-3-19 07:44
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
39
辛苦了,支持
2005-3-19 16:19
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
重要更新版,更完美,更强大,请喜欢的朋友继续支持!

2005-3-20
2005-3-20 01:57
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
41
半夜出来的吧

1.完美是还原到最初状态?
2.可以自己加入ValidatePE功能。
3.可以先放Uncompressable的资源紧跟表再放Compressable的方便加壳了,嘿嘿
2005-3-20 07:43
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
42
再次支持~
2005-3-20 09:15
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
最初由 forgot 发布
半夜出来的吧

1.完美是还原到最初状态?
2.可以自己加入ValidatePE功能。
3.可以先放Uncompressable的资源紧跟表再放Compressable的方便加壳了,嘿嘿


1.完美是还原到最初状态?
可以说是这样吧。
2.可以自己加入ValidatePE功能。
ValidatePE 这个名词我不太清楚,有效化是在你知道如何修改PE的时候才成,适合高级用户
3.可以先放Uncompressable的资源紧跟表再放Compressable的方便加壳了,嘿嘿
这个加壳的知识我不懂了,得向你请教
2005-3-20 10:31
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
44
1.最初状态就是hexer状态
2.这个没什么了,lordpe里的那个基本可以
fix :
SizeOfImage = Align(LastSection.Rva+VSize)
VirtualSizes = NextSection.Rva-CurrentOne.Rva
RawSizes...............
3.加壳如果想压缩资源,有2种做法
一种重整资源表,麻烦不说了。
第二种是找到分界,把表和不可压缩的跳过,只压可压缩的。

整理后像这样
Res Table
Uncompressable Res
Compressabl Res === 压缩此处

如果你的engine准备支援加壳事业可以加入这个功能,仅供消遣X-D

4.上q
2005-3-20 11:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
支持!好东西哎~
2005-3-20 13:30
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
46
现在的版本就处理资源来说已经比较优秀...
其它的功能做到另外的产品中吧
2005-3-20 16:33
0
雪    币: 255
活跃值: (165)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
最初由 askformore 发布
现在的版本就处理资源来说已经比较优秀...
其它的功能做到另外的产品中吧


谢谢你的鼓励

准备收工了,又将代码框架稍微调整了一下,请大家重新下载。
如果哪位朋友英文文笔不错,能否将我的说明文档翻译成英文,先再此谢谢!
3-20 pm 5:05
2005-3-20 17:05
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
48
是否可以增加一个选项:

把资源各项列出来,能够手动定义挪移的目标资源地址
某些脱壳后,只需要移动几个图标资源
2005-3-21 13:39
0
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
49
最初由 dREAMtHEATER 发布


如果哪位朋友英文文笔不错,能否将我的说明文档翻译成英文,先再此谢谢!

这个任务我接了~
Wait for my translation~
2005-3-21 15:06
0
雪    币: 15613
活跃值: (4270)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
怎么我脱壳的软件不修复资源还可运行,一修复反而不能运行了?
2005-3-21 16:06
0
游客
登录 | 注册 方可回帖
返回
//