程序的自我改写

这是一个C语言程序,它能够修改自身的代码,在第二次及以后的执行中跳过特定的代码段,展示了程序的自我改写能力。
摘要由CSDN通过智能技术生成
曾经,程序的自动改写是每个黑客必备的知识,因为这样可以有效的节约内存,下面是在现代的GNU/Linux 操作系统上实现的程序自我改写。
列一下环境:

speller@SHELL-LAB:~/code/c$ egrep "model name" /proc/cpuinfo | uniq -c
      2 model name      : Pentium(R) Dual-Core  CPU      E6300  @ 2.80GHz
speller@SHELL-LAB:~/code/c$ uname -sr
Linux 2.6.35.10-smp
speller@SHELL-LAB:~/code/c$ gcc --version | grep GCC
gcc (GCC) 4.4.4
speller@SHELL-LAB:~/code/c$


上代码:
  1. /*
  2.  * 文件名: self-modification.c
  3.  * 备注: 一个可以修改自身代码的小程序 ;p
  4.  */
  5. #include <stdio.h>
  6. #include <unistd.h>
  7. #include <sys/mman.h>

  8. void func (void);

  9. int main
  10. (int argc, char *argv[]) {
  11.     
  12.     int count = 0;

  13.     for (count = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值