壳 专用加密软件

壳是最早出现的一种专用加密软件的技术。主要分为压缩壳和加密壳。

  1. 壳的装载过程
    <1>获取壳自己所需要的API地址
    <2>解压或解密原程序的各个区块
    <3>进行必要的重定位
    <4>跳转到程序的原入口点(OEP)

  2. 压缩引擎
    <1> aPLib :适合压缩小文件(低于64k)
    http://www.ibsensoftware.com
    <2> JCALG1:适合压缩大文件
    http://www.bitsum.com/other
    <3> LZMA:7z格式默认压缩算法
    https://www.7-zip.org/

  3. 常见的压缩壳
    <1>UPX
    稳定,兼容,开源
    官方主页:http://upx.github.io/
    <2>ASPack
    Win32可执行文件压缩软件,可压缩EXE、DLL、OCX
    官方主页:https://www.aspack.com
    <3>PECompact
    支持使用插件,提供多种压缩项目选择
    官方主页:https://bitsum.com/portfolio/pecompact/

  4. 常见的加密壳
    <1>ASProtect
    非常强大的Win32保护工具,开创了壳的新时代。拥有压缩、加密、反跟踪代码、CRC校验和花指令等保护措施,使用Blowfish、Twofish、TEA等加密算法,以RSA1024为注册密钥生成器,通过API钩子与加壳的程序通信。同时提供SDK,实现加密程序的内外结合。
    ASProtect在共享软件中相当普遍,研究的人也比较多,所以目前,其各类保护机制已被研究得很透了。
    <2>Armadillo
    又称“穿山甲”,可以为程序加种种限制(次数,时间,NAG窗口等)。
    在加壳时将需要保护的代码里的所有跳转指令换为INT3指令,机器码CC。Armadillo是双进程运行,若子程序遇到CC异常,父程序会截获这个INT3异常,计算出跳转指令得目标地址并将其反馈给子进程,使子进程继续运行。这种保护称为“CC保护”。
    <3>EXECryptor
    可以为程序添加NAG窗口和其他限制,但兼容性不好。
    <4>Themida
    使用虚拟机保护技术,缺点是加密后程序体积较大。

  5. 虚拟机保护软件
    原理:将一系列指令解释成bytecode(字节码),放入一个解释引擎中执行,从而对软件保护。
    虚拟机引擎主要有编译器、解释器、虚拟CPU环境(VPU Context)组成,并搭配一个或多个指令系统。虚拟机在运行时,先根据自定义的指令系统把已知的x86指令解释成字节码并放入PE文件中,然后将原始代码删除,改为类似如下的代码,放入虚拟机执行循环。

		push bytecode
		jmp  VstartVM

调试者跟踪进入虚拟机后很难理解原指令,除非对虚拟机引擎进行深入分析。
虚拟机已成为目前最流行得保护趋势。
但经过VM处理后,程序执行速率大大降低。使用者一般只需要把较为重要的代码用VM保护起来。如果是一些对速度要求比较高的代码,不适合用VM来保护。

VMProtect
VMProtect是一款纯虚拟机保护软件,是当今最强大的虚拟机保护软件之一。
将制定代码进行变形和虚拟化处理后,能很好地隐藏代码算法,防止算法被逆向。
VMProtect可以精确地保护指定地址的代码。每填入一个保护的地址,VMProtect就会根据代码执行流程判断最可能是结束地址的地址。

参考资料:加密与解密(第四版)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
域之天YT88外加密工具。 [选项说明] 1、设定定时器:加密后的程序运行时将会以设定的时间间隔检查是否存在对应的加密锁,如果不存在,将会终止程序的运行。 2、反调试:用于防止被黑客非法调试程序 3、反CRC:当被加密的程序有自我检验,加密运行时会将报文件被修改的错误,这时可以选中这项,如果程序是PB,VFP,易语言编写的,请选中这项 4、是否压缩:对被加密的文件进行压缩,如果选中了虚拟机或要加密的文件较大时,不要选中这项,因为这会减慢程序启动时间。 5、使用增强算法:选中这项后,可以有效地防止被打狗棒等模拟或防真 6、使用虚拟机:选中这项将大大增强安全性,但同时程序的启动速度将减慢 7、加密比例:将要加密的文件较大时,可以适当地减少加密比例,以加快程序的启动程序 8、一,二:不同的载体,如果程序加密后不能运行,可以试一下换成不同的 9、加密方式:如果程序加密后不能运行,可以试一下选择加密方式二,如果是NET程序,可以用加密方式三 10、删除输入表:程序运行后删除输入表,提高安全性,如果程序加密后不能运行,可以将这个选项去掉 11、删除重定位表:程序运行后删除重定位表,一般用于DLL,提高安全性,如果程序加密后不能运行,可以将这个选项去掉 12、时间限制:用于限制用户使用加密程序的时间,当运行的时间到了,程序将会再不能运行。 13、次数限制:用于限制用户使用加密程序的次数,当运行的次数到了,程序将会再不能运行。 14、自定义提示信息,用于自定义找不到加密锁时显示给用户的信息,如果不需要提示信息,可以将提示信息设置为空。 15、双重增强算法,使用两组增强算法密钥对程序进行加密,选中会大大地提高安全性。 [加密方法] 1、首先要设置锁的普通算法,设置算法的过程可以参考我们的相关的演示 2、选择要加密的文件 3、选择要生成的新文件,生成的新文件不要与原要加密的文件名相同 4、点击保护,在弹出的框中选择或添加一条自定义的密钥 5、点确定后,就完成加密了 6、加密完毕后,点写入加密锁,在弹出的框中选择相同的密钥,点写入加密锁,完成后,就可以将锁及加密后的程序给用户了。 7、以后要派发锁,首先要设置锁的算法,接着使用该工具写入加密锁,将相应的密钥写入到锁中就可以了,不需要重新加密。 [注意事项] 1、写入加密锁后,加密锁的读密码会被更改为加密密钥。 2、如果选择了时间或次数限制,读密码及写密码都会被更改为加密密钥,这时一定要注意,不要随意删除密钥,否则不能恢复,将会无法再写锁。 3、如果既有源代码加密,同时又进行外加密,且在源代码中有定时检查加密锁的功能,请在进行加时,不要选中定时器的功能。 [附加说明] 1、加密时不设置锁的算法,也可以进行加密,但安全性会大大降低 2、如果设置了锁的算法,一定要记住该密钥,在派发锁时,一定要设置相同的算法密钥后,并写入加密密钥后,才可以派发给用户

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值