我正在手工分析IDA Pro中的“售后使用”错误。基本上,我控制对象的内容(由寄存器指向),并且我想强制在任意地址进行写操作。例如,我可能会找到一个mov [ebx], eax,可以同时控制eaxebx。例。假设我们控制ecx指向的数据,并且有以下代码:如您所见,通过选择[ecx],[ecx + 4]的值,可以看到]和[ecx + 8],我们可以执行任意写入。实际上,代码要复杂得多,因此很难跟踪我们控制的内容并找到合适的指令。

评论

您是在谈论ROP小工具,还是我完全感到困惑?

@perror不,这与ROP无关。该应用程序错误地释放了一个对象并继续使用它(通过悬空指针)。如果您成功地将控制的数据分配到释放对象所在的地址,则可能会损害应用程序。例如,您可以强制应用程序在特定地址写入0x20,这可能会修改javascript数组的长度,以便您现在可以读取数组的实际末尾,等等。您可以控制的asm指令。

#1 楼

我同意您的看法,因为您需要实施某种污点追踪,这在静态上是棘手的。此外,您需要知道对控制值是否有任何约束。此外,我们进入了符号执行域(警告,有龙)。无论如何,也许这个项目对您有帮助。它甚至具有最新版本的IDA Pro集成。

祝你好运!