Apktool源码分析

                   Android-studio

一、编译

1.源码下载: https://github.com/iBotPeaches/Apktool

2.编译可以直接使用Apktool目录下的gradlew.bat命令,这里使用了Android Studio来编译源码,为后续调试做准备。

3.导入源码,步骤:File–>open–>源码路径,或者在导航页面直接选择import project

4.点击右边的Gradle(注意这里按钮可能贴边上,仔细找一下),点开找到一个类似刷新的按钮,点击一下即可

5.编译:Apktool的主要类在brut.apktool:apktool-cli模块里,运行”fatjar”任务生成项目的jar文件。

继续阅读“Apktool源码分析”

Android逆向系列之动态调试(七)–IDA调试so文件(下)

111111111

《Android逆向系列之动态调试(零)–入门篇》
《Android逆向系列之动态调试(一)–Smali注入》
《Android逆向系列之动态调试(二)–Eclipse调试apk》
《Android逆向系列之动态调试(三)–IDA调试dex》
《Android逆向系列之动态调试(四)–代码注入(JDB调试)》
《Android逆向系列之动态调试(五)–gdb调试》
《Android逆向系列之动态调试(六)–IDA调试so文件》
《Android逆向系列之动态调试(七)–IDA调试so文件(下)》

一、环境准备
工具详见< 工具篇>、破解的apk demo: Alictf2014_2.APK(反调试)、apktool

上一篇文章是讲解了IDA在无反调试的情况下调试so文件,这一篇文章自然就是解决在有反调试的情况下,如何使用IDA调试so文件,下一篇文章将会讲解dump dex的方法,敬请关注!
Read More

Android逆向系列之动态调试(五)–gdb调试

111111111

一、环境准备
ndk、模拟器(需要root权限,可以使用命令: adb root)

二、调试准备
1.gdbserver
找到gdbserver,路径是 ndk目录下的prebuilt文件夹,其中有三个Android开头的文件夹,选择对应自己的CPU,进入文件夹即是gdbserver(这里是选择android-arm/gdbserver)
接下里将gdbserver传到模拟器中,命令 : adb push gdbserver /system/bin (注意这里的路径,第一个需在当前目录下,否则需带绝对路径,第二个可自己选择)

问题分析:这里push到/system/bin可能会报错
Read More

Android逆向系列之动态调试(四)–代码注入(JDB调试)

111111111

一、环境
本次实验需要的环境有JDK、模拟器、adb
破解思路:通过jdb动态调试找到正确的变量,然后进行代码注入,修改Try again 为Hacked!!

二、准备
老操作,反编译APK,然后查看AndroidManifest.xml中是否有 android:debuggable=”true” 没有则在相应位置添加
启动模拟器或连接真机,然后安装apk –> adb install debug.apk
Read More

Android逆向系列之动态调试(一)–Smali注入

111111111

一、Smali注入
Smali注入又称Smali插桩(Smali Instrumentation),WIKI解释:它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。这里我们注意几个词,保证程序原有逻辑性、插入探针、抛出特征数据。这几个词也是我们samli注入需要关注的几个关键点所在。

二、调试环境
可以使用Apktool+eclipse(AS),或者Netbean
这里我的eclipse是比较老的版本,可能部分功能 新版对应有所不同,但这并不影响
Read More