我是汇编语言的新手,并尝试获取.rdata节的内存基础,因为我想将此处的字符串与堆栈中的当前字符串进行比较。我正在使用x64dbg。
示例:在一个特定的调用中,我从存储在.rdata中的某些数据中看到(相对)内存地址,假设它是0x001C0000
,而.rdata从0x001A0000
开始,到{ {1}}。在x64dbg中,我可以通过键入返回返回0x001F0000
的{{1}}来获取.rdata内存,但是如何使用x86汇编语言呢?我想做的是从.rdata访问数据,但我不知道与内存基的偏移量。我该怎么办?
答案 0 :(得分:0)
使用“dumpbin.exe”。方法如下:假设您的文件是“foo.exe”,请执行以下操作:
dumpbin.exe /all foo.exe >foo.txt
然后,打开 foo.txt 并查找“SECTION HEADER #1”并检查名称(例如“.text”)。然后,查找“SECTION HEADER #2”、#3 等。
其中之一将被命名为“.rdata”。在名称下方,您有“虚拟地址”字段。这就是你想要的。