吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10151|回复: 14
收起左侧

[原创] 分享 FSG 2.0的一次脱壳经历,IAT API修复

  [复制链接]
wanttobeno 发表于 2015-3-14 18:10
       今天早上在论坛下载了一个软件 DeepFreezePasswordRemover

DeepFreezePasswordRemover

DeepFreezePasswordRemover
,看了下软件的大小23k,本能反应应该是加壳了,看看是什么壳。右键Peid

Peid

Peid


        FSG 2.0 -> bart/xt的壳,一款很老的壳了。今天周末,那就拿来脱壳练习下吧!
--------------------
    FSG脱壳要领:找到OEP后,填写IAT地址,IR修复就可以了
--------------------
    那就开始脱壳吧!OD载入

OD载入FSG

OD载入FSG

本人OD脱壳的习惯是:
      直接在跳转单击,然后按F4,碰到程序执行之后,再按下键盘上的-号按键,OD会自动返回
刚才跑飞的地方,在跑飞的跳转处还有可以的跳转处下断后,在重新载入。

       按照上面的方法开始脱壳,在 004001DA   ^\EB EE                   jmp short DeepFree.004001CA  按下F4后程序跑飞了

F4跑飞

F4跑飞

程序跑飞了,说明OEP就在附近了,按下键盘上的-号按键。OD自动返回到
004001DA   ^\EB EE                   jmp short DeepFree.004001CA
OD界面往上拉,仔细观察后没有发现大的跳转,较为可疑的就是

004001D1     FF63 0C                 jmp dword ptr ds:[ebx+0xC]
直接下断,OD重新载入,运行

magic jmp

magic jmp

程序断下来,看到 信息框显示的内容是
ds:[00411CB0]=0040109C (DeepFree.0040109C)

也就是004001D1     FF63 0C                 jmp dword ptr ds:[ebx+0xC]
的跳转地址就是  jmp 0040109C,这是个大跳转,基本可以肯定OEP就是109C (= 0040109C -0040000 )。
单步进入跳转,右键移除分析,看到了熟悉的VB代码的入口点

VB_oep

VB_oep

往上面拉就是此款程序的API了。

API

API


      使用LoedPe Dump出文件,ImpRECv1.7修复IAT

dump

dump

运行后,就直接错误了!

00000000错误

00000000错误

然后我就纳闷了,哪里错了呢?
于是就打开通用脱壳工具之小米脱壳来脱壳试试
小米脱壳给力,成功脱下了壳,脱壳文件76k,并且能成功运行。

小米脱壳

小米脱壳

自动脱壳机能脱壳成功,我咋就脱壳失败了,这个壳很简单的。
然后就OD载入脱壳后的错误文件,开始单步调试,调试了很多次,没有结果
于是纠结中。。。哪里错了,程序没有自校验啊!
       思考中。。。IAT也修复了!
       渐渐忘记了。。。
下午重新想起来的时候,为什么不对比一下IAT呢?
-----------------------

       使用LordPE添加API
-----------------------
      于是打开了两个LordPE,查看小米脱壳机脱壳的IAT和ImpRECv1.7修复后的IAT
这时有了发现,发现少了一个API,下图中绿色框框住的部分
那么在OD中对应的地址就是0040106A


iat对比

iat对比

问题应该就是在这里,立马使用OD分别载入两个脱壳文件
前往0040106A,发现真的是有一个API掉了
0040106A    .- FF25 38104000         jmp dword ptr ds:[<&MSVBVM60.#rtcRightCharVar_619>>;  msvbvm60.rtcRightCharVar
0040106A       FF25 38104000         jmp dword ptr ds:[0x401038]

OD对比

OD对比



为了验证下,就直接修改0040106A 处的汇编代码为 jmp msvbvm60.rtcRightCharVar
在OD中按下F9程序成功跑起来了
-----------------------
接下来开始修复,这里使用LordPE添加输入表,然后填写Dll:msvbvm60.dll,API:rtcRightCharVar,
点击加号,点击OK

添加IAT

添加IAT

记下图中的偏移地址:1301F,加上400000,就是0041301F

偏移地址

偏移地址

LordPE保存退出
OD载入脱壳后的文件,在数据窗口中 ctrl + g ,输入0041301F,回车,
手动添加的API,已经成功添加进去了。

数据窗口

数据窗口

接下来就是使用OD修改代码,右击保存修改后的文件为dump_fix.exe

OD修复

OD修复

双击,发现错误消失了,程序正常运行起来了,手动脱壳后的文件大小为76K。
----------------------

  发现的一些问题,自己无法解决,请教下有经验的人
----------------------
1、为什么ImpREC在修复iat的时候不会自动查到0x401038处的api :msvbvm60.rtcRightCharVar
但是0x401034处的Api msvbvm60.rtcLeftCharVar 却能够找到,两个地址就相差了4。
就算是扩大了ImpREC的搜索大小size还是找不到msvbvm60.rtcLeftCharVar,我就纳闷了。
API找不到.png

2、还有像这个错误是不是都是API错误,00000000的00000000错误。




附件下载:
DeepFreezePasswordRemover.rar (61.79 KB, 下载次数: 38)



免费评分

参与人数 2威望 +1 热心值 +1 收起 理由
错过的指尖 + 1 谢谢指导
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

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

 楼主| wanttobeno 发表于 2016-4-29 09:19
本帖最后由 wanttobeno 于 2016-4-29 09:23 编辑
错过的指尖 发表于 2016-4-28 17:11
你好,拜读你的帖子,所以按你的思路有两处不太明白的地方麻烦指点
1:如何使用LordPE添加API并查看(新手 ...

第一个问题,如图
2016-04-29_091548.png
第二个问题
   是对比自己脱壳的文件的输入表和脱壳机脱壳的文件,发现自己脱壳的少了一个api,这个api的TAV为1038。仔细看图哦!
 楼主| wanttobeno 发表于 2015-3-15 07:28
Hmily 发表于 2015-3-15 00:01
我帮你把帖子编辑了下,图片上传后直接点击图片就可以贴到帖子里了。

fsg的iat是打乱排序的,获取IAT的 ...

谢谢
当时这方法都试试了,还是不行。
但是今天在试的时候,Import居然找到了缺少的那个指针
      以后脱壳多次失败,应该选择重启一下电脑,我之前的电脑都是处于开机状态的

点评

什么不行,你得先修复那个地址的iat,然后importiec才能修复啊。  详情 回复 发表于 2016-4-28 17:51
白小痴 发表于 2015-3-14 22:04
前排围观,
前来膜拜大神,
虽然我没看懂,
火前留名
wgz001 发表于 2015-3-14 22:53
你修复IAT的时候手动输入地址和大小看看  无效的删除试试
Hmily 发表于 2015-3-15 00:01
我帮你把帖子编辑了下,图片上传后直接点击图片就可以贴到帖子里了。

fsg的iat是打乱排序的,获取IAT的大小可以写大一些,然后把无用的剪切掉就好了应该。
aska80 发表于 2015-3-15 00:57
前来膜拜大神啊
 楼主| wanttobeno 发表于 2015-3-15 07:27
wgz001 发表于 2015-3-14 22:53
你修复IAT的时候手动输入地址和大小看看  无效的删除试试

当时两种方法都试试了,还是不行。
但是今天在试的时候,Import居然找到了缺少的那个指针      以后脱壳多次失败,应该选择重启一下电脑,我之前的电脑都是处于开机状态的
感谢提示
ollydebug 发表于 2015-3-15 08:09
可以把大小弄大一些
错过的指尖 发表于 2016-4-28 17:09
Hmily 发表于 2015-3-15 00:01
我帮你把帖子编辑了下,图片上传后直接点击图片就可以贴到帖子里了。

fsg的iat是打乱排序的,获取IAT的 ...

我的IAT写到5000还是错的
错过的指尖 发表于 2016-4-28 17:11
本帖最后由 错过的指尖 于 2016-4-28 17:13 编辑

你好,拜读你的帖子,所以按你的思路有两处不太明白的地方麻烦指点
1:如何使用LordPE添加API并查看(新手请多包涵)

2:从哪里看出来RAV为1038对应的地址会是0040106A

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 14:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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