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