我是汇编语言的新手,并且尝试获得.rdata部分的内存库,因为我想将那里的字符串与堆栈上的当前字符串进行比较。我正在使用x64dbg。
例如:在一个特定的调用中,我看到了存储在.rdata中的一些数据的(相对)内存地址,假设它是0x001C0000,.rdata从0x001A0000开始,到0x001F0000结束。在x64dbg中,我可以通过输入返回0x001A0000的mem.base(0x001C0000)来获取.rdata内存库,但是在x86汇编语言中如何做到这一点呢?我尝试做的是从.rdata访问数据,但我不知道与内存基数的偏移量。我该怎么做呢?
发布于 2021-03-30 08:34:58
使用"dumpbin.exe“。这里是怎么做的:假设你的文件是"foo.exe",这样做:
dumpbin.exe /all foo.exe >foo.txt
然后,打开foo.txt,查找"SECTION HEADER #1“并检查名称(例如".text")。然后,查找“节标题#2”、#3等。
其中一个将被命名为".rdata“。就在名字下面,你有一个“虚拟地址”字段。这就是你想要的。
https://stackoverflow.com/questions/51809087
复制相似问题