asm c修改const变量

时间:2013-01-21 13:46:32

标签: c assembly

考虑以下情况:伴随病毒有3个步骤来感染文件:

  1. 搜索
  2. 重命名目标文件
  3. 复制自己
  4. 我的问题与病毒无关!在第3阶段,当病毒复制时,它会复制其当前状态。例如:

    mov di,OFFSET REAL_NAME
    
    REAL_NAME db 13 dup (?)
    

    将在新副本中修改REAL_NAME。 我有类似的情况。我需要创建一个伴侣软件(而不是病毒),我想知道我是否可以在C中做同样的事情。我真的不会在asm中编码。 我的问题是:在C中是否有任何方法可以复制asm中的可执行文件的当前状态,这样我就可以在每个新副本中修改常量变量?

    我想创建一个突变可执行文件:

    int fncA(){
        ...
        return 0;
    }
    int fncB(){
        ...
        return 0;
    }
    int a;
    int main(){
        if(a==0) fncA();
        if(a==1) fncB():
    }
    

    我怎样才能做到这一点?在第一次运行中考虑a = 0。 fncA()将设置a = 1并将进程复制到可执行文件E2中。当你运行E2时,a将等于1而不是0.这可以在asm中完成,但我正在寻找C中的解决方案。

0 个答案:

没有答案