首页
社区
课程
招聘
[原创]无PDB也能定位源码出错位置
2023-12-2 16:31 2432

[原创]无PDB也能定位源码出错位置

2023-12-2 16:31
2432

分析dump文件,能查到的堆栈信息如下:
图片描述
本来是有pdb文件的,也加载了,但是没有对应的堆栈上的Canvas模块,只有偏移信息,可能pdb文件的版本出问题了。
根据这个偏移,使用 bp Canvas+0x271497 下断点,再次运行,触发断点。发现对应的代码并不是对应的硬编码:833905,即 cmp dword ptr [ecx],5
图片描述
于是将Canvas.dll模块使用IDA打开,搜索硬编码 833905
图片描述
得到
图片描述
只有三个,结合下一指令,进一步确认得到,崩溃点代码在
图片描述
基本上直接确定了代码的函数和行数。

找到源码,根据函数和偏移,找到崩溃的汇编语句
图片描述
结合最开始dump的信息,知道ecx=1,从而知道pShape指针对象出现了问题。

其实通过这种方法,就算编译器启用了优化选项,也能准确定位到程序的崩溃点对应的源代码位置的。


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2023-12-2 16:51 被_THINCT编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (1)
雪    币: 19410
活跃值: (29069)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-12-2 20:58
2
1
感谢分享
游客
登录 | 注册 方可回帖
返回