首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

问个网络竞赛的有关问题

2013-10-24 
问个网络竞赛的问题编写一个程序(比如kernel module),使附件2.c中的程序跳出死循环。2.c中的代码如下:#incl

问个网络竞赛的问题
编写一个程序(比如kernel module),使附件2.c中的程序跳出死循环。2.c中的代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
     int n = 1;
     printf("Address of n :%x\n",&n);
     printf("My pid is: %d.\n", getpid());
     while(n){
         sleep(3); /* sleep for 3 secs */
     }
     printf("I break out\n");
     return 0;
}


想办法令其跳出循环,打印出"I break out\n"。
你的代码不能调用任何其他软件,比如od之类。
可能使用到内核栈、pt_regs结构体、函数栈桢
[解决办法]
找到函数main 使用的栈,修改 n 所在位置的数据,使之 =0
由于不知道用的编译器,操作系统,和模式,比较麻烦
如果是 DOS tiny 模式,C语言
main函数是第一个被调用的函数直接查找堆栈即可

热点排行