黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 软件破解 >> 正文
·没有路由密码权限时的鸽08-23·服务器访问帐号设置要安10-17
·ZhengTu盗号马bdscheca010-17·系统安全从定制IP策略开10-17
·从黑客常用的攻击手段分10-17·几秒钟自定制XP启动画面10-17
·文件批量重命名 Win XP自10-17·Trojan-Dropper.Win32.A10-17
·突破FSO限制夺取系统权限10-17·笔记本电脑用户应如何选10-17
·XSS测试语法大全10-17·脱壳的入门教程10-17
·只需两招轻松识破QQ安全10-17·bat 延时执行命令的三种10-17
·安全顾问教你如何安全使10-17·千脑提供500M免费WebOS网10-17
·Graffiti提供20M免费静态10-17·FreeUnlimitedWeb提供无10-16
·假如对方是个BT 之 \ 被10-15·mysql注入检测工具10-15
·入侵中用到的三大门派的10-15·Power Mixer 系统音量随10-15
·妙用Vista的任务计划解除10-15·善用外力,让Vista系统功10-15
·走啦网提供免费二级域名10-15·光纤互联提供200M免费静10-15
·关于Windows的权限和一些10-14·新型 .net 一句话及客户10-14
[推荐]脱壳的入门教程
        ★★★★

脱壳的入门教程

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-10-17 12:00:40

前  言
  细细回忆,学习Crack技术已经快2个月了,期间我学会的东西远比我以前任何一年内学的东西都多(专指计算机程序及系统了解情况)

  说到学脱壳也是最近一个月的时间,开始总是到处询问学习脱壳的方法,大多的答案就是看雪老大的书,谁也没有正面回答过.于是就自己摸索,略有一点思路,老大们估计是认为理所当然,对于我们小菜来说还是说白了比较合适.

  在这里我就班门弄斧一回,其实主要也是帮助一些朋友能更快的摸到门,不至于对只会照猫画虎,这些也是我当初我想问的那些问题的答案,都是些很基础的东西,说得不好还请高手指正.

  在此感谢看雪老大提供了如此之好论坛供大家学习交流,还写了一本很好的书指导像我这样的菜鸟,也感谢网上众多高手贡献出自己的脱壳手记,特别感谢heXer老大对本菜鸟的细心指点!

  顺便说一句,脱壳特别需要的是兴趣和耐心,如果没有耐心就......;)
  废话了一堆,我们下面进入正题:)
  结合娃娃Wom的新KG说说一般面对一个壳的简单分析方法

  一、找OEP
  脱壳的一般流程是:查壳->寻找OEP->Dump->修复
  查壳没什么好说的,FI和PEiD,不幸的是FI和PEiD都不能识别出这个壳:)
  我找OEP的一般思路如下:
  先看壳是加密壳还是压缩壳,压缩壳相对来说容易些,一般是没有异常,找到对应的popad后就能到入口,跳到入口的方式一般为
  1、    jmp OEP
  2、    push OEP
  ret
  3、    call OEP
  当然也有其他的,如 je OEP等等,一般都是段之间的大跳转,OD的反汇编窗口里都是同一个段的内容,所以更好区别是否是段间跳转

  『这里我说说关于F8(Step Over)和F7(Step in)的一般方法,粗跟的时候一般都是常用F8走,但是有些call是变形的Jmp,此时就需要F7代过,区别是否是变形Jmp的一个简单方法是比较call的目标地址和当前地址,如果两者离的很近,一般就是变形Jmp了,用F7走 』

  对于加密壳,我的方法一般是用OD载入,钩掉所有异常(不忽略任何异常,有时由于异常过多可以适当忽略一些异常),运行,数着用了多少次Shift+F9程序运行,显然最后一次异常后,程序会从壳跳到OEP开始执行,这就是我们寻找OEP的一个关键,而对于这个壳可知是加密壳,Shift+F9 16次后运行,重来,Shift+F1 15次后到这
  0042CBD3  ^\73 DC              jnb short kill_luj.0042CBB1
  0042CBD5    CD 20              int 20
  0042CBD7    64:67:8F06 0000    pop dword ptr fs:[0]  <---这里
  一般的处理方法是找到pop fs:[0]处下断点或者是[esp+4]处下断点,如果学习一下SEH的处理会更好些
  0012FF58  0012FFE0  Pointer to next SEH record
  0012FF5C  0042CBB7  SE handler            <---这里一般包含Anti-Debug的代码
  0012FF60  0042CB8A  RETURN to kill_luj.0042CB8A from kill_luj.0042CB90
  我首选第一种,在0042CBD7处下断之后,耐心的用F7走,因为变形call太多了...,关键注意一下往回跳的跳转,寻找合适的位置跳出循环,有耐心的话你就能这样走到OEP了;)
  当然你也可以用另一个好东西——Trace,在Command里来个tc eip<42b000  (42b000是当前段的起始位置,滚动条拖到最上面就能看到了,一般程序编译的基地址为400000),OK,稍等一会我们就会停在这了(如果是ASPr可能要几分钟了)
  00419F68    55                push ebp            <----停在这
  00419F69    8BEC              mov ebp, esp
  00419F6B    83C4 F0            add esp, -10
  呵呵,OEP找到了;)
  当然,这个用PEiD就能找到OEP,比较一下,是不是一样:D,对于用PEiD找到的OEP可以直接G到OEP
  此时就可以Dump了,用LordPE来Dump吧,由于有Anti-Dump,所以要先Correct Imagesize一下再Dump

[1] [2] 下一页

文章录入:heilong916    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体:
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886