首页
社区
课程
招聘
[原创][动画]FSG 2.0的壳简单脱法和脱壳后的输入表手工修复
2006-4-7 19:28 7670

[原创][动画]FSG 2.0的壳简单脱法和脱壳后的输入表手工修复

2006-4-7 19:28
7670
【破文标题】针对FSG 2.0的壳简单脱法和脱壳后的输入表手工修复
【破解工具】PEDI、OD、loadpe、ImportREC、windows自带计算器
【任    务】找到FSG 2.0更好的脱壳方法,并且脱壳后ImportREC无法正确修复时要做的手工修复输入表(此点很重要)
【破文作者】风尘
【破解声明】我只是一只小小的菜鸟,当有点开心的破文时我想把我的喜悦和心得与大家分享,并与众多菜鸟一起成长:)
【破解平台】 win 2000 sp4
【时    间】2006-04-07
【破解过程】

大家好,我是风尘,我又来了  今天有网友问我关于FSG 2.0的壳怎么那么难脱,其实这个壳我以前也没碰过。没办法先上网查查,没想到关于这个壳的教程或者动画少得很,而且都不是很详尽的(最主要的是后来的修复问题),对于我们这样的菜鸟根本就没办法完成。今天既然有人问就试试看,也找到了一点心得,所以做了个动画,以方便以后自己学习参考,并希望能给菜鸟们一点点提示,互相学习学习。

这个软件是 局域网查看工具V1.60,我自己用FSG 2.0压缩后再来脱壳

好,我们先用PEID查壳,FSG 2.0 -> bart/xt,当然不会错了

我们用OD载入程序,载入后,我们先用F8步过,当碰到返回跳转时,我们就往下跳,一会我就告诉你们哪里是重要的位置,好看操作

好,我们一直F8和F4(这个组合老来干扰)来到这里,注意了
004001CC     40                  inc eax
004001CD   ^ 78 F3               js short 局域网查.004001C2
004001CF     75 03               jnz short 局域网查.004001D4
004001D1     FF63 0C             jmp dword ptr ds:[ebx+C]   //这个跳转其实是FSG的通用特征,看网上的破文都知道
004001D4     50                  push eax
004001D5     55                  push ebp

但是在这个重要的跳转前面并没有直接跳过来,所以我们就采用别的方法了,方法很多,我现在说比较合适的方法

我们直接在004001D1     FF63 0C             jmp dword ptr ds:[ebx+C]下断,然后运行程序,看看一会有什么发现
好,被断下了,这时我们要按F8继续

不好意思,其实第一次分析的时候不是这么显示的,不过不管怎么显示,你只要重新分析一次就变成我这样了

好,已经第一次脱完了,我们试试运行程序看,程序错误,当然了一般情况是会错误的,除非简单的程序,比如记事本可能第一次脱完就OK了

好,先打开IM,输入刚才复制的OEP:A5714,看看只有这么点东西很显然输入表的位置和大小都不对了,但是IM自动跟踪到的RVA还是有用的

因为一会我们要用到它这个RVA:A928C,好,我们现在开始手工修复输入表了,还用OD,直接定位到RVA+基码=4A928C,

定位以后我们看到了输入表的一部分,但是肯定IM没定位到正确的位置,所以我们手工找它,先往上看,一直看到很多00000那就是开始位置了

我们记下有第一个数据的地址:4A91A4,好,现在往下找要找到输入表的结尾,

004A995C       FF                db FF
004A995D       FF                db FF
004A995E       FF                db FF
004A995F       FF                db FF                               ;  这里就是结尾了,看内容看得出来的,当然我们要记下的代码是下面的那个,因为一会要运算
004A9960    .  6B 65 72 6E 65 6C>ascii "kernel32.dll",0
004A996D       00                db 00
004A996E       00                db 00

好,记下4A9960,现在我们来运算SIZE的大小,其实就是最后的代码减4A9960刚才第一个代码4A91A4,即4A9960-4A91A4=???

有人肯定会喊不会算,那就用系统自带的计算器吧(真懒),把计算器换到十六进制,四字节,

晕,看错第一个代码了,嘿嘿,结果就是7BC,好了,新的RAV地址我们已经知道了:4A91A4,SIZE也知道了:7BC,那现在就把这两个值输入IM中,有无效代码,我们点显示无效指针,把无效指针剪切掉,都是有效的指针了,我们可以修复了,保存成功,我们试试看

哈哈:)……………………搞定了,就那么简单

总结:其实刚开始脱壳时,用OD载入后我们可以通过搜索代码直接找到那个重要的JMP的,用CTRL+B然后输入FF630C,然后下断,运行择优很快就可以到达OEP了,修复输入表主要看开始和结尾,然后运算出大小,把两个正确值填入IM中再修复第一次脱壳后的文件,因为IM把RAV和大小给搞错了(这个小子有时候也会犯迷糊的^_^)

好了,今天就到这了,肚子都叫了,嘿嘿,我要撤咯

有意见或建议请CALL:355386339

   风尘

            2006.04.07

动画附件:FSG 2.0的壳简单脱法和脱壳后的输入表手工修复

另外一个是YS168的,可是上传实在太慢,已经上传完毕
FS168分流战:FSG 2.0的壳简单脱法和脱壳后的输入表手工修复

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (9)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
weilqq 2006-4-7 19:43
2
0
谢谢,我要好好学习
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
foretell 2006-4-7 20:15
3
0
嘎嘎顶一个! !! 对了FSG最新版本多少了?
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wangluosus 2006-4-7 20:17
4
0
不知道呢,我没看网上的FSG版本,下一个新版本来试试也不错啊
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
浪流 2006-4-7 20:41
5
0
新手发文一定要支持,一起加油
雪    币: 177
活跃值: (1926)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2006-4-8 17:49
6
0
谢谢,正需要这个。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wodeanqier 2006-4-15 10:45
7
0
谢谢啦,学习中!!!!!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
山河谷 2006-4-15 11:54
8
0
狂热学习中啊
雪    币: 194
活跃值: (96)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
aj3423 2 2006-4-15 13:50
9
0
哈哈 正巧啊 昨天刚脱1 fsg2.0 脱壳之后不能运行
先顶再看~
雪    币: 119
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hczcyy 1 2006-5-17 23:37
10
0
最初由 aj3423 发布
好,先打开IM,输入刚才复制的OEP:A5714,看看只有这么点东西很显然输入表的位置和大小都不对了,但是IM自动跟踪到的RVA还是有用的


没有提到 复制OEP:A5714 呀~

这在哪复制啊?
游客
登录 | 注册 方可回帖
返回