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

来源:安全中国

手工修复引入表是破解加壳软件最难的一道工序,一向是顶尖高手的专利,令我等菜鸟往往望而却步,而不敢奢望越雷池半步!那么有没有简单一些的方法呢?通过本人的实践,终于找到了这条捷径。我的做法可以分为以下几步: 
    1、确定程序的OEP,并脱壳。 
    2、使未脱壳程序处于正常运行态,使用ImportREC或LordPE检查是否所有的API都可识别,并记录下不可识别API的列表及其函数入口地址。 
    3、重新启动未脱壳程序,并使之中断在OEP,用前面记录到的资料在所有不可识别API的入口设执行断点,尽可能尝试软件所有的功能,通过跟踪查清每一个不可识别API的名称及实际入口地址,并加以记录。 
    4、再次启动未脱壳程序,并使之中断在OEP,用上一步确定的实际API的入口地址逐一替换相应的未识别API入口地址,然后使程序处于正常运行态,使用ImportREC或LordPE进行检查,这时所有的API就都能识别了。API识别完成后,对已脱壳的程序进行FixDump,整个修复过程就完成了。 

  下面让我们一起来亲手搞定目前比较凶悍的加壳保护软件之一--SVKP1.32(当前版本,看雪工具有介绍)。 
    使用工具:(1)、SoftICE 2.6 根据http://www.chat001.com/forum/crackforum/251195.html自行制作的修改版 
              (2)、ImportREC 1.6 (http://www.pediy.com/tools/PE_tools/Rebuilder/Import%20REC/ucfir16f.zip) 
              (3)、LordPE DLX(http://www.pediy.com/tools/PE_tools/Lordpe/LPE-DLX.ZIP) 
              (4)、UltraEdit 10.10a(http://www.ttdown.com/SoftDown.asp?ID=6718) 
    目标程序: SVK Protect 1.32 (http://www.anticracking.szm.sk/svkp_setup.exe) 

    安装目标程序,装载SoftICE。 

  1、下断点“bpint 1”,然后启动SVKP.EXE,程序中断于 
001B:07BABC57  CD01                INT      01 
  下命令“bd 0”关闭断点,并使用命令“r eip 07BAEE11”修改指令指针,以便躲过SEH陷阱,再下命令“g 07D31FA5”,使程序中断于07D31FA5处(当然,你也可以使用命令“g 00401000”使程序直接停在OEP处),使用F8键单步跟踪,要不了几步就可以到达程序的OEP:00401000 处了。记录下此值,并记录下从OEP开始的几行指令及相应十六进制编码,下汇编命令“a eip”修改入口指令为“JMP EIP”然后用命令“x”使程序退出SoftICE并在OEP处进入死循环。 
  2、下面需要从内存中Dump出程序。启动LordPE,用鼠标指针点选SVKP.EXE进程,点鼠标右键,在弹出的菜单中点选“Correct Image Size”项前先修正映像尺寸。然后在相同的菜单中点选“Dump Full”以Dump出脱过壳的程序,命名为“SVKP_Dump.exe”。然后还在相同菜单下点选“Burn Process”杀死在内存之中处于死循环状态的程序。此后用LordPE的PE Editor功能调入脱过壳的SVKP_Dump.exe,修改其OEP的RVA为00001000,保存退出。 3、下面需要复原SVKP_Dump.exe在OEP处的指令。使用UltraEdit载入SVKP_Dump.exe,使用十六进制码搜索功能搜索以下字节串
      eb fe f3 4b 00
找到后修改为:
      68 1d f3 4b 00
改好后存盘退出。至此,脱壳程序SVKP_Dump.exe修改完毕,剩下的工作就是修复引入表IAT了。
  4、启动ImpotREC,在进程列表中选取SVKP.EXE,修改相应OEP的RVA为00001000,点击“IAT Auto Search”按钮,再点击“Get Impots”按钮,逐一检查API的识别情况。最后发现,有5个API程序无法识别,对应的入口分别是:
    (1) 07D37656
    (2) 07D49E52
    (3) 07D49E82
    (4) 07D333DD
    (5) 07D32070
  5、重新启动加壳程序,使之停在OEP处,下断点:
    (1)、“bpx 07D37656”
    (2)、“bpx 07D49E52”
    (3)、“bpx 07D49E82”
    (4)、“bpx 07D333DD”
    (5)、“bpx 07D32070”
  然后让程序继续执行,分别从断点处开始跟踪,看看程序调用的究竟是哪个API,然后再返回到调用处看看:
  (1) 00401005 CALL [004C521C] -- 07D37656 <-- SVKP API

  (2) 00402F04 CALL [004C51A8] -- 07D49E52 <-- KERNEL32!CopyFileA
  (2) 0040300B CALL [004C51A8] -- 07D49E52 <-- KERNEL32!CopyFileA

  (3) 00402F58 CALL [004C51B0] -- 07D49E82 <-- KERNEL32!CreateFileMappingA
  (3) 00403694 CALL [004C51B0] -- 07D49E82 <-- KERNEL32!CreateFileMappingA

  (4) 00401086 CALL [004C51F8] -- 07D333DD <-- KERNEL32!GetModuleHandleA

  (5) 004011A8 CALL [004C5200] -- 07D32070 <-- KERNEL32!ExitProcess
    现在情况就比较清楚了,第一个API是用于为传入的地址装载固定的文本内容,只在程序开始时调用,不是很重要,我们为它指定一个调用形式相当的API--KERNEL32!GetVersionExA作为替代,其它的API已经清楚了。

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 企业网络组建与维护班正式开课
    普通文章 瑞星公司04月17日发布 每日计算机病毒及木马播报
    推荐文章 推荐:网络防火墙在网络安全中重要功能和作用
    普通文章 网游用户账户安全“八戒”
    普通文章 学院高手解决IE8不能升级系统Bug
    普通文章 Acprotect1.09g标准版脱壳+伪修复
    普通文章 Acprotect1.10 Build123之Dephi语言篇
    普通文章 菜鸟也玩手动修复引入表
    普通文章 命令提示符被病毒禁用的解决办法
    普通文章 "木马下载器"现新变种 可远程盗取机密信息
    热门文章
    普通文章美国政府09年欲投入73亿美元提高IT安全性
    普通文章MSN蠕虫病毒再度肆虐
    普通文章微软向雅虎发出最后通碟
    普通文章美国下一代互联网internet2
    普通文章英国电信被指监视36000名互联网用户
    普通文章CUPS gif_read_lzw()函数GIF 处理缓冲区溢出漏洞
    普通文章Linux Audit audit_log_user_command 栈溢出漏洞
    普通文章Microsoft Internet Explorer 7弹出URI 欺骗漏洞
    普通文章IBM solidDB数据库含格式串处理以及拒绝服务漏洞
    普通文章如何修复在Linux系统下被病毒感染的Grep程序
    精彩专题