程式:
#include
void
exploit()
void
func()
intmain()
關掉保護機制:
gcc -no-pie -fno-stack-protector -z execstack -m32 -o 3.exe 3.c
檢查一下:
checksec 3.exe
0x01 kali自帶msf-pattern_create -l 100
建立長度為100的字串
執行我們的程式:
start
一直下一步,直到需要填入引數:
這個時候程式報錯了,表示有溢位了
我們來看看eip的值,0ab1,表示溢位使返回的位址是這個
使用命令,檢視在**溢位了
32位,我們可以修改從32位開始的資料,讓程式跳轉到我們指定的位址執行
0x02 peda
pattern create 100
生成長度為100字串
使用命令r,讓程式繼續執行,複製我們生成的字串,注意單引號不要複製
溢位了,檢視現在的eip,a)aa
使用命令檢視溢位位置
32位0x03 pwndbg外掛程式
cyclic 100
生成長度為100的字串,按照上面的順序,得到溢位eip的值為iaaa
查詢溢位位置:
cyclic -l iaaa
32位 下多行文字溢位點點點
一 單行文字出現點點點.div overflow hidden text overflow ellipsis white space nowrap 二 多行文字出現點點點.box text overflow o ellipsis lastline display webkit box webkit ...
gdb如何定位死鎖的位置
include include include using namespace std 互斥鎖 mutex mtx 執行緒共享資源 int i 0 執行緒入口函式 void func intmain 找到對應程式的pid,此處為10854,然後執行gdb p 10854進入該程序的gdb除錯介面。執...
使用者位置定位
之前看到很多應用會自動檢測到使用者所在的城市,後來想了想原理,其實就是檢測到經緯度,然後根據經緯度判斷所在位置或城市。不過多介紹了,直接上馬吧。log.i tag 緯度 location.getlatitude log.i tag 經度 location.getlongitude log.i tag...