only 发表于 2006-12-28 18:50

Linux c 程序

Linux c 程序
//esp.c

/*
* got_jmpesp.c, scanning for JMP %ESP
* - izik@tty64.org
*/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
int i, jmps;
char *ptr = (char *) 0xffffe000;

jmps = 0;

for (i = 0; i < 4095; i++) {

if (ptr == &#39;\xff&#39; && ptr == &#39;\xe4&#39;) {

printf("* 0x%08x : jmp *%%esp\n", ptr+i);
jmps++;
}

}

if (!jmps) {

printf("* No JMP %%ESP were found\n");
}

return 1;
}

run esp时总是不能成功,出了什么问题?

# ./esp
程序内存区段错误
#


听说是内存读取权限问题 是吗?
我应该如何做才能成功得到预期的结果,谢谢
页: [1]
查看完整版本: Linux c 程序