Re: [問題] 無法了解shell code執行程式

作者: enonrick (EnonRick)   2016-07-11 16:28:30
※ 引述《zarados (ner)》之銘言:
: 今天在看一個簡單的小程式 程式目的是執行shell code
: 但看不太懂 google關鍵字也下的不太好 沒有找到相關資訊
: 主要程式碼如下:
: char code[] = "\x..\x.."
: int main () {
: int (*func)();
: func = (int(*)()) code;
: (int)(*func)();
: }
: shell code的部份我就不打了 主要是看不懂第二行到底再寫什麼
: 或可以告訴我要往哪個方向找 謝謝
runtime 初期就會把所有 function layout 到 user-space 裡,每個function 都是一
個啟始記憶體位址(設B),function call 時會從當前執行位址(設A) jump 到 B
的區塊執行,完畢從再回到位址A + 1,B裡的內容就是 machine code
以上例
int (*func)(); //宣告 function pointer
func = (int(*)())code; //設定啟始位址,也就是預先寫好的 machine code
(int)(*func)(); //function call

Links booklink

Contact Us: admin [ a t ] ucptt.com