首页
社区
课程
招聘
[旧帖] 关于PE文件格式 0.00雪花
发表于: 2010-1-29 13:26 4096

[旧帖] 关于PE文件格式 0.00雪花

2010-1-29 13:26
4096
一般的(默认链接)PE文件在执行后会将DOS stub和PE Header映射到0x400000-0x401000之间,   请问该段内存的读写属性有否文档提到, 不考虑加壳等非常规因素的影响,  

另外能否使用VirtualProtect 修改此段内存属性?

我目前实验的结果是 该段内存区域读写属性不定........

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 126
活跃值: (37)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
2
最近练习了对PE文件的操作,根据我个人的编程经验认为(经验之谈,无理论依据),PE header是不可以读写的(在我写的时候会引发异常)

如果你想操作PE头的话,就把它拷贝到自己分配的内存空间里(GlobalAlloc RtlMoveMemory),修改后再直接写回原文件(WriteFile)。
2010-1-31 17:53
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
我也不知道,所以就有了下面的code,结果是: 修改不成功!

#include "stdafx.h"
#include "windows.h"

int main(int argc, char* argv[])
{
	DWORD dwOldProtect;
	DWORD *lpAddr = (DWORD *)0x0040000;
	BOOL bOk = FALSE;
	for (UINT i=0; i<(0x1000/4); i++)
	{
		lpAddr++;
		bOk = VirtualProtect( (LPVOID)lpAddr, 4,PAGE_EXECUTE_READWRITE, &dwOldProtect );//去掉代码区内存保护
		if (bOk == TRUE)
		{
			printf("修改属性成功!\n");
			return 0;
		}
	}
	printf("修改不成功!\n");
	return 0;
}
2010-1-31 18:32
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
To tangjiutao:
你的方法是修改其他的PE文件,修改自身 远远没有那么简单!
2010-1-31 18:39
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
要改PE头是可以的,另加载的地址一般是imagebase处
上述失败的代码应该是0x00400000这里少了0
2010-1-31 18:41
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
正解!!! 谢谢
2010-1-31 19:03
0
雪    币: 6
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习学习
2010-1-31 19:59
0
雪    币: 126
活跃值: (37)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
8
哦,再研究一下
2010-1-31 22:01
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
3楼5楼说完了
2010-2-1 00:03
0
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
很多压缩壳不都是在最后通过修改PE头来修来区段的属性么。
也是通过VirtualProtect来提权的,应该是可以修改的
2010-2-1 11:33
0
雪    币: 93
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
貌似不对 建议楼上几位多测试几次
我测试的结果的确是  多数可以  偶尔不可以

我可以确定没有少0....^_^
2010-2-2 17:40
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
出了问题不一定是少0好不好
我对这个分没什么兴致,不要结果有一点不同就要别人怎么怎么样
2010-2-2 19:23
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
13
给2个例子啊   给一个可以的例子  一个不可以的例子   打包发上来   这样讨论没什么意义
2010-2-3 00:38
0
游客
登录 | 注册 方可回帖
返回
//