雜雜雜,彙編,shellcode,

順炸天發表於2021-01-03

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 指令位元組數 及 指令編碼

 

如何得到指令編碼?小端法機器上

 

 

 

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/