exe文件加壳测试

    如果有软件的源码,在源码内可以随心所欲创造多种方式来保护或者说限制软件使用者的使用权限,为软件开发者谋取更多的利益;如果没有源码,一个可行的方案是寻找第三方软件工具为目标软件生成一个“壳”,来达到预期目标。

    我所关心的“壳”有三个基本要素:

    1.要有运行时间或者使用期限的约束,如运行多少小时后停止服务,或者运行到某一天停止服务;这点对我来说是最重要的

    2.软件只能在一台物理机器上运行,通过各种常见方法移植到另一台物理机器上,确保不能使用

    3.如有可能,尽量能保护内部程序不泄露,能够阻止常见的反编译等逆向工程的破解

    这3点总结起来,就是一个“软件奸商”心里所想......

    另外补充一点,软件工具最好是免费的


有博友总结了几款加壳软件工具如下,我只尝试了其中之二

代码保护(一) 几款加壳工具    

https://blog.csdn.net/gcoder_/article/details/80875306

如何封装EXE安装程序

https://jingyan.baidu.com/article/36d6ed1f50ecfc1bcf4883aa.html


一、 inno setup

    功能简介:inno Setup用Delphi写成,其官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。

    目录简介:

{app}

应用程序目录,这是用户在安装向导的选择安装目录页里面所选择的。

例如:如果你使用了 {app}\MYPROG.EXE 作为一项并且用户选择了“C:\MYPROG”作为应用程序的目录,那么安装程序就会将它转换成“C:\MYPROG\MYPROG.EXE”。

{win}

系统的 Windows 目录。例如:如果你使用了 {win}\MYPROG.INI 作为一项并且系统的 Windows 目录是“C:\WINDOWS”,那么安装程序就会将它转换成“C:\WINDOWS\MYPROG.INI”。

{sys}

系统的 Windows 系统(System)目录(在 Windows NT/2000 下是 System32)。例如:如果你使用了 {sys}\ CTL3D32.DLL 作为一项并且系统的 Windows 系统目录是“C:\WINDOWS\SYSTEM”,那么安装程序就会将它转换成“C:\ WINDOWS\SYSTEM\CTL3D32.DLL”。

{src}

这个文件夹指向安装程序所在的位置。

例如:如果你使用了 {src}\MYPROG.EXE 作为一项并且用户是从“S:\ ”安装的,那么安装程序就会将它转换成“S:\MYPROG.EXE”。

{sd}

系统驱动器,它是指 Windows 被安装到的那个驱动器,典型的是“C:”,对于 Windows NT/2000,这个常量同系统的环境变量“SystemDrive”是等效的。

{pf}

程序文件夹(Program Files),这个路径是系统的 Program Files 目录,典型的是“C:\Program Files”。

{cf}

公共文件夹(Common Files),这个路径是系统的 Common Files 文件夹,典型的是“C:\Program Files\Common Files”。

{tmp}

临时目录,这个目录并不是用户的 TEMP 环境变量指向的目录,而是安装程序在启动时在用户的临时目录下建立的一个子目录,在安装程序退出时所有的文件和子目录将会被删除。对于在 [Run] 段里面要被执行且在安装以后又不需要的程序文件来说这个功能是非常有用的。

{fonts}

字体目录,在 Windows 95/NT 4+ 下有一个专门为字体设立的目录(通常这个目录在 Windows 目录下且被命名为“FONTS”),这个常量就指向这个目录。对于 Windows NT 3.51,这个常量是和 {sys} 等效的,因为当时还没有字体目录。

{dao}

DAO 目录,当安装程序运行在 Windows 95/NT 4+ 上时,它被等效为 {cf}\Microsoft Shared\DAO,当运行于 Windows NT 3.51 时,它被等效为 {win}\MSAPPS\DAO。

    inno setup官网的下载地址都在国外,普通版无法下载,unicode版本能够下载。

    英文原版和百度经验里面的汉化版基本上完全一致,可以按照百度经验里面的示例使用inno setup;在此不做赘述。

    1.inno setup原版和汉化版的功能完全一致;inno setup只有一个加密功能是我需要的;而奸商三要素没有一个能满足。简单的说,该软件就是在目标软件外面加了个简单的壳(适用于windows环境),就像你在windows下安装某软件一样,有几个基本步骤。inno setup就是帮你完成了这些基本步骤而已

    2.inno setup可以帮你显示许可文件、安装前显示信息、安装后显示信息、安装路径默认选择、安装软件名称、自动将目标软件拷贝到安装路径下和生成unistall的exe软件等功能

二、DRMsoft  EncryptEXE

    百度搜索encryptexe软件,其为DRMsoft公司研发的;该公司针对各种常见的办公和生活软件进行了加密工具的开发,如exe加密、office套件加密、文件夹加密、视频加密等。

    但是,官网下载的软件除试用版外,都是收费的;需要自行查找破解版的encrypt.exe

    看下官网的基本介绍(V9.0):

    支持 2000, 2003, XP, Vista, WIN7, Win8, 32-bit and 64-bit Windows 操作系统; 
加密EXE文件并可以一机一码授权分发,用户必须得到您的授权才可以运行,您可以为用户创建开启密码,开启密码与用户的电脑硬件绑定,用户无法传播开启密码和文件;加密后的文件可以提供下载、刻盘或通过U盘等分发;

    V9.0版重要更新:
1、支持Windows8 32位和64位操作系统;
2、新增加密后的文件绑定用户移动设备功能,比如U盘、移动硬盘、手机、SD存储卡等,远程自动绑定,用户使用您的加密文件时插入绑定的移动设备即可,您的用户换系统换硬件无需再授权,极大的方便了用户和商家,您再也不用发愁您的用户总是更换系统更换硬件了,直接将用户的移动设备当作硬件加密锁。
3、加密后的文件增加了绑定用户显卡功能,用户机器码格式变为: 系统BIOS-硬盘-显卡-网卡,多硬件识别可以让您辨识一些用户到底是更换了电脑还是更换了某个硬件,或者更换了系统;
4、增加了“试用”和“预览”功能,您可以设置加密后的文件用户可以免费试用几次或几天,也可以设置用户可以预览多少秒;
6、可以直接调用网页�*崾居铮梢运媸毕蛴没Ч�*新提示内容);
7、增加了是否提示剩余开启次数和日期的开关;

V8.0版重要升级:
1、增加了超大文件支持模式,可以支持1G以上的视频高速稳定播放;
2、文件编号可以显示在加密后的文件中,方便商家区分不同文件类别;
3、增加了试用文件制作功能,您可以为用户制作试用文件,并可以控制文件的打开次数和有效期,无需开启密码;
4、专业版增加了导出注册机功能,您可以在任何电脑为用户算开启密码;
5、授权召回功能,你可以随时令发放给用户的授权密码失效;
6、增加了黑名单机器码,在黑名单中的机器即使有授权密码也无法打开您的文件;
7、授权密码增加了控制文件编号的参数,让你更方便的管理用户能够打开哪些文件和不能打开哪些文件;
8、授权密码增加了导入导出注册文件功能,直接给用户发注册文件,防止用户复制授权密码时丢失字符;
9、增加了一码通功能,同台电脑只需认证一次,并且可以控制运行次数和有效期;
10、8.0版开始增加了加密狗版本,可以在任何电脑插狗使用。

主要特点: 

1,多种加密模式:
    非绑定模式 ---- 加密后的文件不绑定用户电脑,但用户需要一个开启密码才可以打开
    绑定模式 ---- 一机一码授权,加密后的文件不同用户电脑需要不同的开启密码
    无密码模式 ---- 加密后的文件无需要开启密码即可运行,仅对原始文件做加密保护
    一码通模式 ---- 采用相同秘钥和产品编号加密的不同文件,在同台电脑上只需认证一次
2,您可以设置加密后文件的运行次数和有效期;
3,可以设置加密文件运行过程中锁定用户键盘;
4,可以设置加密文件运行中禁用鼠标右键;
5,可以设置用户提示语,在用户打开之前显示给用户;
6,可以禁止拷贝、编辑、打印;
7,禁止虚拟机运行;
8,可以设置加密后的文件只能从命令行打开运行,以便只有你自己的程序可以调用他;
9,可以禁用打印机;
10,可以为加密后的文件设置个性化的图标;
11,可以检测用户电脑是否开启远程桌面服务并终止运行。

更多扩展功能可以实现:
一、在线密码发放,用户可以通过您指定的网站,经过认证后获得执行密码,无须人工参与。
二、可以设置文件在某个时间段有效,或者在某个时间点后失效等等;

操作说明:

一、加密exe文件步骤 :

1、选择待加密的exe可执行文件;
2、指定加密密钥(试用版只能指定为123456), 用加密密钥对文件进行加密,加密后的文件可以一机一码运行,只有知道加密密钥的人才可以创建开启密码;
3、执行加密,会生成一个同名的加密文件,原始文件会备份为bak后缀文件;

加密后的文件运行时需要输入开启密码,开启密码可以通过软件中的“创建开启密码”功能创建。

二、创建开启密码:

1、输入加密时使用的加密密钥;
2、输入用户的机器码,(用户运行加密文件时,弹出的验证框中显示有用户机器码);
3、创建开启密码,将生成的开启密码发给用户就可以了。

    在官网下载V9.0试用版,经测试(测试过程不赘述,中文软件大家一用便知),我需要的3个要素的前两个均满足,并且可以同时开启这两个功能,即在设置一机一码授权模式的同时,可以设置运行次数或有效期;而第3个要素要考drmsoft公司的实力去保证了。把最重要的一步的截图发上来供大家观看,一看便知:

exe文件加壳测试_第1张图片

    首先在加密的菜单处默认选择了绑定模式,即一机一码授权,然后加密,生成加密文件(默认有bak文件,防止原软件丢失或损坏,生成的加密软件和原软件文件名和扩展名完全相同,并且在相同路径下;该功能的截图没有上传);然后再创建开启密码菜单处进行设置(如上图)。加密密钥需要购买的,试用版用的是123456,凑合用;指定用户电脑的机器码是,你将你的加密软件提供给客户使用,客户电脑打开软件时,会自动识别机器码(应该是通过加密菜单内勾选的主板、显卡、网卡、硬盘等综合信息生成的)和编号,让客户把机器码发给你(最好也把编号发过来,以后出现问题可以将该编号设置为禁止访问),将机器码输入到对应的输入框,设置开启密码次数和失效期控制,这两个限制条件是哪个先成立,立刻组织程序运行(经测试,截止日期指的是,在这个日期就已经失效,而不是在当天还可以使用);点击创建密码,会生成响应的密码串,发给客户,客户电脑端输入该串密码,会提示剩余次数,如下图;然后显示还可以运行的时间,如剩余0天(该图未上传);如果设置了每次打开允许运行的时间数,还会在时间截止时关闭软件。

exe文件加壳测试_第2张图片

    网络上有encrypt的破解版,并没有做测试。在未做官网试用版软件测试之前,我的想法是下载破解版去做测试,但做了试用版的功能测试后,我不想尝试破解版了。因为试用版不是一般意义上的试用版,有30天的有效期这种恶人的设定,只是加密密钥过于简单;那么破解版的应该是从加密密钥入手,得到了某些密钥,供大家免费试用的。从安全角度来说,这些密钥和123456都已经被某些人知道了,而最可能利用这些搞事情的就是它们了,而破解版很可能是从同一个渠道长身的,所以试用版和破解版在安全性上没太大区别了。另外,加密后的软件一般客户也没法确定是encrypt加密的;如果客户知道的话,那么你选择试用版还是破解版,一样会被客户解开。所以,如果软件比较重要,并且资金允许的话,就支持下drmsoft;反之,用试用版的足够应付一般应用需求了。

你可能感兴趣的:(exe文件加壳测试)