欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

WISE技巧篇--防止简单打包和修改文件名称的方法

来源:转载 作者:佚名 时间:2009-01-04 TAG: 我要投稿

最近有些所谓技术狂热者,用最简单的打包自解压方式对汉化人进行处理,说实话,这倒是让真正的Repacker者蒙羞--真的是打劫了,一点技术都没有的打劫。这些脑袋狂热者相信大家都应该知道了--5iCrack.com……

好了,对于真正解包者,要防起来还是有难度的,但是对这种简单的无技术的自解压打包者,还是要防一防,让他们没这么容易搞搞震!

以下内容曾在Wise901下测试成功过,目前已经在902上正式采用了:


首先先设定一个变量的默认值,然后在OLDNAME中设定你要强制不能改变的文件名称,以后如果升级或改模板,只需改动这里即可以了。接下来的OLDNAMELEN是计算所指定的文件名称的长度,具体的函数使用如下:


这里使用的是Len()函数,所以操作上要使用“求表达式值”……

接着让Wise读取安装程序的名称,赋值到FILENAME01,具体脚本为:


由于既包括了程序的名称,也包括了路径,为了准确判断,还需做进一步的操作:


这里使用的上Right$(字串1,字串2)函数,表示根据字串2的数值,读取字串1从右侧计算的相应字符。由于是字串值,因此变量要进行转换,首先要在两侧加上英文的%符号,然后两侧再加上英文的引号"符号,这次才能转变为对应的字串:假设FILENAME01读取值为C:\HA_RescoExplorer_535_GB_QIAN_Font_060216.EXE,那么OLDNAMELEN已经计算长度为44,因此从右侧读取,读取为HA_RescoExplorer_535_GB_QIAN_Font_060216.EXE,这个读取值赋值给MYNAME,作为后续判断使用。

现在开始判断:

这里使用了一个Wise内置函数INST,这个函数就是自动读取出编译后程序运行的环境,跟之前的FILENAME01有异曲同工之妙,但他不带文件名称,只是单纯的路径,因此推荐优先使用。当然,用FILENAME01也没问题,还可以精简代码。
这里还用到一个Wise内置的函数TEMP,它是自动根据Win系统情况读出当前的临时路径名称,且不用你考虑是Win9x还是NT平台,或者是用什么用户名登录的。因此用这个和INST对比,看看INST是否包含TEMP的内容,如果包含,说明软件是在临时文件夹中执行,这样可视为判断汉化作品被打包进行自解压执行,或者在压缩包中执行,因此设置TEMPCHECK为1,作为以后出错对话框的激活值。同时将出错信息和提示文字赋值给指定的变量,作为出错对话框使用。

这里使用Elseif函数,表示这个判断是延续的:先判断是否被打包,如果打包则不再判断文件名称;如果没打包,再判断文件名称是否修改。
这里用前面函数读取出真实运行时的文件名称变量MYNAME,跟指定的名称变量OLDNAME进行等于判断,注意要选择大小忽略,如果不等于,自然说明文件名称被修改了,然后设置激活变量TEMPCHECK为1,同时指定相应的出错信息。
这里,大家是否留意到有被注释的一句脚本,这也是一种判断方式,是我早期使用的,但是在Win9x测试下发现判断失效,原因不明,因此才改用了现在的方式。如果你确定不打算兼容Win9x用户,则可使用这种方式,这种方式就不用前面那些OLDNAME变量以及要从右侧读取那么麻烦的计算了。

好了,判断完了,该进行出错处理了,我在所有的对话框前面增加了一个出错对话框,激活方式如下:

如果TEMPCHECK不等于1,说明没有被打包或改名称,这个出错对话框被跳过,否则首先跳出,且同样只有终止按钮,不给用户其他选择:

在这个出错对话框用上之前定制的出错提示以对应不同的出错状况,同时当然要理直气壮地表达自己的态度啦……


Sense
交流一下WISE的心得。
获取安装文件名有更好的方法。首先获取安装执行程序路径名称到变量MYNAME,然后对MYNAME进行“解析字符串”操作:源值“%MYNAME%”,式样“\”,目标变量1为空,目标变量2“MYNAME”,操作“分离在式样中最后出现的值”。这样,只需两步就可以得到安装文件名。“解析字符串”这个功能很好用,可以代替很多需要几条表达式才能搞定的操作。
另外,在表达式中,变量不需要加%号。例如,Right$("%FILENAME01%", "%OLDNAMELEN%") 可以简单地写成 Right$(FILENAME01, OLDNAMELEN)。
【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载