首页
社区
课程
招聘
菜鸟问题
发表于: 2010-4-20 01:51 3591

菜鸟问题

2010-4-20 01:51
3591
我扩大记事本最后一个节的大小,是资源节。
并给予5个变量赋值,分别是节表的characterisctis  misc.virtualsize 还有sizeofrawdata
sizeofrawdata 是这样计算的,用节表misc.virtualsize加上插入代码的长度,除以FILEALGNMENT,取模加1,乘以FILEALIGNMENT,得到的值等于sizeofrawdata
还修改了NT文件头的入口点和文件大小,文件大小是这样算的,用插入代码后的SIZEOFRAWDATA减去原来的SIZEOFRAWDATA,再加上原来的文件大小SIZEOFIMAGE
得到的值就等于插入代码后的SIZEOFIMAGE,可是这样处理后插入代码的文件老提示不能启动,是不是这些算法错了,或者还要修改其他变量。谢谢,请大哥大姐帮忙处理下。

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如要扩大PE 文件最后一个节比如50 bytes,步奏如下:
1) 最后 IMAGE_SECTION_HEADER.SizeOfRawData + 50
2) 最后 IMAGE_SECTION_HEADER.Misc.VirtualSize = Align(最后 IMAGE_SECTION_HEADER.SizeOfRawData + 50, IMAGE_OPTIONAL_HEADER.SectionAlignment);
3) IMAGE_OPTIONAL_HEADER.SizeOfImage = 最后 IMAGE_SECTION_HEADER.VirtualAddress + 最后 IMAGE_SECTION_HEADER.Misc.VirtualSize;

PE 文件的大小,如GetFileSize() 其实 = 最后IMAGE_SECTION_HEADER.PointerToRawData + 最后IMAGE_SECTION_HEADER.SizeOfRawData
2010-4-20 08:04
0
雪    币: 249
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
IMAGE_SECTION_HEADER.SizeOfRawData应该对齐吧?LS好像弄反了,VirtualSize不对齐可以,但是SizeOfRawData一定要对齐的。
2010-4-20 09:57
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看了,有点 晕 头转向
2010-4-20 13:19
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
路过 学习学习
2010-4-20 14:23
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习中!虽然有点晕
2010-4-20 14:48
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这年头,不想回答问题就算了,还添乱。我说的是2楼
2010-4-20 17:22
0
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
3楼的大哥,没弄反。

SizeOfRawData 对齐 FileAligment, VirtualSize 对齐 SectionAlignment!

我给的只是伪代码 (pseudocode)不需要每个细节都写出来吧?

这年头好人难做!
2010-4-20 18:23
0
雪    币: 249
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
2L也是好心,如果捣乱也不至于花心思写那么多~~看雪里面应该没有诚心捣乱的
2010-4-21 11:20
0
雪    币: 249
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
“SizeOfRawData 对齐 FileAligment”你这句话没表达出来呀在2L。你要表达出来我就D你了,呵呵。别伤心,LZ心直,没有什么恶意,大家都是在看雪学习的
2010-4-21 11:23
0
游客
登录 | 注册 方可回帖
返回
//