WPS字处理的密码就使用了半字节交换后取反来保存密码.
当然这样的方法2次就解密了.但它必然可以阻止机器看,虽然阻止不了人脑...
但它的优点是解码程序精简,快速.故类似应用很多.
本例程包是在防止篡改版的基础上继续加大难度,可惜仍属于中级版水平~~~
;------------------------------------------------------------;
;命令跳转表
;跳入地址为表地址高低8位交换后取反(主要让反汇编软件找不到入口)
;------------------------------------------------------------;
COMMANDJUMPTAB: DW (((LOW COMMAND0) * 256) + (HIGH COMMAND0)) XOR 0FFFFH;命令0 DB 0D5H;作假为3个字节(随意造假1个数据,以下类同,最好别造90H,12H,02H) DW (((LOW COMMAND1) * 256) + (HIGH COMMAND1)) XOR 0FFFFH;命令1 DB 034H;作假为3个字节 DW (((LOW COMMAND2) * 256) + (HIGH COMMAND2)) XOR 0FFFFH;命令2 DB 056H;作假为3个字节 DW (((LOW COMMAND3) * 256) + (HIGH COMMAND3)) XOR 0FFFFH;命令3 DB 078H;作假为3个字节 DW (((LOW COMMAND4) * 256) + (HIGH COMMAND4)) XOR 0FFFFH;命令4 DB 09AH;作假为3个字节 DW (((LOW COMMAND5) * 256) + (HIGH COMMAND5)) XOR 0FFFFH;命令5 DB 0BCH;作假为3个字节 DW (((LOW COMMAND6) * 256) + (HIGH COMMAND6)) XOR 0FFFFH;命令6 DB 0CDH;作假为3个字节 DW (((LOW COMMAND7) * 256) + (HIGH COMMAND7)) XOR 0FFFFH;命令7 DB 0EFH;藏入数据