幕后小黑

我的Android逆向学习之旅(四)——Debug动态调试
本章内容 配置Debug动态调试环境。通过Debug动态调试Smali代码,了解代码走向找到正确的执行代码。 An...
扫描右侧二维码阅读全文
23
2018/08

我的Android逆向学习之旅(四)——Debug动态调试

本章内容

配置Debug动态调试环境。通过Debug动态调试Smali代码,了解代码走向找到正确的执行代码。

AndroidStudio Smali调试环境

资源下载

AndroidStudio:这里不提供链接,开发安卓的这玩意肯定有,木有的请前往https://developer.android.com下载
AndroidStudio SmaliIdea插件:https://bitbucket.org/JesusFreke/smali/downloads/

导入Smali插件

打开AndroidStudio,左上角File -> Setting
Setting

Setting界面 -> Plugins -> Install plugin from disk 导入之前下载SmaliIdea插件
Plugins

安装完成后重启AndroidStudio即可。

Smali代码导入

Smali代码怎么来?之前用APK改之理打开过的APK就会生成Smali文件,右键Smali打开文件目录
Smali

即可知道对应文件所在的位置
File

在任意一个目录下(尽量不要出现中文)新建一个文件夹,将Smali文件夹复制进去,并且将Smali文件夹改名为src
src

打开AndroidStudio.左上角File -> New -> Improt Project.导入SmaliTest文件夹(此处对应你们自己创建的目录)然后会弹出如下选项
Improt

一直点NEXT,然后Final即可
这个时候我们的Smali代码就成功导入了
SmaliCode

配置Debug端口和SDK

首先配置SDK,左上角File -> Project Structure.设置SDK为Java1.8.这里看你们自己Java SDK版本了。
SDK
SDK

下面是设置端口,没有端口我们将无法Debug,注意如下图,端口写8700这个是Android Debug默认调试端口,如果你有修改过就改成你修改的。不了解你就写8700.Mac我不是很清楚,至少Windows是8700
DebugConfig
DebugConfig

之后点击Run -> Debug 就可以打开调试监听了。当然,还需要自己Smali代码中添加添加调试断点。这里就不多说了。
DebugConfig

这个时候就算有监听和Debug断点,进入APP会发现执行到断点处根本不会停下来。因为我们没有设置端口映射。
打开Android Device Monitor(下面简写ADM),并且打开我们需要Debug Apk就可以看到为什么我们要写8700的调试端口了。现在我们只要将18612映射到8700即可
DebugConfig

关闭ADM!!一定要关闭!!否则接下来操作将失败!!因为会出现端口冲突!!
打开命令行窗口 输入命令 adb forward tcp:8700 jdwp:18612
转发8700 端口 (这里 jdwp是自己ADM中要调试app的Online值 )
如果你的 Android Device Monitor 并没有显示需要调试的APK是因为它不是Debug APK。这个时候我们需要修改一下重新编译一个APK。
修改方式如下:在AndroidManifest文件中添加 android:debuggable="true" ,生成APK安装。这个时候重新运行APK打开ADM就可以看见了。
DebugConfig

搞定收工!!这个时候在重新点击run -> Debug 会提示Socket 连接成功。这个时候进入APP操作到断点的时候就可以触发动态调试。

总结

讲的顺序可能有点乱,我主要是按照自己的操作步骤来讲解,怎么操作方便怎么来。大家熟练就好了。
另外Debug动态调试的时候如果不知道加断点。通过View查找法,字符查找法等找到对应的操作点。
还有,如果调试过程中APK死亡了Online的值是会变的,需要重新打开ADM重新查看并且通过命令重新配置端口
好了Android Smali相关的逆向就讲的这里,另外调试还可以通过添加Log方式,这个参考《实战》文章中的添加函数的方式添加Log函数。这个请各位自己摸索。
肯定有人问如果核心代码在so里面怎么办?这个其实还有IDA爆破核心SO方法。近期肯定不会更新了,因为我还有别的东西最近要看并且整理出来。以后有时间在写。先给自己挖个坑。。。

1核/512M/20M独享/洛杉矶/128元/年 ---- 双十一特价 102.4元/年
2核/512M/20M独享/洛杉矶CN2 GT/229元/年/39元/月 ---- 双十一特价 183.2元/年/31.2元/月
2核/1G/5M独享/贵州电信/260元/年/40元/月 ---- 双十一特价 208元/年/32元/月
双十一活动时间:10月29日-11月19日!

Last modification:August 23rd, 2018 at 11:54 pm
If you think my article is useful to you, please feel free to appreciate

One comment

  1. siteground

    学习最烦心,我早已放弃!你继续加油吧!

Leave a Comment