吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6944|回复: 13
收起左侧

[原创] 菜鸟也玩 ZProtect v1.4(demo) IAT 修复

[复制链接]
红绡枫叶 发表于 2012-8-30 14:01
【软件名称】: XXX邮件推广
【使用工具】: OD,exeinfoPE
【操作平台】: XP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  Zp的壳早就有大侠写出很好的教程,这篇脱文大侠就不用再看了。我在我电脑上看见了一ZP加壳的软件,就顺便脱了,写了我
  的第一篇脱文。第一次写脱文,难免有错误与遗漏,到时请各位不吝指出!在此感谢。
  
  OD载入,先F7单步,到达
  009C89DC    60              PUSHAD
  009C89DD  ^ E9 F7FCFFFF     JMP 009C86D9 <---此步之后下好断点: hr esp
  下好断点后F9运行,弹出注册对话框,点试用,断下,单步F7到达OEP:
  0084F914    55              PUSH EBP  <------OEP
  0084F915    8BEC            MOV EBP,ESP
  0084F917    83C4 F0         ADD ESP,-10
  0084F91A    B8 9CEA8400     MOV EAX,0084EA9C
  0084F91F    E8 8489BBFF     CALL 004082A8   <----
  0084F924    A1 0C738600     MOV EAX,DWORD PTR DS:[86730C]
  0084F929    8B00            MOV EAX,DWORD PTR DS:[EAX]
  0084F92B    E8 48CAC5FF     CALL 004AC378
  0084F930    A1 0C738600     MOV EAX,DWORD PTR DS:[86730C]

  进入CALL 004082A8,再进入第一个call:
  004081CC  - FF25 B0138700   JMP DWORD PTR DS:[8713B0]                ; 1_72.009CAE9C
  004081D2    8BC0            MOV EAX,EAX
  004081D4  - FF25 AC138700   JMP DWORD PTR DS:[8713AC]
  004081DA    8BC0            MOV EAX,EAX
  004081DC  - FF25 A8138700   JMP DWORD PTR DS:[8713A8]                ; 1_72.009C9EF4
  004081E2    8BC0            MOV EAX,EAX
  004081E4  - FF25 A4138700   JMP DWORD PTR DS:[8713A4]
  
  
  IAT已被加密,跟随到数据窗口-->内存地址,看到
  008713B0  009CAE9C  1_72.009CAE9C  <--------第一种加密
  008713B4  00000000
  008713B8  009CA578  1_72.009CA578
  008713BC  009CAAAC  1_72.009CAAAC
  008713C0  01AF0196    <----------第二种加密
  008713C4  01AF01A4
  008713C8  01AF01B2
  到IAT尾部:
  00871CA8  01B001F8<--------第三种加密
  00871CAC  01B00206
  00871CB0  01B00214
  00871CB4  01B00222
  00871CB8  00000000
  00871CBC  009CAB48  1_72.009CAB48
  00871CC0  01B00230

  第一种加密,009XXXXX
  第二种加密,01AXXXXX
  第三种加密,01BXXXXX
  在 008713B0  009CAE9C  1_72.009CAE9C  <--------第一种加密   上新建EIP,注意,此时先前用来到达OEP的硬件断点不要删!F8一路步过,最后
  来到
  018673DD    C3              RETN
  此时堆栈已出现解密后的地址:
  0012FFC0   7C80B741  kernel32.GetModuleHandleA
  那 018673DD 就是IAT解密完成后的跳转。我们得到第一种加密的关键地方:018673DD
  又新建EIP,跟随后两种加密方式,都可以看到这样的形式:
  PUSH EAX
  PUSHAD
  PUSH XXXXXXXX
  CALL 018A43A0
  POPAD
  RETN
  在RETN一句,堆栈也已经解密出真实地址了。
  其中 CALL 018A43A0 是一个关键地方,大家可以进去分析分析。
  现在要修复IAT就比较简单了,我写了一个脚本,供大家参考:
  
  var cur_addr
  var old_esp
  var old_eip
  var end_addr
  var bp_addr
  
  mov old_esp,esp        ;保存eip,esp,脚本运行后我们要还原
  mov old_eip,eip
  
  bphwc        ;删除所有断点
  bc
  ask "输入起始的IAT地址-4"
  cmp $RESULT, 0
  je exit
  mov cur_addr,$RESULT        ;IAT起始地址-4
  ask "输入结束的IAT地址+4"
  cmp $RESULT, 0
  je exit
  mov end_addr,$RESULT      
  
  mainloop:
  BPHWC
  BC
  mov esp,old_esp
  add cur_addr,4
  cmp cur_addr,end_addr        ;IAT结束+4,当前地址大于这个值,IAT修复完毕
  jae exit
  cmp [cur_addr],0    ;DLL结束的地方,不处理
  je mainloop
  CMP [cur_addr],00A00000
  JB loop1           ;调向第一种加密处理
  JMP  loop2         ;调向第二三种加密处理
  
  
  loop:
  mov eip,[cur_addr]        ;在目标地址新建EIP
  esto            
  mov [cur_addr],[esp]      ;栈顶出现真实函数地址,我们把它写回到 IAT
  jmp mainloop
  
  loop1:    ;第一种加密处理
  BPHWS 018673DD
  JMP loop
  
  loop2:     ;第二三种加密处理
  MOV bp_addr,[cur_addr]
  ADD bp_addr,0D
  BPHWS bp_addr,"x"
  JMP loop
  
  exit:
  mov eip,old_eip
  mov esp,old_esp
  bc
  BPHWC
  ret
  起始IAT-4=008712A4
  结束IAT+4=00871D78
  此脚本已经测试通过。ZProtect会对PE头做比较大的手脚,修复的时候要注意
  取消lordpe勾选“从磁盘文件粘贴PE头”,然后DUMP下来,修复,成功!这是为什么?
  原来,我们之前脱壳抓取镜像的时候,使用的从磁盘文件(加壳文件)贴过来的PE头,
  而对于加壳文件来说,资源表是被修改了的。这样就会出错。
  以下是脱壳试练品,有兴趣的可以试一试。你还有别的脱壳思路吗?
  http://pan.baidu.com/share/link?shareid=7962&uk=4280448916
--------------------------------------------------------------------------------
【版权声明】: 本文原创于红绡枫叶, 转载请注明作者并保持文章的完整, 谢谢!

免费评分

参与人数 1热心值 +1 收起 理由
Chief + 1 欢迎分析讨论交流[吾爱破解论坛]有你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

huabian 发表于 2012-8-30 14:23
支持原创啊,呵呵
FishSauce 发表于 2012-8-30 14:24
Chief 发表于 2012-8-30 15:19
sky_line 发表于 2012-8-30 15:24
看上去好复杂啊。。
沉思 发表于 2012-8-30 15:45
这个 我都看不懂  连菜鸟也不算啊
可乐煎饼 发表于 2012-8-30 16:05
给楼主说的  我连菜鸟都不算了  唉  我再仔细看看
王者之剑 发表于 2012-8-30 17:07
不错,又一高手出现
、小细 发表于 2012-10-15 01:27
看看啦
感谢
305830505 发表于 2012-10-15 01:30

不错,又一高手出现
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-11 17:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表