一、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.這...