Running frida without root
Running frida without root
S0cke3t关于ROOT
ARMV8的引入以及Google对安全的重视,使得Android获取ROOT权限很难。那个仅仅依靠一个apk就能实现手机ROOT的时代基本上一去不返了。apk提权基于的是Android系统的漏洞,目前Android已经很完善了,寻找漏洞非常困难。
目前获取ROOT基本都是通过刷安装包来实现。当然了Android模拟器可以很轻松获取ROOT权限。但是很多APP都对模拟器有检测,并且模拟器的架构基本上基于的是x86,与arm有很大的区别。
市面上大多数的手机都是非ROOT的,不能为了使用一次Frida就去刷机吧
————————————————
摘自: helloworlddm
确定手机cpu架构
1 |
|
APK设置
解包
1 | java -jar apktool_2.7.0.jar d |
编辑AndroidManifest
添加android:debuggable="true"
如果apk没有联网权限添加
1 | <uses-permission android:name= |
添加frida-gadget依赖库文件
下载Frida-gadget
依赖库文件https://github.com/frida/frida/releases
在解包lib
目录对应架构目录下添加frida-gadget
依赖库文件,并重命名为libfrida-gadget.so
如果apk未引用native
层函数,则手动创建相应目录
编辑Smali
修改smali
代码,加载libfrida-gadget.so
,通常是在Application
的onCreate
方法或者启动Activity
的onCreate
方法
代码含义
1 | .locals 1 //声明局部寄存器数量 |
重新打包APK
1 |
|
重签名APK
1 | apksigner.bat sign -verbose --ks secdemo.jks --v1-signing-enabled true --v2-signing-enabled |
覆盖安装APK
1 |
|
启动Frida-server
启动apk,此时apk会卡住,说明frida-server
正在等待连接
使用logcat
查看frida-server
是否启动成功
1 |
|
看到Listening on 127.0.0.1 TCP port 27042
说明firda-server
监听成功
Hook测试
接下来就是正常使用frida
客户端进行hook
了
随便写一个hook
脚本
加载脚本
1 |
|