QQ在线支持
商务支持电话
13906050680
技术支持电话
0592-2651619
首页->局域网监控-> 黑客攻击,逆向分析技术,PE文件,什么是壳,壳的加载过程
  • 摘要:黑客攻击,逆向分析技术,PE文件,什么是壳,壳的加载过程,黑客攻击,逆向分析技术,软件破解教程,私密壳破解,压缩壳破解,加壳软件破解

     

    黑客攻击,逆向分析技术,PE文件,什么是壳,壳的加载过程

    讲到逆向,更多的人都是考虑到既然是逆向那就应该反着来推或者相反,其实则不然,这里我们要讲的是为了更深入的研究windows编写机制,更好的研究他们的安全,谁让微软这么保守虽然曾经流出过windows的部分代码,但是还是有更多的秘密值得我们去深挖,每天都有新的发现,做为逆向分析的第一步,我们首先来学习下什么是pe文件?

    针对pe的认识

    PE是Portable Executable File Format(可移植的执行体)简写,它是目前Windows平台上的主流可执行文件格式。

    Pe的文件格式

    PE("portable executable")文件格式是针对MS windows NT, windows 95 and win32s的可执行二进制代码(DLLs and programs) 。在windows NT内, 驱动程序也是这个格式,也可以用于对象文件和库。

    这个格式是Microsoft设计的,并在1993经过TIS (tool interface standard)委员会(Microsoft, Intel, Borland, Watcom, IBM等)标准化。它基于在UNIX和VMS上运行的对象文件和可执行文件的COFF"common object file format"格式。

    Pe格式结构图

    以上就是逆向分析的第一课程,有关pe的认识。下面我们接着将软件的保护甲——壳。

    上节课程我主要介绍了什么是pe,本次课程我们主要来讲一下壳,这也是破解软件的必修课程,也是逆向分析里面的必修功课。

    在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,就把这样的程序称为“壳”了。壳分为私密壳和压缩壳。

    壳的示意图

    壳的加载过程

    1)获取壳所需要使用的API地址

    如果用PE编辑工具查看加壳后的文件,会发现未加壳的文件和加壳后的文件的输入表不一样,加壳后的输入表一般所引入的DLL和API函数很少,甚至只有Kernel32.dll以及GetProcAddress这个API函数。

    壳实际上还需要其他的API函数来完成它的工作,为了隐藏这些API,它一般只在壳的代码中用显式链接方式动态加载这些API函数。

    2)解密原程序的各个区块(Section)的数据

    壳出于保护原程序代码和数据的目的,一般都会加密原程序文件的各个区块。在程序执行时外壳将会对这些区块数据解密,以让程序能正常运行。

    壳一般是按区块加密的,那么在解密时也按区块解密,并且把解密的区块数据按照区块的定义放在合适的内存位置。

    如果加壳时用到了压缩技术,那么在解密之前还有一道工序,就是解压缩。这也是一些壳的特色之一,比如说原来的程序文件未加壳时1~2M大小,加壳后反而只有几百K。

    3)重定位

    文件执行时将被映像到指定内存地址中,这个初始内存地址称为基地址(ImageBase)。

    对于EXE的程序文件来说,Windows系统会尽量满足。例如某EXE文件的基地址为0x400000,而运行时Windows系统提供给程序的基地址也同样是0x400000。在这种情况下就不需要进行地址“重定位”了。由于不需要对EXE文件进行“重定位”,所以加壳软件把原程序文件中用于保存重定位信息的区块干脆也删除了,这样使得加壳后的文件更加小巧。有些工具提供“Wipe Reloc”的功能,其实就是这个作用。

    不过对于DLL的动态链接库文件来说,Windows系统没有办法保证每一次DLL运行时都提供相同的基地址。这样“重定位”就很重要了,此时壳中也需要提供进行“重定位”的代码,否则原程序中的代码是无法正常运行起来的。从这点来说,加壳的DLL比加壳的EXE更难修正。

    4)HOOK-API

    程序文件中的输入表的作用是让Windows系统在程序运行时提供API的实际地址给程序使用。在程序的第一行代码执行之前,Windows系统就完成了这个工作。

    壳一般都修改了原程序文件的输入表,然后自己模仿Windows系统的工作来填充输入表中相关的数据。在填充过程中,外壳就可填充HOOK-API代码的地址,这样就可间接地获得程序的控制权。

    5)跳转到程序原入口点(OEP)

    从这个时候起壳就把控制权交还给原程序了,一般的壳在这里会有明显的一个“分界线”。但现在的猛壳己没这界限了,壳里有肉,肉里有壳。

    一般壳的加载过程如图所示

    加壳软件介绍

    加壳软件按照其加壳目的和作用,可分为两类:一是压缩(Packers),二是保护(Protectors)。压缩这类壳主要目的是减小程序体积,如ASPacK、UPX和PECompact等。另一类是保护程序,用上了各种反跟踪技术保护程序不被调试、脱壳等,其加壳后的体积大小不是其考虑的主要因素,如ASProtect、Armadillo、EXECryptor等。

    随着加壳技术的发展,这两类软件之间的界线越来越模糊,很多加壳软件除具有较强的压缩性能,同时也有了较强的保护性能。

    各类加壳软件,其压缩算法一般不是自己实现的,大多是调用其他的压缩引擎。目前压缩引擎种类比较多,不同的压缩引擎有不同特点,如一些对图像压缩效果好,一些对数据压缩效果好。而加壳软件选择压缩引擎有一个特点,在保证压缩比的条件下,压缩速度慢些关系不是太大,但解压速度一定要快,这样加了壳的EXE文件运行起来速度才不会受太大的影响。

    常用压缩壳介绍

    1). ASPacK 
    主页:http://www.aspack.com/
    ASPack是款Win32可执行文件压缩软件,可压缩Windows 32位可执行文件(.exe)以及库文件(.dll、.ocx),文件压缩比率高达40%~70%。

    2). UPX
    主页:http://upx.sourceforge.net/
    UPX是一个以命令行方式操作的可执行文件经典免费压缩程序,压缩算法自己实现,速度极快。

    3). PECompact
    主页:http://www.bitsum.com/
    PECompact同样也是一款能压缩可执行文件的工具(支持EXE、DLL、SCR、OCX等文件)。相比同类软件,PECompact提供了多种压缩项目的选择,用户可以根据需要确定哪些内部资源需要压缩处理。同时,该软件还提供了加解密的插件接口功能。


    作者: AnyView(网络警)网络监控软件   时间: 2014-5-21 18:14:34   点击:     

    相关资讯:
    [局域网监控软件相关之网络关键技术] 网络常见攻击方式,攻击技术,攻击原理,防御方式概述
    [局域网监控软件相关之网络关键技术] 局域网管理,局域网监控,网管好帮手,最常用网络命令精萃详解
    [局域网监控软件相关之网络关键技术] 局域网监控,网络黑客攻防技术,黑客常用攻击手法大揭秘
    [局域网监控软件相关之网络关键技术] 教你如何进入有密码的Windows系统,破解windows系统
    [局域网监控软件相关之网络关键技术] 网络攻击,网络防护,黑客入门教程,入侵攻击入门指南
    [局域网监控软件相关之网络关键技术] 网络攻击,网络入侵,常用网络攻击手段,网络入侵方法
    [局域网监控软件相关之网络关键技术] 黑客如何查找互联网网络安全漏洞,黑客如何攻击入侵网络
    [局域网监控软件相关之网络关键技术] 网络攻击,逆向分析技术,有关脱壳以及脱壳实例讲解
    [局域网监控软件相关之网络关键技术] 局域网监控,网络监控,教你用dos命令,破解远程WINDOWS用户密码
    [局域网监控软件相关之网络关键技术] 局域网监控,WINDOWS系统泄露密码,入侵攻击分析,139端口攻击
■ AnyView(网络警)网络监控软件--功能检索
  • 服务电话:0592-2651619 / 13906050680 ; 钉钉:15359220936;微信:15359220936;Skype:Amoisoft;
  • 服务邮箱: Sales@amoisoft.com;Order@amoisoft.com;Tech@amoisoft.com;
  • 支持QQ:9908430(综合),850753251(购买1),573982850(购买2),969263561(技术1),53864605(技术2),332056791(技术3)
■ 联系我们获得支持和服务 ■ 信息留言反馈