【发布时间】:2013-12-09 20:49:44
【问题描述】:
我正在研究缓冲炸弹实验室,但我被困在一件事上。我已经编写了我的漏洞利用代码来解决级别 2(鞭炮),但我不确定如何使用 gcc -c 将其转换为原始形式。
我从未编写过可编译的汇编文件,但我自己编写了指令并跟踪了已经编写的指令。所以我知道它们是如何工作的,但我不确定如何在语法上编写代码文件本身。
这是我试图转换为原始格式的文件的当前内容:
movl $0x1a4bb386, 0x804d200
push $0x0804915f
ret
我需要添加什么才能使用gcc -c 或objdump -d 进行编译?
我需要弄清楚这些指令占用了多少字节以及如何将它们插入缓冲区,以便编写缓冲区溢出漏洞。
谢谢。
【问题讨论】:
-
您需要阅读有关 GNU 汇编程序或 GAS 的信息。您还可以将汇编代码内嵌到 C 代码中。
-
我不认为您的第一条指令在 x86 芯片组上是有效的。你有没有想过下载英特尔自己的非常详细的处理器手册?它包含所有助记符及其参数的描述,以及它们的十六进制表示法。
-
应该是movl....编译好了。谢谢
-
我已经发布了一个答案,但我还有一个问题,请参考下面...谢谢。
标签: c++ gcc assembly x86 buffer-overflow