安卓真机免root动态调试so-Android安全
前言 我看了一下,网上动态调试so的文章很多,但是都是在说需要root,我也特意在看雪论坛搜了一下,没有见到免root动调so的文章,因此特写一篇弥补空白本地环境 Win10系统
本人手机OPPO R9
IDA PRO 7.0
APK Editor Studio V1.4.0
android sdk
adb.exe
操作过程 打开安卓手机USB调试功能
手机数据线连接电脑,打开手机usb调试模式,我的OPPO R9开USB调试功能需要先打开开发者模式,进入开发者选项,方可开启USB调试模式,其它品牌手机请根据实际情况操作
adb连接手机
adb进入手机
查看手机ro.debuggable的值
ro.debuggable是rom级别的调试,如果ro.debuggable的值是1说明你的手机已经打开了调试功能,如果为0的话需要安装的安卓app已经打开了android:debuggable属性方可调试,通常正式发布出来的apk默认android:debuggable属性都是关闭的
我这里ro.debuggable的值是0,那么手机rom是没有打开调试功能的,就需要去让安装的app开启android:debuggable属性了
开启被调试APK的debuggable属性
我这里在某商场挑了一款游戏app,"放屁超人"
使用APK Editor Studio打开看看android:debuggable属性
上图,未见到android:debuggable属性,表示未开启,接下来开启android:debuggable属性,直接在APK Editor Studio编辑即可,该工具非常方便,在AndroidManifest.xml文件中的Application标签中添加android:debuggable=”true”属性。
如图箭头所指的就是我添加的,现在保存AndroidManifest.xml,然后重打包apk包括重签名,同样APK Editor Studio一键搞定,按ctrl+alt+s即可
安装apk到手机
APK Editor Studio打开重打包后的apk开始安装
安装前查看当前的可用设备
如图已经列出我的OPPO R9了,现在开始一键安装
按ctrl+i弹出下图,点击Install即可安装
我手机弹窗安装需要我本人授权
输入我手机的账号密码后开始了安装,开杯一口茶便安装完成了,APK Editor Studio也提示安装完成
上传ida的远程调试工具
android_server或者android_server64,在ida的dbgsrv目录里,我这里就懒得敲命令行上传了,直接使用APK Editor Studio上传,我上传到了/data/local/tmp目录下了,如下图:
提升权限
这一步是关键,使用的指令是run-as,指令格式:run-as 包名,解释:以某个包的身份来运行或操作。这里的包名是:com.xstargame.boommanwar,从APK Editor Studio反编译的结果里就可以找到
启动android_server
启动前需要将它从/data/local/tmp目录下拷贝过来,并授予权限,同时改个名称(以防有些app将android_server拉入了黑名单进行反调试)
启动它,如下图
启动adb端口转发
再开一个cmd窗口,进行端口转发,指令:
1adb forward tcp:23946 tcp:23946 以调试模式启动app
1adb shell am start -D -n 包名路径/.Activity 启动前我们先获取MainActivity
再调试模式启动app
此时真机已经进入Waiting For Debugger界面了
ida进行动态调试
打开ida,附加调试该app
如下图已经出现了待调试的app了
点击ok进入ida调试界面
F9一下,运行了,注意下图中已经是运行状态了
设置调试选项,让加载模块,例如so文件这类模块的时候断下来,如下图:
启动monitor,旧版的安卓SDK里是叫做ddms,如下图:
端口是8600,现在需要使用jdb进行连接这个端口正式开始调试,操作指令如下:
1jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8600 此时真机手机界面中的原本Waitting For Debugger之类的窗口就会关闭,可以正式对so文件进行动态调试了。
切换到ida,发现libmain.so已经加载进来了
加载进来之后我们可以去调试选项取消之前勾选的3个选项了,如下图:
到Modules窗口找到我们想要调试的SO,如下图:
双击so,可以看到这个它的函数列表,我们选择需要的函数进行下断即可调试了,如下图:
后语 有前言就有后事,不,后事靠你们了,剩下就是逆向和调试分析功底了,该过反调试的过去吧,该修补的补去吧。
页:
[1]