-
-
[原创][分享]如何使用gflags分析堆破坏
-
发表于: 2022-3-4 22:15 6085
-



在使用gflags之前,根据模块+Offsest信息是无法定位实际崩溃位置的,这是典型的对破坏表现。
明显在使用gflags之后,可以准确定位到模块: BugKing+0x1888
如果有pdb,就可以准确定位到产生堆破坏的代码位置。
根据强大的IDA反汇编可以找到问题代码。使用了悬空指针,并赋值0X123456。
gflgas用来跟踪程序的执行,可以设置每一次new分配的堆空间都单独的占有一块空间,并且这个空间相邻的位置被设置为不可访问的,一旦访问越界立即触发访问无效错误,尽早的触发崩溃。
建议在虚拟机上测试,这种方法可能会影响电脑的系统性能。
什么是Heap Corruption
堆破坏是内存破坏的一种,简单来说就是由于程序的错误导致堆内存被意外改写,典型的情况包括:
申请了N个Bytes的内存,却试图写入> N个Bytes的内容;
向已经释放的内存位置写入内容;
[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!
最后于 2022-3-5 08:37
被_THINCT编辑
,原因:
赞赏
他的文章
赞赏
雪币:
留言: