本帖最后由 HonDmOon 于 2015-10-13 20:57 编辑
installshield 6/7 相对于以前的版本已经对源码进行了加密
从bbs.pediy.com/showthread.php?threadid=22795 看到的解密教程
机器码对照
linux.programdevelop.com/726500
并附上自己写的小例子:
[Asm] 纯文本查看 复制代码 //datIn :数据
//location:数据在inx中的偏移地址
inx文件是脚本文件,机器码
比如真码 为 0D 00 偏移地址为 0FB3h 0FB4h
加密后为 5D DF 偏移地址为 0FB3h 0FB4h
[C] 纯文本查看 复制代码 //解密一个字节
unsigned char DecodeByte(unsigned char datIn,unsigned int location)
{
unsigned char result;
unsigned char temp1,temp2;
temp1 = datIn ^ 0xF1;
[attach]534078[/attach]
temp2 = (unsigned char)((temp1>>2) | (temp1<<6));
result = temp2 - (unsigned char)(location % 71 );
return result;
}
//加密一个字节
unsigned char EncodeByte(unsigned char datIn,unsigned int location)
{
unsigned char result;
unsigned char temp1,temp2;
temp1 = datIn + (unsigned char)(location % 71 );
temp2 = (unsigned char )((temp1>>6) | (temp1<<2));
result = temp2 ^ 0xF1;
return result;
}
利用附件中的【适用于6 7】将inx文件反编译一下,就会生成源码,同时会产生一个myTmp.inx 解密后的版本(SID原版可以打开)
这个可以用附件中【原版】进行打开,可以对比一下
inx文件hack主要是对【if】条件进行爆破,修改的是【if】条件的上一条语句
即 000D >>> 000E 或者 000E>>>000D
【if endif对齐】
比如
[Asm] 纯文本查看 复制代码 @0000862A:000D local_number13 = (local_number13 = 0);
@00008639:0004 if(local_number13) then // ref index: 1
@00008645:0006 local_number7 = 1;
@00008651:0006 global_number45 = 1;
@0000865D:0005 endif;
将偏移地址 指令 0000862A:000D修改为 0000862A:000E 就可以跳过【if】
当然也可以修改数据(也是加密的),常量 303 >> 2F 01(真码)
[Asm] 纯文本查看 复制代码 @0000D0D8:000D local_number6 = (local_number2 = 303);
@0000D0E7:0004 if(local_number6) then // ref index: 3
@0000D150:0007 endif;
原理应该说清楚了
实际操作是安装一遍软件,记录关键词,在源码中搜索具体位置
修改机器码,installshield 6/7需要加密机器码,然后再修改
一次尝试不可以可以多试几次
16进制编辑软件推荐使用论坛中的 010 Editor软件
Additional: the inxscript and its corresponding machine code Machine code | Code | Machine code | Code | Machine code | Code | Machine code | Code | 0004 | if | 0005 | goto | 0006 | = | 0007 | + | 0008 | % | 0009 | < | 000a | > | 000b | <= | 000c | > = | 000d | == | 000e | ! = | 000f | - | 0010 | * | 0011 | / | 0012 | & | 0013 | | | 0014 | ^ | 0016 | << | 0017 | > | 0018 | | | |
(资源来自网络,虚拟机操作不能确保软件的安全性= =)
第一次发帖,可能不规范- -
|