腾讯加固纯手工简易脱壳教程
2015-11-04 16:38
351 查看
声明:
1.本文转载自吾爱破解论坛:http://www.52pojie.cn/thread-428271-1-1.html,若有转载请注明出处,尊重原创作者。
2.本文仅供学习交流,请勿用于非法途径。
腾讯壳本身没对代码做什么保护,主要就是让apktool和dex2jar失效而已,其中的反调试更加没用了,手工修复完全不涉及调试,主要找到方法,处理完成,就跟原来的app一样了,所以腾讯壳属于很弱的加固壳
自己已经测试了一个demo和市场上的app,都没什么问题
本教程不说原理了,自己根据我做的去理解一下
腾讯壳针对apktool做了处理,使之无法反编译,之前zzage大牛的教程中提到的是manifest中加入了错误引用,现版本是处理的resources.arsc,加入了两个错误引用,触发了apktool的bug
使用shakaapktool可以正常反编译
1.搜索“fasten”,在attrs.xml和public.xml 中会发现此引用,删除这两行
引号中的”_?m@0x7f010023”根据不同app会不同,是连续的两行,删除即可
2.使用AndroidKiller ,导入我提供的脚本,在反编译完成后运行此脚本,脚本中有配置方法,提示完成后即可
3.删除smali中的A001.smali文件
4.在smali的目录下com/tencent/StubShell/TxAppEntry,搜索对此文件的引用,直接搜索TxAppEntry,如果发现在其它smali中调用的此文件,直接删除那句调用即可,最后删除stubShell文件夹
可能会在mainifest中发现,直接删除即可,如果Application标签的name值被替换成了com.tencent.StubShell.TxAppEntry
直接搜索.super Landroid/app/application,部分app的自定义Appliction可能引用有所出入,根据情况所变,填入程序自身的Appliction标签名,如果没有,直接删除
android:name=”com.tencent.StubShell.TxAppEntry”即可
5.最后就是删除lib下的libtxRes64.so和asserts下的这5个文件即可
PS:跟原版继续想比的话,多了残余的nop语句,但nop不参与程序逻辑,所以无影响,其次部分语句被替换成了
观察语句,在非静态方法中p0代表this,部分方法中会调用p0,在加固版本中,将this赋给了v0,最终调用的是v0,其实就是p0,也同样无影响
处理完成后回编译,至此app可以正常运行,也可以正常使用dex2jar查看源码了
1.本文转载自吾爱破解论坛:http://www.52pojie.cn/thread-428271-1-1.html,若有转载请注明出处,尊重原创作者。
2.本文仅供学习交流,请勿用于非法途径。
腾讯壳本身没对代码做什么保护,主要就是让apktool和dex2jar失效而已,其中的反调试更加没用了,手工修复完全不涉及调试,主要找到方法,处理完成,就跟原来的app一样了,所以腾讯壳属于很弱的加固壳
自己已经测试了一个demo和市场上的app,都没什么问题
本教程不说原理了,自己根据我做的去理解一下
腾讯壳针对apktool做了处理,使之无法反编译,之前zzage大牛的教程中提到的是manifest中加入了错误引用,现版本是处理的resources.arsc,加入了两个错误引用,触发了apktool的bug
使用shakaapktool可以正常反编译
1.搜索“fasten”,在attrs.xml和public.xml 中会发现此引用,删除这两行
<item type="attr" name="fasten" /> <item type="attr" name="_?m@0x7f010023" />
引号中的”_?m@0x7f010023”根据不同app会不同,是连续的两行,删除即可
2.使用AndroidKiller ,导入我提供的脚本,在反编译完成后运行此脚本,脚本中有配置方法,提示完成后即可
3.删除smali中的A001.smali文件
4.在smali的目录下com/tencent/StubShell/TxAppEntry,搜索对此文件的引用,直接搜索TxAppEntry,如果发现在其它smali中调用的此文件,直接删除那句调用即可,最后删除stubShell文件夹
可能会在mainifest中发现,直接删除即可,如果Application标签的name值被替换成了com.tencent.StubShell.TxAppEntry
直接搜索.super Landroid/app/application,部分app的自定义Appliction可能引用有所出入,根据情况所变,填入程序自身的Appliction标签名,如果没有,直接删除
android:name=”com.tencent.StubShell.TxAppEntry”即可
5.最后就是删除lib下的libtxRes64.so和asserts下的这5个文件即可
PS:跟原版继续想比的话,多了残余的nop语句,但nop不参与程序逻辑,所以无影响,其次部分语句被替换成了
加固版 # virtual methods .method public clearHeader()V .locals 1 move-object v0, p0 return-void .end method
原版 # virtual methods .method public clearHeader()V .locals 0 return-void .end method
观察语句,在非静态方法中p0代表this,部分方法中会调用p0,在加固版本中,将this赋给了v0,最终调用的是v0,其实就是p0,也同样无影响
处理完成后回编译,至此app可以正常运行,也可以正常使用dex2jar查看源码了
相关文章推荐
- 这个得学起来!超实用的格式塔原理小科普
- UINavigationController返回前面界面的几种方法
- Python 多线程 threading和multiprocessing模块
- Xamarin演练:绑定一个Objective-C类库
- 基于easyui的界面扩展
- Daily Scrumming* 2015.11.4(Day 16)
- IOS 通知 alarm 记录
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
- iOS小技巧-MJRefresh简单整合
- [hadoop2.7.1]I/O之一步一步解析Text(实例)
- 用50行Python代码制作一个计算器
- 各种排序总结(一)之--—冒泡排序、选择排序、快速排序
- LeetCode—212 Word Search II
- 使用 javamail 做邮箱验证功能
- 动态链接库(dll)简介
- 一个asp+ACCESS省市二级联动菜单程序
- spring security过滤器
- Ibatis 动态条件SQL语句
- 功能担当!超实用的网站页脚设计小技巧
- Android内存泄露的原因