我的VC花指令方法

在VC加入花指令,我在几年前就尝试使用了,一点心得,大家交流:
-----------------------------------------------------------


    1、首先,定义各种花指令的宏,可以单独放到一个.h文件中,也可以直接在程序的首部定义,我建议放到.h文件中。
       注意,所有转移标号和call的地址用相对地址符号$表示,以楼上的问题为例,格式如下:

#define _WJQ_USED_FLOWER  //此开关控制编译器是否使用花指令
//
//花指令定义(定义多少种,自己需要而定)
#ifndef _WJQ_USED_FLOWER
  #define __FLOWER_XX0  _asm nop
#else
#define __FLOWER_XX0 _asm \
{\
  _asm jz  $+5  /*本指令2 bytes len*/\
  _asm jnz $+3  /*本指令2 bytes len*/\
  _asm _emit 0e8h /*本指令1 bytes len*/\
  /*这里是要转移到的地址*/\
}
#endif

     2、根据上述格式,编辑好各种花指令,例如我编辑的10种为:
       __FLOWER_XX0
       __FLOWER_XX1
       __FLOWER_XX2
       .
       .
       .
      __FLOWER_XX9

     3、在VC中的使用方法:
     int  WJQ_Function(char* pStr,DWORD nIndex)
     {
     __FLOWER_XX0
          char buffer[200];
     __FLOWER_XX9
           /*
            buffer的赋值部分(略)
           */
     __FLOWER_XX7
          for(long i=0; i<100; i++)
         {
     __FLOWER_XX2
            pStr[i] = buffer[i];
     __FLOWER_XX5
         }
     __FLOWER_XX4
           return TRUE;
     __FLOWER_XX6
     }

    以上程序中,仅仅通过是否定义了_WJQ_USED_FLOWER来决定是否插入花指令。将 #define _WJQ_USED_FLOWER 注释掉,就可以无花指令调试程序,调试成功后,加入宏定义即可加入花指令。


http://bbs.pediy.com/showthread.php?t=12285


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值