我已经阅读了一些有关基本shellcode的教程,我有一个问题。我已经在c中编写了一个小函数
#include <stdio.h>
#include<string.h>
int main() {
char cmd[] = "net user /add jango Jango01$";
system(cmd);
}
并已使用
构建了目标文件gcc -c exec.c -o exec.o
现在,我想使用objdump将其转换为shellcode。
c:\>objdump -d -M intel exec.o
: file format pe-i386
Disassembly of section .text:
00000000 <_main>:
0: 55 push ebp
1: 89 e5 mov ebp,esp
3: 83 e4 f0 and esp,0xfffffff0
6: 83 ec 30 sub esp,0x30
9: e8 00 00 00 00 call e <_main+0xe>
============= SNIP =============
5c: c9 leave
5d: c3 ret
5e: 90 nop
5f: 90 nop
当我将字节捆绑成类似的东西
char code[] = "\x55\x89\xe5\x83\xe4\xf0\x83\xec\x30\xe8\x00\x00\x00\x00 == SNIPPET == \xc9\xc3\x90\x90";
这是正确的方法吗?我不确定hexdump是否是最终的shellcode。我的英语不太好,我不确定我是否听懂。
谢谢