首页
社区
课程
招聘
[旧帖] 一个菜鸟很弱小的pe问题 0.00雪花
发表于: 2011-11-8 23:29 5436

[旧帖] 一个菜鸟很弱小的pe问题 0.00雪花

2011-11-8 23:29
5436
我好像看不懂peinfo给出的信息, 大家教教我.



上面这张截图上, peinfo显示的.textbss的r.offset为0, 这个是文件偏移量啦, 为0也太不可能了吧? 再说从文件头打开偏移0的地方也不是.textbss啊?
对比ue和peinfo显示的信息, 完全对不上号啊, 到底是为什么啊?

还请大家多多指教, 不胜感激.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 384
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
加壳了,很有可能是ZP
2011-11-9 00:35
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
typedef struct _IMAGE_SECTION_HEADER {
BYTE Name[IMAGE_SIZEOF_SHORT_NAME];//节表名称,如“.text” 
//IMAGE_SIZEOF_SHORT_NAME=8
union {
DWORD PhysicalAddress;//物理地址
DWORD VirtualSize;//真实长度,这两个值是一个联合结构,可以使用其中的任何一个,
//一般是节的数据大小
} Misc;
DWORD VirtualAddress;//RVA
DWORD SizeOfRawData;//物理长度
DWORD PointerToRawData;//节基于文件的偏移量
DWORD PointerToRelocations;//重定位的偏移
DWORD PointerToLinenumbers;//行号表的偏移
WORD NumberOfRelocations;//重定位项数目
WORD NumberOfLinenumbers;//行号表的数目
DWORD Characteristics;//节属性 如可读,可写,可执行等
}
2011-11-9 13:30
0
雪    币: 534
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
才有2个人回复, 哎.
2011-11-9 21:11
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你没留意到r.size也是0吗?
BSS存放的是未初始化的全局变量和静态变量,也就是说这些变量只有在程序执行时才需要分配空间,赋值并使用,所以在文件中存储时完全没有必要为之分配空间,故文件中大小就是0,不存在。只有在执行时,Windows才会在内存中为此段分配空间,等到程序执行过程中用到这些变量了,就会向其中写入值。
2011-11-9 22:55
0
雪    币: 883
活跃值: (314)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
6
如果我没猜错,这应该是vs8.0以上版本编译出来的Debug版程序。

通过Flags可以判断出“.textbbs”与“.text”段都具有可执行权限,且“.textbbs”还具有写入权限,因此“.textbbs”的作用就很明显了,就是在程序运行之后在RVA 0x1000-0x10000 “托管”可执行代码与一些全局的未初始化数据。

因此其文件体积相关的信息基本可以被忽略,其真正有用的是描述内存空间的相关内容(也就是PEID里的V.Offset与V.Size)。
-------------------------------------------------------
在Release版中,“.textbbs”的作用被“.data”段超出文件大小但小于内存大小的那部分区域所替代,这点在段老师的《加密加密3》中有一句话提到过。
2011-11-9 23:29
0
游客
登录 | 注册 方可回帖
返回
//