初识UPX加壳

作者: 六亲不认的步伐 | 来源:发表于2020-05-19 17:07 被阅读0次

    加壳


    全称: 可执行程序资源压缩,对EXE,DLL里的资源进行压缩
    特点: 压缩后的程序可以直接运行(实时),这是与传统意义上压缩的区别,例如zip压缩,rar压缩,tar.gz压缩等。
    加壳后的程序 : 它们附加在原程序上通过加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。
    功能

    • 从安全角度讲 防止代码可以进行反汇编,查看源代码对软件进行分析 。
    • 从传输角度讲 因为加壳具有压缩功能,可以有利于文件在网络上传输 。
      压缩壳生动理解
      分类:
    1. 压缩壳 :减小软件体积大小
    2. 加密壳 :
    • 单纯保护程序
    • 提供注册机制
    • 使用次数
    • 时间限制等。

    加壳算法举例

    • ASPacK
    • UPX
    • PECompact
    • ASProtect

    恶意利用


    正是因为加壳的特点:它与压缩不同的点在于一个需要进行读写硬盘,加壳直接进入内存运行,所以就成为运行木马的封装工具,有利于逃避被查杀病毒发现。

    UPX加壳


    底层原理:参考文章 i春秋帖子: UPX源码分析——加壳篇
    思路:就是通过对原来的文件信息,通过压缩替换的思想,在进行压缩后,可以将解压的方法y = f(ξ),放置在最开始的位置,可以能够通过读取最开始位置壳的压缩方法,来进行脱壳(解压)
    如下图所示,图片来源于:吾爱破解

    UPX加壳前信息示意图
    1. 根据图中,可以理解原来文件的原始信息内容ξ是7 8 9。
    2. 通过UPX算法f将其进行加壳压缩,变为压缩信息y,其内容2 3 4
    3. 由于加壳的特点是程序能够自己在内存中实时运行,所以在前面需要添加说明f的实现方法。
      所以整个信息内容由原来的ξ+other_info变为了f+y+other_info


      UPX加壳示意图

    参考资料

    1. i春秋帖子: UPX源码分析——加壳篇
    2. 吾爱破解: 小Z以UPX为例,讲解什么是壳,什么是压缩壳?

    相关文章

      网友评论

        本文标题:初识UPX加壳

        本文链接:https://www.haomeiwen.com/subject/rtpbohtx.html