杂杂杂,汇编,shellcode,

gcc test.c -o test.out

----

test.c -> test.s -> test.o -> test.out

 

as test.s -o test.o

ld test.o -o test.out

./test.out

 

提取shellcode:

objdump -d shellcode_execve | grep "[0-9a-f]" | grep -v "file" | cut -f2 -d: | cut -f1-6 -d' '| tr -s ' '| tr '\t' ' '| sed 's/ $//g'| sed 's/ /\\x/g' | paste -d '' -s | sed 's/^/"/' | sed 's/$/"/g'

64位和32位的寄存器和汇编的比较

https://blog.csdn.net/qq_29343201/article/details/51278798

 

32位终端,系统调用对应表

http://blog.chinaunix.net/uid-28458801-id-3477399.html

 

栈结构

https://www.huaweicloud.com/articles/76d0abbffec2d0d7bd315d6813701e8a.html

 

Y86-64 指令字节数 及 指令编码

杂杂杂,汇编,shellcode,_第1张图片

杂杂杂,汇编,shellcode,_第2张图片

杂杂杂,汇编,shellcode,_第3张图片

 

如何得到指令编码?小端法机器上

杂杂杂,汇编,shellcode,_第4张图片

 

 

 

x86_64汇编入门

pushq %rax == subq $8, %rsp; movq %rax, (%rsp)

popq %rax == movq (%rsp), %rax; addq $8, %rsp

call func == pushq %rip; jmp func

https://nifengz.com/introduction_x64_assembly/

你可能感兴趣的:(汇编)