android反编译
来源:互联网 发布:python获取 macd 编辑:程序博客网 时间:2024/05/16 07:03
反编译工具:apktool1.5.2.tar apktool-install-windows-r05-ibot.tar
反编译命令:apktool d Test.apk out
重新编译apk:apktool b out
签名工具:signapk
重签名:signapk Test.apk
Dalvik虚拟机:javac Test,java编译生成Test.class文件,然后执行命令:dx –dex –output=Test.dex Test.class 生成dex文件
查看java字节码:javap -c -classpath . Test
查看Dalvik字节码:dexdump.exe -d Test.dex
android系统启动过程:android系统启动加载完内核后,第一个执行的是init进程,init进程首先做的是设备的初始化工作,然后读取inic.rc文件并启动系统中的重要外部程序Zygote.Zygote进程是android所有进程的孵化器进程,他启动后会首先初始化Dalvik虚拟机,然后启动system_server并进入Zygote模式,通过socket等候命令。当执行一个android应用程序时,system_server进程通过socket方式发送命令给Zygote,Zygote收到命令后通过fork自身创建一个Dalvik虚拟机的实例来执行应用程序的入口函数,这样一个程序启动就完成了。
dex 文件反汇编工具1 baksmali 命令:java -jar baksmali.jar -o baksmaliout Test.dex 使用在apk修改、补丁、破解,广泛使用
dex 文件反汇编工具2 ddx 命令:java -jar ddx.jar -d dout Test.dex
编写编译smali文件,需android环境
smali 命令:java -jar smali.jar -o classes.dex HelloWorld.smali HelloWorld
adb push HelloWorld.zip /data/local/
adb shell dalvikvm -cp /data/local/HelloWorld.zip HelloWorld
反编译方法二:
快速破解:android 应用程序代码都存储在dex文件中,修改代码中的执行路径,使用ida pro 找到程序破解点对应的文件偏移。使用zip压缩软件取出apk中的dex文件,用ida pro打开进入反汇编界面,通过字符串的对应的id找到破解突破口,退出,使用16进制编辑工具打开dex文件(c32asm),定位到破解点,修改保存。
apk程序安装时会调用dexopt对dex进行验证与优化。dex文件中dexheader头的check字段标识了dex文件的合法性,被篡改过的dex文件在验证时计算checksum会失败,这样会导致程序安装失败,因此,我们需要重新计算并写回checksum值。使用dexfixer工具重写dex文件的checksum,
将dex替换到apk中,然后删除apk中的META-INF 文件夹,签名安装。
定位关键代码:
1.信息反馈法
2.特征函数法
3.顺序查看法
4.代码注入法
5.栈跟踪法
6.Method Profiling
- android反编译防止反编译
- Android反编译
- android 反编译
- android 反编译
- android 反编译
- Android 反编译
- android 反编译
- Android 反编译
- android反编译
- android 反编译
- Android反编译
- android 反编译
- Android反编译
- android 反编译
- android 反编译
- android反编译
- Android反编译
- Android反编译
- MindMapper中怎么实现便笺的添加
- git和SVN类似
- 《HBase权威指南》读书笔记4
- js简单实现国际化
- 判断所给二叉树是否是红黑树
- android反编译
- Android 百度地图开发(二)
- IPC机制之三:IPC方式(Bundle、文件共享、Messenger)
- .orig 等冲突文件的来源
- Spinner 使用方法小结
- App上架那点事
- iOS 单例的标准写法
- 输出时间对应的人数
- java系统学习(十八) --------Applet设计