我看了一下,网上动态调试so的文章很多,但是都是在说需要root,我也特意在看雪论坛搜了一下,没有见到免root动调so的文章,因此特写一篇弥补空白
Win10系统本人手机OPPO R9IDA PRO 7.0APK Editor Studio V1.4.0android sdkadb.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窗口,进行端口转发,指令:
以调试模式启动app
启动前我们先获取MainActivity再调试模式启动app此时真机已经进入Waiting For Debugger界面了ida进行动态调试打开ida,附加调试该app如下图已经出现了待调试的app了点击ok进入ida调试界面F9一下,运行了,注意下图中已经是运行状态了设置调试选项,让加载模块,例如so文件这类模块的时候断下来,如下图:启动monitor,旧版的安卓SDK里是叫做ddms,如下图:端口是8600,现在需要使用jdb进行连接这个端口正式开始调试,操作指令如下:
此时真机手机界面中的原本Waitting For Debugger之类的窗口就会关闭,可以正式对so文件进行动态调试了。切换到ida,发现libmain.so已经加载进来了加载进来之后我们可以去调试选项取消之前勾选的3个选项了,如下图:到Modules窗口找到我们想要调试的SO,如下图:双击so,可以看到这个它的函数列表,我们选择需要的函数进行下断即可调试了,如下图:
有前言就有后事,不,后事靠你们了,剩下就是逆向和调试分析功底了,该过反调试的过去吧,该修补的补去吧。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
mb_foyotena as本来就支持lldb调试so啊
只是来打酱油 你这种要过签名验证才行
学习了,除开三星的可以run as