1

我了解缓冲区溢出的概念,并承认它可以让我有机会在外部可执行文件中执行我自己的代码。

我的问题是,这不能简单地用更简单的方法来完成吗?

说注入一个 DLL,然后在 DLLMain 中编写你的恶意代码?

或者玩反汇编并将汇编代码注入可执行文件?

即使你的恶意代码工作了,你能从这个行为中得到什么损害\利润,而你自己编辑反汇编是无法得到的?

据我了解,当你拿到一个可执行文件的那一刻,你就是它的主人,并且可以通过反汇编来添加\更改\删除代码,为什么要努力寻找漏洞呢?

谢谢,迈克尔。

4

2 回答 2

4

问题是,您通常不会让受害者运行您的可执行文件。因此,您可以使其成为恶意的事实几乎没有价值。

相反,您可以让潜在的受害者使用您的输入:这就是它如此有趣的原因。

于 2012-04-24T09:53:28.243 回答
2

大多数情况下,这是由于当今用户对可执行文件持怀疑态度,以及他们认为 PDF 文档不会包含病毒。在其他情况下,交付代码的唯一方法是通过漏洞利用,例如缓冲区/堆/堆栈溢出。

例如,在 Apple iOS 设备上,下载可执行代码的唯一方法是通过 AppStore。所有以这种方式出现的可执行文件都必须得到 Apple 的明确批准。另一方面,如果用户只是在 MobileSafari 中访问恶意制作的 PDF 文档的链接,它可能允许攻击者在设备上任意执行代码。

Comex 的 JailbreakMe.com 网站(v2.0(Star)和 v3.0(Saffron))就是这种情况。该网站让设备加载一个极其复杂的 PDF 文件,最终导致设备越狱。世界上没有机会苹果会批准一款可以做同样事情的应用程序。

于 2012-05-07T22:24:13.390 回答