installshield 6/7 安装文件 setup.inx 破解
本帖最后由 HonDmOon 于 2015-10-13 20:57 编辑installshield 6/7 相对于以前的版本已经对源码进行了加密
从bbs.pediy.com/showthread.php?threadid=22795 看到的解密教程
机器码对照
linux.programdevelop.com/726500
并附上自己写的小例子:
//datIn :数据
//location:数据在inx中的偏移地址
inx文件是脚本文件,机器码
比如真码 为 0D 00 偏移地址为 0FB3h0FB4h
加密后为 5D DF偏移地址为 0FB3h0FB4h
//解密一个字节
unsigned charDecodeByte(unsigned char datIn,unsigned int location)
{
unsigned char result;
unsigned char temp1,temp2;
temp1 = datIn ^ 0xF1;
temp2 = (unsigned char)((temp1>>2) | (temp1<<6));
result = temp2 - (unsigned char)(location % 71 );
return result;
}
//加密一个字节
unsigned charEncodeByte(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对齐】
比如
@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(真码)
@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 ||
(资源来自网络,虚拟机操作不能确保软件的安全性= =)
第一次发帖,可能不规范- -
支持 好东西 谢谢分享,好久没搞这个了,以前试过低版本的直接OD跳了安装序号
页:
[1]