作者原文:5a2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8X3u0D9L8$3N6Q4x3V1k6E0M7$3N6Q4x3V1j5I4y4b7`.`.
这个是漏洞战争里面的例子,搜了一下没人写,自己实践过程中没能像作者那样开启htc,开启hpa后一步到达相应位置,而我开启后没能预期那样,所以写下此文
首先exploitdb搜了一下,poc在下面,软件也给了 7daK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2W2P5s2m8D9L8$3W2@1i4K6u0V1k6r3u0Q4x3X3g2U0L8$3#2Q4x3V1k6W2P5s2m8D9L8$3W2@1M7#2)9J5c8U0t1I4z5e0V1I4i4K6u0r3
注:可能文章中有各种错误的描述,请大佬们势必指出
poc也贴上
xp sp3
quartz.dll 版本:6.5.2600.5596
windbg
注:其实调试过程中遇到过很多奇葩的异常,没有一一列出
首先对qq播放器开启堆尾检查
windbg附加运行,打开文件没异常,应该是quartz.dll版本过高了6.5.2600.6333,换个虚拟机 作者是6.5.2600.5596,发现吾爱破解的虚拟机刚好是这个版本
首先再次确认一下gflag
what???怎么跟作者的不一样,查看堆栈也没啥,那我尝试关掉htc看看结果如何,gflag为0,发现异常位置也是不一样
还有一个,那我们只开hpa情况又会怎么样呢,怎么跟作者什么都没开一样
那时的我有那么几秒钟是崩溃的,很多时候就是那么几秒钟决定了你是继续下去,还是放弃
那我用最原始的办法,看看汇编下面的eax怎么来的,针对开了
在前面的eax赋值地方下个断点
可以看到这里esi指向的堆的大小等字段被覆盖成4141了,那是什么时候覆盖的呢
我们在前面esi赋值的地方下断点
我们发现此时还没被覆盖
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
洛燕 兄弟,我的错误出现在rep mov [edi], [esi]那个位置的时候,输入!heap -p -a edi没有任何反应,而且我在进程堆里,也没有看到edi所在堆块,你有遇到这个情况吗?
giantbranch 你开了hpa了吗