吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10081|回复: 24
收起左侧

[原创] themia/winlciense壳64位脱壳总结

  [复制链接]
cndml 发表于 2019-10-1 15:58
本帖最后由 cndml 于 2019-10-1 16:03 编辑

闲来没事脱了几个64位的tmd壳,破解道路相当曲折,在此分享一下脱壳经验。
1、先说一下64位程序。对64位程序刚开始研究,了解的比较少,只说一下与脱壳有关的。相比32位程序,64位程序代码段不需要重定位,地址操作全部是相对引用。
2、tmd壳在64位程序上,不知道是破解版的原因,还是别的,加密强度相比32位有所降低,api虚拟不再像32程序散落在内存中,而是集中在壳段内,这给修复api带来不少麻烦。
3、具体程序就不发了,说一下自己脱壳修复的过程。调试器使用x64dbg,iat修复使用scaylla。
4、第一步寻找oep,我采用的是esp定位,由于tmd壳在调到oep的时候,会执行一个ret指令,而oep地址就保存在esp里,通过在esp-8下断点,然后判断当前指令的第一个字节是否是C2就可以判断是否到了oep,采用这个办法主要是X64DBG的脚本不是很强大,加之对指令了解不多。
5、第二步,修复加密的api,跟32位程序一样,64位程序三个系统dll会有部分api被vm加密,ff25 ff15被修改为e8XXXX90的形式,这个通过在api的地址下访问断点,可以跟踪到加密前的api函数,写个简单脚本记录一下api函数就可以了,到达oep后,把加密api函数地址恢复了就可以了。
6、修复e8 call,这个是任务比较艰巨的,由于64位程序vm后的api地址调用保存在壳段,这给恢复iat带来相当大的工作量。
7、首先模仿LCT-AT的方法,用脚本申请内存,自建一段程序遍历代码段,把所有e8 call保存下来,然后,一段一段的执行vm后的api,在ret返回的时候,判断是否是合法的系统api地址,是则保存,这里有个问题,需要根据返回地址在esp里的位置,判断是ff15  还是ff25,同时由于x64dbg的问题,脚本运行时间稍长就会导致调试器崩溃,只能恢复几十个api后,用hex把内存保存出来,免得前功尽弃,这个过程是相当熬人。
8、全部api恢复后,用x64dbg自带的dump插件或者用scaylla把程序dump出来,用scaylla恢复iat表,脱壳就基本成功了。
9、如果是dll程序,还需要重定位表,64位程序没有好的重定位工具,对tmd壳来说,不需要,跟踪壳解码过程可以找到完整的重定位表,直接dump出来就可以了,然后直接附在程序尾部即可。
10、这样脱壳的程序,运行没有问题,但是重新加壳会有问题,因为iat写在最后一个区段,重新用winlicense加壳的时候会提示文件头与winlciense不匹配,加壳后的程序不能正常运行。没有找到现成的工具,只好手动把iat表复制到IDAta段的尾部原来的iat位置,这个很好找,找个类似程序比较一下,发现一段有规律的乱码就是被改写后的iat位置,把iat表的地址手工改为新地址就可以了。
至此,一个tmd可就完美脱掉了。

免费评分

参与人数 8吾爱币 +15 热心值 +8 收起 理由
幼稚子吟 + 1 + 1 学习
luodaoyi + 1 + 1 我很赞同!
jy04468108 + 1 + 1 你的qq名是不是叫“披羊皮的lang”
金化铯 + 1 + 1 用心讨论,共获提升!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
liangfuyin + 1 + 1 表哥厉害,感谢记录。
qzr + 1 + 1 用心讨论,共获提升!
小糊涂虫 + 2 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| cndml 发表于 2021-4-5 16:26
用力抱着。 发表于 2021-1-13 17:19
是个dll文件 修复后有13个函数有问题  用下段法能找到一个   其他的都找不到

找到肯定能找到,只要eip到了系统领空,还找不到api地址么,只要程序能正常运行,加壳程序肯定要动态修改导入表,导入表加密只是把直观易懂的原始导入表,换个存储方式而已,耐心加细心,恢复导入表没啥难度
jy04468108 发表于 2019-10-16 08:59
citrix 发表于 2019-10-15 18:58
搜索了一下qq的添加好友,都是披着羊皮的狼,没有披羊皮的lang

我直接爆出正确的名字,岂不是会有很多人去加他?
你看楼主的TMD和WL的全称都是故意写错的,发现没。
xie83544109 发表于 2019-10-1 16:20
ly765893958 发表于 2019-10-1 17:21
大佬  学习了
jupiter6 发表于 2019-10-1 18:43
好文章 学习了   不知楼主对64位的WL授权bypass有研究没
lovemsq 发表于 2019-10-1 19:07
winlciense壳64位脱壳总结 [修改]
头像被屏蔽
luli1111 发表于 2019-10-2 08:12
提示: 作者被禁止或删除 内容自动屏蔽
hn123 发表于 2019-10-2 09:45
楼主很强啊,你的分享对很多人都有用,对于一个刚学脱壳的学者来说太难了,你要是在能出个视频就好了。不过也可以顶一下,点击一下先。虽然看不懂,但可以从文字上看得到大概的方向。谢谢。
小可爱~ 发表于 2019-10-2 17:12
xie83544109 发表于 2019-10-1 16:20
虽然不懂,还是要学习一下

鸽, 在论坛打水漂打了10年了,
xie83544109 发表于 2019-10-2 18:02
小可爱~ 发表于 2019-10-2 17:12
鸽, 在论坛打水漂打了10年了,


介都让楼主发现鸟
liangfuyin 发表于 2019-10-2 19:17
表哥厉害,感谢记录。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-27 02:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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