壳——专用加密软件

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

  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就会根据代码执行流程判断最可能是结束地址的地址。

VMProtect下载地址(来源52破解):https://www.52pojie.cn/thread-862161-1-1.html

猜你喜欢

转载自blog.csdn.net/Hotspurs/article/details/89153155