apk反编译——基础是内功,得牢,飞跃还得多看源码,不同思想的碰撞才能产生火花,加油!!!!!!!!
1、获取java源代码
1.1 dex2jar&jd-gui
dex2jar:将apk反编译成class文件(classes.dex转化成jar文件)
jd-gui:查看APK中classes.dex转化成出的jar文件(save既得java源码文件压缩包rar)
1.2 smali2java(适用于只是选择性查看个别文件的情况)
smali2java:这个软件比较好的地方是可以直接解析apk查看java源码http://www.hensence.com/cn/smali2java/
2、获取图片和布局文件
2.1 apktool
apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看
cmd命令:apktool d xxx.apk yyy(反编译)
apktool b yyy(回编译)
http://ibotpeaches.github.io/Apktool/install/能下载最新的apktool.jar文件,要实现apktool的反编功能还需aapt.exe、apktool.bat两个文件配套使用,这两个文件随便在网上下载一个apktool版本就有,这里不再提供网址下载
2.2 AXMLPrinter2.jar(适用于单纯查看AndroidManifest.xml的情况)
AXMLPrinter2.jar:apk里的AndroidManifest.xml 为二进制文件,可通过AXMLPrinter2.jar包反编译出来
cmd命令行运行一下命令:java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest2.xml
apktool如果反编成功,就会有AndroidManifest.xml文件存在,AXMLPrinter2.jar只是针对apktool反编不成功,需要单独反编AndroidManifest.xml的情况
3、小结:
3.1 较出名的apk项目一般都有自己的加密策略(比较大众的加密工具有梆梆加固、爱加密等),直接反编出来的东西一般都不能直接看,这时就需要有针对性的解密反编策略
3.2 反编工具尽量用最新,技术在不断进步,Google对android的升级也是出于保护包括我们在内的程序员的知识产权,交流和保护从来都是个博弈的局面,希望我们都能成长起来,保护自己的产出,尊重他人的劳作
4、特别说明
反编的目的在于提高程序员个人代码技术,强烈鄙视并反对诸如打包党利用反编技术恶意套用他人劳动成果为己牟利等有损行业整体健康发展的行为
- TRUNK的作用功能.什么是TRUNK
- java 常见异常
- iOS中UItableView 的重用机制原理
- TRUNK的作用功能.什么是TRUNK
- 2016网易实习生编程题:数组中两个数的和等于sum
- is_a原则和has_a原则
- mini2440 i2c设备支持
- Spring中Resource对象的获取
- [BZOJ2243]染色 做题笔记
- 面试题59:二叉树序列化
- Java day08 异常处理与正常代码分离 图形面积
- python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表
- Django: 之数据库导入、迁移和联用
- leetcode——278—— First Bad Version
- 爬虫 Cookie 学习
- bootstraps对于低于IE9版本的支持
- 共同学习Java源码--常用数据类型--String(二)
- submit text3常用快捷键
- C# Stream 和 byte[] 之间的转换
- DR(Direct Routing)介绍