好友
阅读权限10
听众
最后登录1970-1-1
|
czr27
发表于 2016-4-27 22:00
今天有时间写个教程耍耍哈哈 下载不扣CB 走过路过赏枚CB啊! 还是那句话,今天你脱壳了吗?
http://pan.baidu.com/s/1jIHBMZG 密码ma1z
方法1:脱壳工具完美脱壳
方法2:手动脱壳
寻找OEP - 异常法 + text段断点法
异常法 开启部分异常利用插件自动计数到oep附近
通过插件找到oep附近后忽略所有异常,F7一步,来到7C92E460应该就是异常回调函数,不管如何最后在函数内部做了oep跳转
F2 text段断点后全速运行就能到oep
DUMP内存镜像 不能打开由于iat此时还没有修复
恢复iat
先尝试下普通方法恢复iat会怎么样 可以看到大片iat被加密了 直接恢复或剪切恢复试试 失败了 说明有些被加密的api确实被调用了 由于加密iat数量很多
我们编写脚本恢复iat
我们先看一下iat加密的套路 47d17c就是iat表(47D000-47D6A4之间)
套路就是通过花指令来回附近瞎跳然后通过push+retn指令等同于jmp指令跳到真实原来的api位置也就是[eax]里 其实OllyDbg帮我们标记出来这次例子[eax]指向GetVersion正是VC的一开始会调用的api
我们可以多看几个 会发现套路几乎完全一样 一开始看不到push+retn指令明显此处加了花指令
而且我们可以发现eax的值在push+retn上面两句决定了 mov eax,xxxxx inc eax
也有特例,也是无意发现的 有时候inc eax被换成了nop
根据以上规律写了脚本,时间关系直接讲解下 首先看哪些iat段被加密了47d024-47d370,47d384-47d5fc怎么得来,这些正是我们要修复的
执行一下脚本试试 效果不错iat被修复过来了 修复到我们的dump中去 可以看到没有无效函数 所有的都被修复了
脱壳成功
可惜在win7我尝试了同样的操作 有些问题 先凑合在xp上用吧~ 感谢L4nce的教程
czr27
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|