精华内容
下载资源
问答
  • upx加壳原理

    千次阅读 2016-06-22 17:24:43
    upx的功能有两种描述。一种叫做给程序加壳,另一种...upx的工作原理其实是这样的:首先将程序压缩。所谓的压缩包括两方面,一方面在程序的开头或者其他合适的 地方 插入一段代码,另一方面是将程序的其他地方做压缩

    转自:http://blog.csdn.net/zacklin/article/details/7419001

    upx的功能有两种描述。一种叫做给程序加壳,另一种叫压缩程序。其实这两种表述都是正确的,只是从不同的
    角度 对upx的描述。 
    upx的工作原理其实是这样的:首先将程序压缩。所谓的压缩包括两方面,一方面在程序的开头或者其他合适的
    地方 插入一段代码,另一方面是将程序的其他地方做压缩。压缩也可以叫做加密,因为压缩后的程序比较难看
    懂,主要是 和原来的代码有很大的不同。最大的表现也就是他的主要作用就是程序本身变小了。变小之后的程
    序在传输方面有很 大的优势。其次就是在程序执行时,实时的对程序解压缩。解压缩功能是在第一步时插入的
    代码完成的功能。联起来 就是:upx可以完成代码的压缩和实时解压执行。且不会影响程序的执行效率。 
    upx和普通的压缩,解压不同点就算在于upx是实时解压缩的。实时解压的原理可以使用一下图形表示: 
    1==>2==>3==>4==>5==>6  
    假设1是upx插入的代码,2,3,4是压缩后的代码。5,6是随便的什么东西。  
    程序从1开始执行。而1的功能是将2,3,4解压缩为7,8,9。7,8,9就是2,3,4在压缩之前的形式。  
    1==>7==>8==>9==>5==>6  
    
    连起来就是:  
    最初代码的形式就应该是:7==>8==>9==>5==>6 
    用upx压缩之后形式为:1==>2==>3==>4==>5==>6 
    执行时的形式变为:1==>7==>8==>9==>5==>6  
    
    类似的技术还有很多。这样的技术较多的应用于:木马和病毒躲避杀毒软件时,发布的程序防止被反编译或
    破解时。  upx是一种典型的加壳程序或者压缩程序。因此已经有非常成熟的去壳程序或者解压缩程序。
    同时,很多的杀毒软件 也可以识别出加有upx壳的病毒和木马。而一些软件生产场上为了防止被破解所加的
    壳也同时被轻易的破解。在这样 的情况下很多人想出了产生自己的加壳程序的想法。应此很多人都通过改
    编一些成熟的加壳程序来产生自己的加壳程 序。  其实改编upx也是很简单的。因为upx的源代码是公开的
    ,所以可以下载它的源代码来瞧瞧。upx可以压缩很多种类型 的可执行文件。因此如果自己只是想要压缩exe
    程序,则只需要阅读与压缩exe文件相关的内容。这些代码是很少的。  
    
     改写upx一般需要注意一下几点: 
    1、保证修改后的加壳程序不会产生upx产生的特征码。有很多软件可以通过这些特征码识别出程序是经过upx
    加壳的。 
    2、保证加壳之后,程序仍然可以顺利执行。 
    3、在一定程度上保证效率不会下降太多。

    相关链接:

    【新手教程】防査壳、防误报——修改加UPX壳的应用程序

    http://tieba.baidu.com/p/4033827811

    关于加壳原理

    http://blog.sina.com.cn/s/blog_52531e650100lqm3.html


    展开全文
  • UPX加壳原理.rar

    2020-04-05 15:45:05
    UPX加壳原理.rar UPX加壳原理.rar UPX加壳原理.rar UPX加壳原理.rar UPX加壳原理.rar UPX加壳原理.rar
  • 易语言源码易语言UPX加壳原理源码.rar
  • 易语言UPX加壳原理源码
  • Reverse | 使用UPX对软件进行加壳

    千次阅读 2019-07-25 11:41:46
    (1)加壳 加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。 加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态...

    1、相关知识:

    (1)加壳

          加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。

          加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态分析,以达到保护源码的目的。这种技术也常用来保护软件版权,防止被软件破解。

    (2)加壳软件

          加壳软件可分为两类:一类是压缩,一类是保护。压缩的目的是减少程序体积,如ASPack、UPX、PECompact等。保护是为了防止程序被跟踪和调 试,如ASProtect、幻影。壳的存在会让我们找不到程序的真实入口点,从而不能正确的分析反汇编程序,也就对程序起到了一定的保护作用。

    (3)加壳原理

          加壳是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。它们附加在原程序上通过Windows加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。

          加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东西。软件一下子就打开了,只有你机 器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当你执行这 个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。所以,这些的工作只是在内存中运行的,是不可以了解具体是怎么样在内 存中运行的。通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时候程序会 过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程序被人跟踪调试,防止算法程序不想被别人静态分析。加密代码和数据,保护你的程序数据的完整 性。不被修改或者窥视你程序的内幕。

          加“壳”虽然增加了CPU负担,但是减少了硬盘读写时间,实际应用时加“壳”以后程序运行速度更快(当然有的加“壳”以后会变慢,那是选择的加“壳”工具问题)。

          一般软件都加“壳”这样不但可以保护自己的软件不被破解、修改还可以增加运行时启动速度。

          加“壳”不等于木马,我们平时的绝大多数软件都加了自己的专用“壳”。

          RAR和ZIP都是压缩软件,不是加“壳”工具,他们解压时是需要进行磁盘读写,“壳”的解压缩是直接在内存中进行的。用RAR或者ZIP压缩一个病毒你试试,解压缩时杀毒软件肯定会发现。而用加“壳”手段封装木马,能发现的杀毒软件就少得多。

          木马加壳的原理很简单,在黑客营中提供的多数木马中,很多都是经过处理的,而这些处理就是所谓的加壳。当一个EXE的程序生成好后,很轻松的就可以利用诸 如资源工具和反汇编工具对它进行修改,但如果程序员给EXE程序加一个壳的话,那么至少这个加了壳的EXE程序就不是那么好修改了,如果想修改就必须先脱 壳。

    4)UPX简介

          UPX (the Ultimate Packer for eXecutables)是一个著名的压缩壳,主要功能是压缩PE文件(比如exe,dll等文件),有时候也可能被病毒用于免杀。壳upx是一种保护程 序。一般是EXE文件的一种外保护措施,主要用途:

          1、让正规文件被保护起来,不容易被修改和破解。

          2、使文件压缩变小。

          3、保护杀毒软件安装程序,使之不受病毒侵害。

          4、木马,病毒的保护外壳,使之难以为攻破。

          利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才 能解压自己。当加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开 后,以后的就交给真正的程序。

    2、安装步骤:

    下载地址:http://upxshell.sourceforge.net/download.html

    Dowload:UPXShell-3.2.5.2006

    下载后双击exe程序:

    根据引导安装程序,完成安装后打开:

    3、了解UPX功能及界面

    Open  File(打开)按钮功能为打开需要加壳的目标文件。

    在Compress(压缩)标签中有一Go(执行)按钮”,其功能为对打开的目标文件进行压缩,在Go按钮下方有一下拉列表,可选择压缩时的UPX版本,右框显示压缩进度与压缩后文件大小。

     在Options(选项)标签中,可以选择压缩操作的属性,如:创建备份文件、载入后自动压缩、完成后自动退出、压缩完成后测试文件等,在Compression level(压缩级别)中可在更快与更好之间进行选择。

    4、使用UPX对文件进行压缩

    找了一个dll文件复制到桌面,使用UPX打开:

    打开后会跳转到Compress标签,单击GO按钮:

    压缩后,检测文件大小,如果是程序测试是否正常运行。

    如果在压缩过程中报错,说明不支持,换其他软件加壳。

    5、使用PEiD对压缩文件进行探测

    PEiD下载地址:https://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml

    打开PEiD,在文件中打开加壳后的文件,可看到加壳类型:

     

     

    展开全文
  • 软件安全-UPX加壳

    2021-05-02 10:54:56
    原理是将可执行程序按照一定算法进行压缩,达到程序源代码的加密效果,执行时在先脱壳内存中解压缩,还原,再执行原程序部分。从而达到防修改与防反编译的效果,而因为源代码在磁盘中以压缩形式存储,虽然脱壳操作...

    加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
    其原理是将可执行程序按照一定算法进行压缩,达到程序源代码的加密效果,执行时在先脱壳内存中解压缩,还原,再执行原程序部分。从而达到防修改与防反编译的效果,而因为源代码在磁盘中以压缩形式存储,虽然脱壳操作加重了CPU的负担,但减少了磁盘的读写,所以在大多数情况下还能提高程序运行速度;这种技术也常被应用到病毒免杀中,给病毒加壳后,杀毒软件往往很难识别。
    壳也能提供一些保护功能,比如时间限制,使用次数和注册等。

    UPX

    UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过 UPX 压缩过的程序和程序库完全没有功能损失和压缩之前一样可正常地运行,对于支持的大多数格式没有运行时间或内存的不利后果。 UPX 支持许多不同的可执行文件格式 包含 Windows 95/98/ME/NT/2000/XP/CE 程序和动态链接库、DOS 程序、 Linux 可执行文件和核心。
    其主要用途如下:
    UPX是一个著名的压缩壳,主要功能是压缩PE文件(比如exe,dll等文件),有时候也可能被病毒用于免杀.壳upx是一种保护程序。一般是EXE文件的一种外保护措施,主要用途 :
      1、让正规文件被保护起来,不容易被修改和破解。
      2、使文件压缩变小。
      3、保护杀毒软件安装程序,使之不受病毒侵害。
      4、木马,病毒的保护外壳,使之难以为攻破。 仅仅看一个壳upx路径 是不能确定什么的。要仔细看看他相对应的文件,如果是杀毒或者是自己已知的文件那就无伤大雅,要是其他疑似,就要认真对待了。

    PeiD

    PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。主要模块有:
      任务查看模块:可以扫描并查看当前正在运行的所有任务和模块,并可终止其运行;
      多文件扫描模块:可同时扫描多个文档。选择“只显示PE文件”可以过滤非PE文档;选择“递归扫描”可扫描所有文档,包括子目录。
      Hex十六进制查看模块:可以以十六进制快速查看文档。

    使用实验

    使用工具
    UPX加密notepad
    PEiD打开notepad
    可以看到探测壳显示为UPX。

    展开全文
  • 易语言UPX加壳原理源码,UPX加壳原理,取短路径,取控制台程序返回,CreateProcess,CreatePipe,ReadFile,WriteFile,CloseHandle,PeekNamedPipe,GetExitCodeProcess,GetShortPathNameA
  • 实验四:使用UPX加壳与脱壳 报告人姓名:苏煜程 学号:031803108 一、实验目的 了解程序加壳、脱壳原理 掌握PE文件结构 学习利用UPX Shell、LoardPE、IDA等工具完成软件的加、脱壳操作 二、实验题目 UPX加壳:...

    一、实验目的

    • 了解程序加壳、脱壳原理
    • 掌握PE文件结构
    • 学习利用UPX Shell、LoardPE、IDA等工具完成软件的加、脱壳操作

    二、实验题目

    • UPX加壳:对crackme加上UPX壳,用 LordPE 或 PEiD 工具查看加壳前后的变化
    • UPX脱壳:用UPX Unpacker对已加壳的 crackme.exe 程序进行脱壳
    • 手动脱壳:使用ESP定律和Ollydbg工具对crackme.exe进行手工脱壳
    • IDA静态分析:用 IDA 的 F5 反汇编功能查看脱壳前后的程序伪代码,获取运行crackme后屏幕提示的输入口令

    三、实验环境

    • Windows 7系统或以上、连接Internet的主机
    • 可能会用到的软件:upxshell、LordPE、PEiD、upx unpacker、IDA、OllyDBG
    • 手动脱壳实例参考:https://www.52pojie.cn/thread-727090-1-1.html
    • ESP定律学习参考:https://www.52pojie.cn/thread-394116-1-1.html

    四、实验步骤及结果

    4.1 UPX加壳

    首先查看未加壳前的应用程序
    在这里插入图片描述

    现在使用UPX Shell对壳进行加载
    在这里插入图片描述

    检查发现已经加壳成功
    在这里插入图片描述

    4.2 UPX脱壳

    用UPX Unpacker对已加壳的 crackme.exe 程序进行脱壳
    在这里插入图片描述

    在这里插入图片描述

    4.3 手动脱壳

    根据ESP定律先找到PUSHAD下使得ESP变红的内存地址
    在这里插入图片描述

    然后在数据窗口中追踪
    在这里插入图片描述

    然后使用断点 --> 硬件访问 --> Word
    在这里插入图片描述

    然后使用F9直接运行到
    在这里插入图片描述

    然后再F8运行到OEP
    在这里插入图片描述

    然后删除硬件断点
    在这里插入图片描述

    然后使用Ollydbg脱壳工具进行脱壳
    在这里插入图片描述

    在这里插入图片描述

    可以发现dump出来的文件脱壳成功
    在这里插入图片描述

    4.4 IDA静态分析

    使用IDA打开脱壳后的文件可以看到main函数源代码
    在这里插入图片描述

    // write access to const memory has been detected, the output may be wrong!
    int main_0()
    {
      int v0; // ST14_4
      int v1; // edx
      int result; // eax
      int v3; // ST14_4
      int v4; // edx
      unsigned int i; // [esp+50h] [ebp-2Ch]
      char v6; // [esp+54h] [ebp-28h]
      char v7; // [esp+55h] [ebp-27h]
      char v8; // [esp+56h] [ebp-26h]
      char v9; // [esp+57h] [ebp-25h]
      char v10; // [esp+58h] [ebp-24h]
      char v11; // [esp+59h] [ebp-23h]
      char v12; // [esp+5Ah] [ebp-22h]
      char v13; // [esp+5Bh] [ebp-21h]
      char v14; // [esp+5Ch] [ebp-20h]
      char v15; // [esp+5Dh] [ebp-1Fh]
      char v16; // [esp+5Eh] [ebp-1Eh]
      char v17; // [esp+5Fh] [ebp-1Dh]
      int v18; // [esp+60h] [ebp-1Ch]
      int v19; // [esp+64h] [ebp-18h]
      char v20[20]; // [esp+68h] [ebp-14h]
    
      v6 = 'r';
      v7 = 'o';
      v8 = 'i';
      v9 = 's';
      v10 = '2';
      v11 = '0';
      v12 = '1';
      v13 = '4';
      v14 = 'r';
      v15 = 'o';
      v16 = 'i';
      v17 = 's';
      v18 = '\0';
      v19 = '\0';
      printf("password:");
      scanf("%s", v20);
      if ( strlen(v20) == 12 )
      {
        for ( i = 0; i < 0xC && *(&v6 + i) == v20[i]; ++i )
          ;
        if ( i == 12 )
          printf("good job!\nthe key is your input!\n");
        else
          printf("try again!\n");
        if ( --stru_437180._cnt < 0 )
        {
          _filbuf(&stru_437180);
        }
        else
        {
          v3 = (unsigned __int8)*stru_437180._ptr;
          ++stru_437180._ptr;
        }
        if ( --stru_437180._cnt < 0 )
        {
          _filbuf(&stru_437180);
        }
        else
        {
          v4 = (unsigned __int8)*stru_437180._ptr;
          ++stru_437180._ptr;
        }
        result = 0;
      }
      else
      {
        printf("try again!!\n");
        if ( --stru_437180._cnt < 0 )
        {
          _filbuf(&stru_437180);
        }
        else
        {
          v0 = (unsigned __int8)*stru_437180._ptr;
          ++stru_437180._ptr;
        }
        if ( --stru_437180._cnt < 0 )
        {
          _filbuf(&stru_437180);
        }
        else
        {
          v1 = (unsigned __int8)*stru_437180._ptr;
          ++stru_437180._ptr;
        }
        result = 0;
      }
      return result;
    }
    

    程序是在与字符串rois2014rois进行比较,所以密码就是rois2014rois,测试成功
    在这里插入图片描述

    展开全文
  • UPX源码分析——加壳

    千次阅读 2019-09-12 20:27:14
    0x00 前言 UPX作为一个跨平台的著名开源压缩壳,随着Android的兴起,许多开发者和公司将其和其变种应用在.so库的加密防护中。虽然针对UPX及其变种的使用和脱壳都有教程可查,但是至少在中文网络里并没有针对其源码的...
  • 讲述UPX壳的运行原理

    千次阅读 2012-04-01 13:47:38
    加壳软件可分为两类:一类是压缩,一类是保护。压缩的目的是减少程序体积,如ASPack、UPX、PECompact等。保护是为了防止程序被跟踪和调试,如ASProtect、幻影。壳的存在会让我们找不到程序的真实入口点,从而不能...
  • 一、 UPX加壳原理 1. UPX的工作原理 2. UPX实时解压的原理和流程 3. UPX加壳应用的场景 4. 修改UPX源码需要注意以下几点 二、 UPX加壳Android so的方法和步骤 三、 UPX加壳Android so相关问题总结 四、...
  • 下面是我的脱壳。手动脱壳1.ESP定律法查看通用寄存器ESP,数据窗口跟踪。F8单步步入,F4禁止向上跳转2....4.软件脱壳法,此法完美脱壳,win7 x64下测试通过,正常运行,并且区段无upx0,upx15.一步到达oep法
  • 加壳的源代码;著名的UPX程序的源代码,对于学习加壳原理有很大的帮助
  • 详谈PC端软件 - 加壳与脱壳

    千次阅读 2019-08-07 11:26:20
    加壳一般是指保护程序资源的方法,在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,属于软件加密。 脱壳一般是指除掉程序的保护,用来修改程序资源。 壳的概念 软件的壳分为加密壳、压缩壳、...
  • 壳,加壳,脱壳 在自然界中,我想大家对壳这东西应该都不会陌生了,由上述故事,我们也可见一斑。自然界中植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被...
  • 这个例子很简单,但是这就是加壳原理,就是把swf转成字节然后加载。可以拓展一下,把这个swf自己用个算法混掉,然后再把数据加载进来,再写一个解密算法,即可了。 但是同样别人也能只看你的解密算法就能还原回来...
  • 介绍下加壳、脱壳以及如何病毒免杀技术与原理 在自然界中,我想大家对壳这东西应该都不会陌生了,由上述故事,我们也可见一斑。自然界中植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有...
  • 加壳与脱壳理论详解

    2021-05-14 06:19:01
    加壳与脱壳理论详解  在自然界中,我想大家对壳这东西应该都不会陌生了,由上述故事,我们也可见一斑。自然界中植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不...
  • CTF逆向-Upx脱壳攻防世界simple unpack

    千次阅读 2021-04-11 11:08:46
    文章目录前言UPX技术原理应用范围软件使用CTF实战程序查壳UPX脱壳总结 前言 加壳软件分两类: 压缩壳:压缩的目的是减少程序体积,如 ASPack、UPX、PECompact 等; 加密壳:加密是为了防止程序被反编译(反汇编)、...
  • 加壳与脱壳的原理

    万次阅读 2009-04-23 19:14:00
    加壳一般是指保护程序资源的方法. 脱壳一般是指除掉程序的保护,用来修改程序资源. 病毒加壳技术与脱壳杀毒方法 : 壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚。当你想...
  • upx手动脱壳

    2020-10-26 01:23:33
    upx upx是一个开源的工具,可以到github下载upx upx简单的用法 upx src.exe命令将src.exe加壳 upx src.exe -o dst.exe命令将src.exe加壳并另存为dst.exe upx手动脱壳
  • linux c 加壳

    千次阅读 2019-11-20 09:54:45
    现在比较出名的加壳工具还是成名已久的开源老将 – - – UPX,但是有个弊端就是,开源的,解壳工具基本上也是开源的,这样只是让我们自己的软件 加壳比不加壳 只是多了一层遮羞布。 解决这个问题,我有两个方案,一...
  • linux 下 upx 脱壳笔记

    千次阅读 2010-07-19 15:02:19
    linux很少有需要crack的...最近看了看windows的脱壳大致的理解了脱壳的原理,之前没有怎么接触脱壳,通常只是选择没有壳的软件看看。在linux下的壳没有找到几个。只找到了一个upx的壳,在windows下是个弱壳。实际上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 661
精华内容 264
关键字:

upx加壳原理