在32位程式當中,函式的傳遞是通過棧來進行傳遞。
構造shellcode 的方式是 padding+ fake_ebp+p32(system)+p32(返回位址)+p32(system 的引數)
在64位程式當中,函式的傳遞是通過暫存器進行傳遞。在64位程式當中,引數先是找rdi, rsi, rdx, rcx, r8, r9。
構造shellcode的方式是padding+fake_ebp+p64(pop_rdi_ret)+p64(system的引數)+p64(system)
函式的返回位址被pop_rdi_ret所覆蓋,執行的時候 system的引數就進入rdi當中 並且ret執行後面的system
從0開始的機器學習的學習
mar 2,2015 從2012年開始我在微博上關注了一些混段子界和學術界 主要是計算機視覺和機器學習 的博主,很有收穫,總算找到一些門道。其實也簡單,首先還是要補充自己的數學基礎,即線性代數 概率論以及微積分等。我自己的微積分還記得,馬馬虎虎,線性代數幾乎忘掉,完全是靠重新學習 mit的線代代數入...
陣列的初始化為 0 的學習
int a 100 013a356e mov dword ptr a 5 013a3578 mov dword ptr ebp 190h 2 013a3582 push 188h 188h 即是十進位制的 392,也就是說先把陣列前兩個元素賦值,剩下的再呼叫memset置 0 013a3587 pu...
從0開始的Python學習008變數
區域性變數 在我們定義函式的過程中,函式內外具有相同名稱的變數是沒有任何關係的。變數的名稱對於函式來說是區域性的,而它所在的 塊就是它的作用域。使用區域性變數 區域性變數 deffunc x print x is x x 2 print changed local x to x x 5func x ...