主要思路是,对可执行文件进行反汇编,找出地址,然后在vim下通过16进制形式进行修改,仅作为一个练习咯。
第一步,写一个简单的代码jmp.c:
#include <stdio.h>
void jmp(void)
{
printf("This is in funtion jmp.\n");
}
int main()
{
printf("This is main and you can not call function jump.\n");
return 0;
}
$gcc jmp.c -o jmp编译生成jmp可执行文件。
./jmp可以得到结果:
This is main and you can not call function jump.
obj -S jmp可以反汇编执行。这里S是大写。结果中,这里需要注意的只有jmp中和main中的函数,如下: