32位程序exec()是一个64位程序

时间:2014-09-08 00:03:17

标签: linux exec system-calls cpu-architecture shellcode

在我的Debian amd64系统上,我试图在示例程序上运行32位漏洞利用有效负载的测试。我知道这些有效负载工作正如我在32位虚拟机中测试过的那样。

安装所有必需的库以运行32位或64位程序。

但是,当shellcode执行int 80h来调用exec("/bin/sh", ...)时,系统调用失败,返回错误代码-2(ENOENT)。

修改shellcode以执行另一个32位程序会导致shellcode按预期工作。

那么,有没有办法从{32}程序exec() 64位程序?

1 个答案:

答案 0 :(得分:0)

使用execl库函数时可以正常工作。

从shell代码调用库函数可能很困难,但您可以尝试在正常程序中跟踪其执行情况,并了解如何编写执行相同操作的shell代码。