20165334 PC平台逆向破解

2022-05-04 03:15:12 字數 1944 閱讀 6804

1、使用objdump -d pwn1pwn1d反彙編

從上圖可以看出,80484b5: e8 d7 ff ff ff call 8048491這條彙編指令,在main函式中呼叫位於位址8048491處的foo函式,e8表示「call」,即跳轉。如果我們想讓函式呼叫getshell,只需要修改d7 ff ff ff即可。根據foo函式與getshell位址的偏移量,我們計算出應該改為c3 ff ff ff

2、修改步驟如下

3、反彙編檢視修改後的**,發現call指令正確呼叫getshell

4、執行修改後的**,可以得到shell提示符

1、使用gdb除錯pwn2進入gdb除錯,輸入字串1111111122222222333333334444444455555555;觀察一下各暫存器的值

2、將輸入字串的「55555555」改成「12345678」,以便進一步觀察修改的地方。

3、輸入perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input

4、然後將input的輸入,通過管道符「|」,作為pwn1的輸入。

修改以下內容

3.1 構造攻擊buf(採用 retaddr+nop+shellcode 方法)

3.2確定返回位址的值

設定斷點來檢視注入buf的記憶體位址disassemble foo

ret的位址為 0x080484ae,ret完就會跳到我們覆蓋的返回位址了

break *0x080484ae設定斷點

在另乙個終端按下回車,這樣程式就會執行之後在斷點處停下來

再在gdb除錯的終端輸入 c 繼續執行程式

通過info r esp檢視esp暫存器的位址

上圖可以看到01010304所在的位址為0xffffd23c,那麼注入的shellcode**的位址應該在該位址後四個位元組的位置,即0xffffd23c + 0x00000004 = 0xffffd240

退出gdp除錯。

修改注入**的覆蓋位址

通過這次實驗初步感受到這門課的內容,雖然本次實驗的實驗原理比較簡單,但是實踐過程中需要細節需要注意,涉及到的知識也比較多,複習了彙編和計算機原理的許多知識,為今後的學習打下了基礎。

- 關於對漏洞的理解

通過這次實驗我覺得漏洞可能是程式本身的一些設計漏洞或缺陷,使得攻擊者利用這個缺陷改變程式的執行邏輯,使得程式按照攻擊者的意願執行。

漏洞的危害:可能導致計算機安全性的破會,程式癱瘓,資料丟失,財產損失等。

20145232韓文浩《網路對抗》PC平台逆向破解

1 linux下有兩種基本構造攻擊buf的方法 retaddr nop shellcode,nop shellcode retaddr。我們採用anything retaddr nops shellcode的方法。2 實驗的目標是找到返回位址的位置和shellcode的位址。然後通過修改返回位址使其...

手機平台的PC模擬環境

越來越多的公司採用 linux tinyx gtk 系列作為手機開發環境,它本身可以認為是完全免費的,但需要大量的時間去研究它,去裁減它,還要建立整合開發環境,模擬執行環境等等,這一切都不是免費的。乙個專案耗費一到兩年時間,已經屢見不鮮見了。在建立開發環境,模擬執行環境,等這類簡單的事情,花大多時間...

玩客雲pc端 幸運雲IP創意平台PC電腦端上線了!

從2018年開始策劃搭建幸運雲平台到2019年02月beta1第乙個版本開發完成 再到今天的beta公測版,2020年9月19日我們正式上線了!當前平台只支援pc電腦端瀏覽 暫不支援手機及h5瀏覽 我們梳理打造幸運雲品牌,幸運雲主要涉及三個方向和乙個實驗室 幸運圖 幸運物 幸運造 幸運池。幸運雲 傳...