能力值:
( LV6,RANK:90 )
|
-
-
2 楼
看点汇编的书
|
能力值:
(RANK:410 )
|
-
-
3 楼
在DFCG回答过,再转过来吧。
+---------+---------+---------+---------+---------+---------+
| 段名称 虚拟地址 虚拟大小 物理地址 物理大小 标志 |
+---------+---------+---------+---------+---------+---------+
| Name VOffset VSize ROffset RSize Flags |
+---------+---------+---------+---------+---------+---------+
| .text 00001000 00000092 00000400 00000200 60000020|
| .rdata 00002000 000000F6 00000600 00000200 40000040|
| .data 00003000 0000018E 00000800 00000200 C0000040|
| .rsrc 00004000 000003A0 00000A00 00000400 C0000040|
+---------+---------+---------+---------+---------+---------+
文件虚拟偏移地址和文件物理偏移地址的计算公式如下:
>>>>>>>VaToFileOffset(虚拟地址转文件偏移地址)
如VA = 00401000 (虚拟地址)
ImageBase = 00400000 (基地址)
VRk = VOffset - ROffset = 00001000 - 00000400 = C00 (得出文件虚拟地址和文件物理址之间的VRk值)
FileOffset = VA - ImageBase - VRk = 00401000 - 00400000 - C00 = 400(文件物理地址的偏移地址)
如VA = 00401325,则:
FileOffset = VA - ImageBase - VRk = 00401325 - 00400000 - C00 = 725
>>>>>>FileOffsetToVa(文件偏移地址转虚拟地址)
如FileOffset = 435(文件偏移地址)
VA = FileOffset + ImageBase + VRk = 435 + 00400000 + C00 = 00401035(虚拟地址)
|
能力值:
(RANK:350 )
|
-
-
4 楼
小虾讲的不错,再给楼主一张图理解一下:
|
能力值:
( LV12,RANK:450 )
|
-
-
5 楼
用工具PETools或LordPE转换。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
什么汇编的书最好啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
最初由 kanxue 发布 小虾讲的不错,再给楼主一张图理解一下:
终于找回帐号了,我不知道文件中的.data段中间隙是怎么找的,还有这里哪个版才是新手区啊,我想多看点基础的东西
|
能力值:
(RANK:350 )
|
-
-
8 楼
最初由 ghostscat 发布
终于找回帐号了,我不知道文件中的.data段中间隙是怎么找的,还有这里哪个版才是新手区啊,我想多看点基础的东西
这里不分新手区、高手区,只按讨论内容分类。
区段的间隙,你用LordPE打开一个PE,再配合十六进制工具,就会明白了。间隙那段空间全是0.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
谢谢,看到0有很多。我看了几篇关于动态内存补丁技术的文章,都说可以在.data尾向上一点找到空白段写自己的代码,这里的间隙是不是就是空白段?
|
能力值:
(RANK:350 )
|
-
-
10 楼
用LordPE查看区块后面部分.
因为区块都是对齐的,磁盘上对齐值一般是0x200或0x1000,如果某个区块中的有效数据大小是0x160,而为了对齐,区块的大小是x200,则0x160到0x200之间就是间隙.
说的很抽象的,你用实例操作一下,再结合上面的图自己分析一下就会很清楚的。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
版大是俯首甘为孺子牛
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
非常感谢,现在终于明白PE结构了。还有个问题这里只能用16进制编辑器吗?我想直接写汇编可以用什么工具?jmp/call的地址是写物理地址还是写虚拟地址?
我是刚接触PE的,也花了不少时间找这方面的资料,但没人指点,搞得一头雾水,真搞浑了...,还请各位教教小弟。我的目的是想做出像红色警戒2之类游戏的金钱地址动态变成静态,然后写出修改器。
|
|
|