shellcode 1 採用硬編碼彈出計算器

2021-08-20 02:58:50 字數 1718 閱讀 2546

一、shellcode的介紹

用一句話給的shellcode的下個定義,那就是「一段可以執行特定功能的機器碼」。

二、實驗環境及工具介紹

實驗環境:windows xp sp3

實驗工具:ollydbg、winhex、lordpe

三、程式設計思路

用c語言來描述其實就是兩句:

winexec("calc.exe", 5);

exitprocess(0);

看到有些文章會在開頭還加一句:

loadlibrary(「kernel32.dll」);
看不懂為啥要加這一句,因為大部分軟體都會載入kernel32.dll這個的dll,更何況loadlibrary()本來就是在kernel32.dll中的。。。

四、確定被呼叫函式的虛擬位址

因為這次是用的是硬編碼的方式,所以需要通過查詢kernel32.dll的匯出表,來確定的的winexec()和exitprocess()的虛擬位址。使用lordpe載入kernel32.dll,在匯出表中查詢這兩個函式得出兩個函式的rva(相對虛擬位址)為別為:0x000623ad和0x0001cafa。

當然,光有rva是不夠的,還需要知道基址,即0x7c800000。

所以計算得出了exitprocess()的位址為0x7c81cafa,winexec()的位址為0x7c8623ad。

五、編寫彙編**

int main()

return 0;

}

測試結果:

六、提取機器碼

用od引導程式,二進位制複製,再貼上到的的winhex中。

提取機器碼,並測試:

至此,一段用硬編碼的shellcode的就完成了(@ _ @)!

GO語言編譯環境採用gosublime(19新版)

0x00 環境變數 預設已經有gopath 存放在這 path 安裝go的bin目錄即e sdk bin 這裡我再添個goroot系統變數,值為e sdk 安裝go的根路徑 0x01 sublime text3下 sublime text3下按ctrl shift p輸入pcip我已經裝過了 重點介...

Hibernate硬事實第1部分

hibernate是乙個廣泛使用的orm框架。許多組織在其專案中使用它來管理其資料訪問層。但是,許多使用hibernate的開發人員並不完全了解其功能的全部內容。這是第1 週後在hibernate中鐵的事實集中series.other職位包括 hibernate硬事實第1部分 本文 hibernat...

用了快1年的MacBook Pro遇到的硬體問題

去年11月7日買的macbook pro,到目前快1年了,遇到了3個硬體問題 之前用了5年的thinkpad在5年內未出現任何硬體問題 1.有一次macbook放在揹包中,揹包拎在手上落在地上,結果macbook乙個角的邊緣的漆掉了。而之前用的thinkpad,掉在地上很多次,卻沒有任何損傷。2.這...