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

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 软件破解 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[图文]PELock v1.0x 脱壳之完美风暴
      ★★★★★

PELock v1.0x 脱壳之完美风暴

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-3-28 9:19:24

【脱壳对象】:PELock v1.06 加壳的ACProtect v2.0自带 ACP_Feedback.exe

    之所以选择这个对象的原因在于:
    
    1. PELock已经不再升级,其加壳程序的兼容性也随着操作系统的升级而下降,因此现在用PELock加壳的程序也难觅其踪;
    2. ACP_Feedback.exe是一个Delphi程序,PELock对Delphi程序的一个地址表做了特殊处理,我们可以借此机会一觑这个特别的保护手段:)
    
【作者】:jdpack

【联系方式】:redoc at citiz.net
    
【脱壳工具】:OllyDbg,LordPE,ImportRec等等

【脱壳过程】:

    OllyDbg载入ACP_Feedback.exe,忽略除内存访问异常以外的所有异常,Shift+F9 12次以后程序启动。
    重新载入程序,这次我们Shift+F9 11次以后对代码段下内存访问断点,来到:
    
          CALL    @ACP_Feed_00401DB0
          JMP     @ACP_Feed_008806E9
          PUSH    0
          PUSH    0
          CALL    @ACP_Feed_00401E74
          MOV     EBX,EAX
          CALL    @ACP_Feed_00401E94
          JMP     @ACP_Feed_008806F4
          JNZ     @ACP_Feed_0040219A
          PUSH    EBX
          CALL    @ACP_Feed_00401E64
          JMP     @ACP_Feed_00880700
          JMP     @ACP_Feed_0088070B
          DB      0E8h
          DB      022h                       ; CHAR '"'
          
    很明显程序的开头几句指令被偷走了,不过这难不倒我们,随便找一个Delphi的程序就可以把入口补上:
    
          push ebp
          mov esp, ebp
          add esp, -10
          push ebx
          mov eax, XXXXXXXX
    
    Copyright by redoc (redoc at citiz.net)
    
    任意找一个API调用确定IAT的位置和大小:
    
@ACP_Feed_00401CEC:

          JMP     @ACP_Feed_00880500
          DB      00
          MOV     EAX,EAX
          
@ACP_Feed_00880500:

          JMP     DWORD PTR DS:[00405108]      ; 定位IAT
          JMP     @ACP_Feed_00401CF2
          OUT     0FF,EAX

dd 000370000h, 00037009Dh, 0003700D1h, 00037011Dh, 000370163h, 00037020Fh, 000370228h, 0003702D1h
dd 0003702EFh, 000370321h, 0003703ADh, 00037045Ah, 000370508h, 000370564h, 0003705E5h, 0F80EEB0Fh
dd 00037062Eh, 00037068Eh, 0A9D5AE40h, 0003706BFh, 000370715h, 00037076Bh, 05CAAD636h, 00037079Eh
dd 0003707EDh, 000370826h, 0003708C8h, 07D2BBBE9h, 0003708F5h, 00037091Dh, 00037093Dh, 00037098Ah
dd 0BCBE2098h, 0003709D4h, 000370A07h, 000370A30h, 000370A64h, 000370A7Ah, 000370AA1h, 000370AF0h
dd 000370B3Ah

    这些00037XXXX的地址很容易识别,不过很显然它们被加密了。我们对其中任意一个地址下内存访问断点,就可以中断到外壳填写IAT的代码。
    
          MOV     DWORD PTR DS:[ECX],EBX
          JMP     @ACP_Feed_00354668
          
    幸运的是,当外壳执行到这句指令时,EAX恰好为正确的API地址,所以我们写一个类似下面的脚本就可以避开所有的IAT重定向:
    
          mov tmpreg, ebx
          mov ebx, eax
          sti
          mov ebx, tmpreg
    
    需要注意的是,由于外壳的CRC校验,我们不能直接修改这句指令为 "mov [ecx], eax" 或者在这句指令上下bp断点,唯一的方法是采用硬件断点。
    
    Copyright by redoc (redoc at citiz.net)
    
    OK,PELock对IAT的加密现在看了已经没有什么强度了,但是在当时看来还是比较出色的。下面才是PELock值得关注的重点——Code Redirection。
    

[1] [2] 下一页

文章录入:cainiaowang    责任编辑:liult 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886