【发布时间】:2014-09-08 19:28:08
【问题描述】:
我遇到的这篇关于 windows shellcoding 的帖子展示了如何为位于 kernel32.dll 中的 Sleep 函数制作一个简单的 shellcode。我理解代码,但似乎你不能在不知道库中函数的确切地址的情况下调用函数,你必须使用帖子作者提供的arwin32.exe。
;sleep.asm
[SECTION .text]
global _start
_start:
xor eax,eax
mov ebx, 0x77e61bea ;address of Sleep
mov ax, 5000 ;pause for 5000ms
push eax
call ebx ;Sleep(ms);
Shellcoding for Linux and Windows
在 MASM32 中,仅包含库和 dll,但我不知道这是否与 NASM 中的情况相同,我尝试使用 RadAasm 包含 kernel32.lib 但出现错误。
对睡眠的未定义引用。
我的问题是:如何在不知道任何函数的确切地址的情况下调用 NASM 中的 Sleep 函数,无论是 GetProcAddress 等。
注意:即使是其他示例,他也提供了函数的绝对地址。
【问题讨论】:
-
我对 windows 上的 nasm 不熟悉,但你试过
nasm -f bin source.asm吗? (或 windows 的 win32)