反编译之利用AndroidStudio动态调试smali源码2

简介: 反编译之利用AndroidStudio动态调试smali源码

运行程序,设置远程调试项目

设置AndroidStudio为远程调试模式

  按下面的步骤操作,将AndroidStudio运行模式设置为远程调试模式。

1.打开Edit Configurations..

f3c498ee068bf5fb78135d40c302194.png

2.在出现的界面,点击左上角的“+”,在出现的下拉列表中再点击“Remote”

7eaaa3deadac44cfa7dfae7cd64c2b0.png

3.设置远程调试的名称和监听远程的端口

b27574270ba4f792db071730b514c55.png

在图中1处修改远程调试的名称,不修改直接用默认的也行。在2处修改远程调试服务端监听的端口,一般设置为“8700”,当然也可以设置成当前调试项目所在的端口,可以在“Monitor”工具中查看项目所在的端口。

7d4e27fe4233ed5bb2203f578667419.png

可以看到当前调试的项目有两个远程服务端端口,“8700”端口是每个调试程序默认的远程端口,如果不想每次运行程序都重新设置一下端口,2处设置成“8700”就行了,然后点击OK完成修改。这时你会发现可运行的程序中多出了一个你刚才设置的调试项目名称。

883e9c6dbb754809dc51749ec8fe973.png

如上图,这里我直接使用默认的调试名称,则可运行的项目中多出了一个“Unnamed”选项,我们选中这个就行了,这时Android Studio就在“8700”端口监听项目的运行了。

以调试模式运行并将进程映射到8700端口

  1. 用am命令,使目标程序以调试模式运行。
  2. 将进程映射到“8700”端口,使用以下命令
adb forward tcp:8700 jdwp:进程id

进程id可以在“Monitor”工具中查看,如下图

4529fecc7028388b9f26910fee80ef0.png

也可以运行adb命令查看,用adb命令查看进程id的命令如下

adb shell ps | grep 包名

完成了以上两步,接着在AndroidStudio点击Debug选项,如下图

792711ea6d4d3104a9518c3cb86cd35.png

然后就可以打断点调试项目了。

注:在点击Debug选项运行项目之前,需要先将“Monitor”工具关掉,否则会提示8700端口被占用,无法进行动态调试项目。

结束语

  动态调试步骤是有点复杂,其实熟悉之后就没多大感觉了,简单设置几下就行了。可能有的手机不能root,这时就只能修改“AndroidManifest.xml”文件了,修改之后不用在程序的启动界面添加代码也行,只要以am命令运行程序就行了。

相关文章:

反编译之将脱壳后的dex文件重新打包成apk

反编译之脱去乐固加固的壳

相关文章
|
4月前
|
Java Android开发 C++
2023安卓逆向 -- JNI学习(从开发到反编译)
2023安卓逆向 -- JNI学习(从开发到反编译)
26 0
|
9月前
|
Java Android开发
反编译之利用AndroidStudio动态调试smali源码1
反编译之利用AndroidStudio动态调试smali源码
|
9月前
|
搜索推荐 Java Linux
记一次编译Android源码
记一次编译Android源码
|
9月前
|
安全 Android开发
反编译之将脱壳后的dex文件重新打包成apk
反编译之将脱壳后的dex文件重新打包成apk
|
Java
反编译Apk之使用apktool、apktoolKit、jadx-gui
反编译Apk之使用apktool、apktoolKit、jadx-gui
601 0
反编译Apk之使用apktool、apktoolKit、jadx-gui
|
Java Android开发
apk 反编译
apk 反编译
1604 0
|
XML 算法 Java
反编译工具apktool使用问题
1 工具篇 反编译和回编用到的一些工具: apktool是解包APK 文件最常用的工具 keytool是一个Java数据证书的管理工具 jarsigner是JDK提供的针对jar包签名的通用工具 apksigner是Google官方提供的针对Andro...
3556 0