本文总结网上一些做法,结合自己的经验,提供不反编、修改、重新编译apk而调试app的方法。
(1)打开ida,直接将apk拖到ida中,选择class.dex,如下图:
注意:也可以将apk解压之后,直接将class.dex拖拽至ida。
(2)双击打开class.dex后,设置debug选项
(3)点击set specific option,设定包名及入口方法
注意:如果是低版本的ida,可能没有fill from AndroidManifest.xml按钮,需要手动填写包名和入口方法。此时,可通过aapt dump xmltree test.apk AndroidManifest.xml > manifest.xml命令,将apk的manifest导入manifest.xml文件,然后查看manifest.xml获取包名和入口方法:
(4)设置进程选项
(5)确保手机开启调试支持,并关闭SELinux
(6)将ida安装目录下,dbgsrc目录中的android_server拷贝至手机并运行
(7)ida 运行即可
总结:这种方法并不需要过多其它操作,全部工作基本都是ida,adb映射也是ida自动操作,其它注意的就是确保手机开启调试支持,并关闭SELinux。
(1)同样需要确保手机开启调试支持,并关闭SELinux。
(2)同样需要将ida安装目录下,dbgsrc目录中的android_server拷贝至手机并运行
(3)需要将android_server监听端口通过adb forward出来
(4)以调试模式启动app
adb shell am start -D -n com.qipai.n1/com.fish.main.MainGameActivity
(5)打开ida并附加进程,设置debug选项
(6)打开DDMS,查看dalvik调试端口
(7)jdb连接,让app继续运行:jdb-connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
(8)ida调试app
(1)同样需要确保手机开启调试支持,并关闭SELinux。
(2)同样需要将ida安装目录下,dbgsrc目录中的android_server拷贝至手机并运行
(3)需要将android_server监听端口通过adb forward出来
(4)手机端运行app,然后ida附加进程即可
参考链接:https://blog.csdn.net/jiangwei0910410003/article/details/51500328
https://blog.csdn.net/deathmemory/article/details/51489818