通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
黑客老鸟讲逆向分析:什么是壳及壳的加载过程
责任编辑:酷酷の鱼   更新日期:2008-3-16
 

来源:安全中国

上节课程我主要介绍了什么是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代码的地址,这样就可间接地获得程序的控制权。

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 最近更新
    固顶文章 Delphi编程培训班开课了
    普通文章 瑞星公司03月16日发布 每日计算机病毒及木马播报
    普通文章 清障扫孽 迅雷杀毒斩马悉数揭秘
    推荐文章 推荐:排除代理防火墙连接故障的技巧
    普通文章 选择防火墙策略:更好屏蔽病毒攻击
    普通文章 黑客老鸟讲逆向分析:什么是壳及壳的加载过程
    普通文章 探索NDIS HOOK新的实现方法
    普通文章 浅谈MD5和SHA-1被破解和应用改进策略
    普通文章 普通恶意代码技术分析与检测
    普通文章 网游玩家遇病毒侵袭 安博士出谋保安全
    热门文章
    普通文章微软证实Hotmail登录故障未解决 遭用户抗议
    普通文章金山报料称木马病毒借百度IM传播
    普通文章苹果Quicktime爆漏洞用户需尽快修复
    普通文章“代理脚本”病毒利用漏洞传播病毒
    普通文章360卫士木马预警:局域网成木马重灾区
    普通文章中央情报局分析专家称 黑客通过切断电网发起攻击
    普通文章PayPal预警苹果Safari无反钓鱼功能 用户谨慎使用
    普通文章病毒进入驱动级 与杀毒软件争夺系统控制权
    普通文章用WVS保障Web应用程序安全
    推荐文章推荐:SQL存储过程带来的安全危险
    精彩专题