debugging - 如何获取.rdata的内存基础?
问题描述
我是汇编语言的新手,并尝试获取 .rdata 部分的内存库,因为我想将那里的字符串与堆栈上的当前字符串进行比较。我正在使用 x64dbg。
示例:在特定调用中,我从存储在 .rdata 中的某些数据中看到(相对)内存地址,假设它是0x001C0000
并且 .rdata 开始0x001A0000
并结束于.rdata 0x001F0000
。在 x64dbg 中,我可以通过键入 mem.base(0x001C0000)
which 返回来获取 .rdata 内存库,0x001A0000
但我如何在 x86 汇编语言中做到这一点?我想要做的是从 .rdata 访问数据,但我不知道内存库的偏移量。我怎样才能做到这一点?
解决方案
使用“dumpbin.exe”。方法如下:假设您的文件是“foo.exe”,请执行以下操作:
dumpbin.exe /all foo.exe >foo.txt
然后,打开 foo.txt 并查找“SECTION HEADER #1”并检查名称(例如“.text”)。然后,查找“SECTION HEADER #2”、#3 等。
其中之一将被命名为“.rdata”。在名称下方,您有“虚拟地址”字段。那正是你想要的。
推荐阅读
- java - 从键值(环境)传递到关系(实体)时,Xodus 会产生一个巨大的文件
- video - 使用 ffmpeg 从图像和 MP3 文件创建 iPhone 兼容视频
- c++ - g ++用户定义的动态链接库上的全局new和delete运算符
- rust - 如何返回引用和被引用的对象?
- windows - 为什么 Proof General 在 Windows 10 中如此缓慢?
- java - Java 通用问题:无法转换 Map
到 M 扩展地图 - angular8 - 来自 API 调用的 Angular 8 FormGroup 异步验证
- r - 根据 R 中的数据范围计算值
- c# - restsharp PUT 请求错误 --> “StatusCode: InternalServerError, Content-Type: application/json, Content-Length: -1)”
- javascript - 为什么我在使用 Ext JS 6.2.0 时遇到问题?