首页
社区
课程
招聘
[旧帖] 请教内存读文件问题 0.00雪花
发表于: 2012-5-28 10:41 3624

[旧帖] 请教内存读文件问题 0.00雪花

2012-5-28 10:41
3624
更新问题:我怎么读出内存pe文件的总长度呢(就是到文件尾)?我想读出自身的程序在内存中的全部内容,没加壳的和加任意壳都能读出来

如题我用

基址 = GetModuleHandle (0) 
句柄 = OpenProcess (#PROCESS_ALL_ACCESS, 0, GetCurrentProcessId ())
ReadProcessMemory (句柄, 基址, 整体文件, 1000, 0)  ' 读内存映像头
然后写到文件,通过比较,如果程序不加壳,取到的内存映像头跟原程序一样,如果加壳了,取出来有三个节节不一样,如图,谁知道是什么问题呢


左边是从内存拷贝出来的,右边为正确的磁盘文件

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2835
活跃值: (2643)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
后两个目测是区段属性,从60000040被修改0xE0000040添加了可写属性。
应该是壳中代码执行完成以后修改了PE头
2012-5-28 12:43
0
雪    币: 498
活跃值: (1552)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wxq
3
我怎么读出内存pe文件的总长度呢(就是到文件尾)?我想读出自身的程序在内存中的全部内容,没加壳的和加任意壳都能读出来
2012-7-7 10:44
0
雪    币: 547
活跃值: (534)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
LoadPE中有一个选项是,从磁盘读取文件头,这么做就是为了避免文件头被修改,
你也可以这么做,
2012-7-11 12:51
0
游客
登录 | 注册 方可回帖
返回
//