记一次X64dbg导入MAP文件后符号地址错误的解决方法

IDA版本:7.2
X64Dbg版本:x64dbg_2021_03_12
X64Dbg加载Map文件插件:SwissArmyKnife 9-26-2020
假期想重新分区,给C盘扩展一下,结果系统进不去了,重置后进系统却没有网络,ping不出去,尝试各种方法后无奈准备调试ping.exe看能不能找到问题,这是前提条件
因为工作电脑ping不出去,没网,就吧ping.exe拷贝到另一台电脑上用IDA7.2加载系统符号分析一下。然后在工作电脑上用X64dbg调试。加载系统符号后清晰了很多,所有函数都被识别了出来
没加载符号库

加载系统符号后解析后的函数
就想导出MAP文件到X64Dbg,但导入后出现了问题:
在这里插入图片描述
IDA中main函数地址为7FF663651B5C
导入后main'函数的地址指向了ntdll的text段
但导入X64dbg后,main函数的地址变成了7FFEF94D0B5C,指到了ntdll的text,确定不是IDA设置问题,因为我已经把IDA基址设置为和X64dbg一样,尝试了两次后问题还在,去官网加百度找一圈也没看到类似的情况,只好自己试着看看吧。
首先想的是为什么函数符号会跑到ntdll里。应该都在exe文件所在内存空间才对。
想了很久的我忽然注意到,在X64dbg载入进程的伊始,地址就是在ntdll里,于是先按一下F9让程序走到exe的空间,再导入map文件。
可以,符号成功来到EXE所在内存了,但地址还不对。成功了一小步
在这里插入图片描述
该地址与实际地址小了0x1000,像是MAP文件的问题,没办法,看看MAP文件吧

在这里插入图片描述
MAP不复杂,虽然看不太懂,但能猜个大概,后边是函数名,冒号后应该是偏移,暂时不知道冒号前的意义,感觉像是区段,但又不存在000001的区段,想着会不会是IDA和X64的起始下标不一样导致的,把这里改成2试试。于是把这里的数字都加了一,居然成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值