网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

在App中编写控制fridaserver启动和停止的代码逻辑简

时间:2023-08-22 09:27

人气:

作者:admin

标签:

导读:在章节添加自定义属性控制fridaserver启动和停止已经添加了相关控制属性。...

1.控制属性梳理

在章节"添加自定义属性控制fridaserver启动和停止"已经添加了相关控制属性。具体添加的属性功能如下:

#控制adbd重启的属性,为1表示重启
xro.start.myadb=

#控制fridaserver启动停止的属性
#0表示停止fridaserver1表示启动fridaserver
xro.start.myfrd=0

#设置fridaserver启动的端口
xro.start.myfrd.port=27042

2.封装属性读取和写入接口

在安卓系统中提供了SystemProperties类来进行系统属性获取和设置操作。但是由于该类是隐藏类,没有在sdk中提供。所以在我们开发的App中是不能直接调用的。可以采用以下两种方法进行该接口调用。

(1) 反射方式调用

在代码中通过反射方法使用SystemProperties类提供的接口。如下关键代码:

publicstaticStringget(Stringkey,StringdefValue){
try{
ClasssystemPropertiesCls=Class.forName("android.os.SystemProperties");
MethodsetKeyMethod=systemPropertiesCls.getDeclaredMethod("get",String.class,String.class);
setKeyMethod.setAccessible(true);
return(String)setKeyMethod.invoke(null,key,defValue);
}catch(Exceptioneee){
eee.printStackTrace();
}
returnnull;
}

publicstaticvoidset(Stringkey,Stringval){
try{
ClasssystemPropertiesCls=Class.forName("android.os.SystemProperties");
MethodsetKeyMethod=systemPropertiesCls.getDeclaredMethod("set",String.class,String.class);
setKeyMethod.setAccessible(true);
setKeyMethod.invoke(null,key,val);
}catch(Exceptioneee){
eee.printStackTrace();
}
}

(2).App工程中添加只编译方式的依赖库调用

在App工程中添加独立工程模块,然后声明和系统类SystemProperties一模一样的类。该类中声明需要调用的方法,但是不具体实现函数功能。比如参考如下:

packageandroid.os;

publicclassSystemProperties{
publicstaticStringget(Stringkey,Stringdef){
thrownewUnsupportedOperationException("SystemProperties");
}

publicstaticvoidset(Stringkey,Stringval){
thrownewUnsupportedOperationException("SystemProperties");
}
}

App工程配置如图所示:

f3828b78-407d-11ee-ac96-dac502259ad0.jpg

3.编译内置测试

将App工程中的AndroidManifest.xml中添加"android:sharedUserId="android.uid.system"",然后编译打包apk并内置到系统即可。

由于我们只是增加了App模块,所以只需要编译App模块然后adb push模块apk文件到手机进行测试。参考编译模块测试命令:

qiang@ubuntu:~/lineageOs$makeclean-ControlFrida
qiang@ubuntu:~/lineageOs$makeControlFrida
qiang@ubuntu:~/lineageOs$adbremount
[libfs_mgr]dt_fstab:Skipdisabledentryforpartitionvendor
[libfs_mgr]dt_fstab:Skipdisabledentryforpartitionvendor
[libfs_mgr]dt_fstab:Skipdisabledentryforpartitionvendor
remountsucceeded
qiang@ubuntu:~/lineageOs$adbpushout/target/product/oneplus3/system/app/ControlFrida/ControlFrida.apk/system/app/ControlFrida/ControlFrida.apk
out/target/product/oneplus3/system/app/ControlFrida/Co...pk:1filepushed.21.4MB/s(2754053bytesin0.123s)
qiang@ubuntu:~/lineageOs$
qiang@ubuntu:~/lineageOs$

4.验证测试

4.1 控制fridaserver主界面

内置的控制FridaServer的App功能控制界面如下所示:

f3a22262-407d-11ee-ac96-dac502259ad0.png

4.2 控制启动fridaserver

App控制启动frida-server测试如下所示:

f3b98196-407d-11ee-ac96-dac502259ad0.jpg

4.3 控制停止运行的fridaserver

App控制停止frida-server测试如下:

f3d7831c-407d-11ee-ac96-dac502259ad0.jpg

4.3 修改fridaserver端口后再重启

App控制修改fridaserver端口测试:

f3e8bdbc-407d-11ee-ac96-dac502259ad0.jpg

App端修改fridaserver端口重启之后,PC端需要使用adb进行端口重定向,否则电脑端frida工具是不能连上的。参考如下命令:

C:UsersQiang>adbforwardtcp:27049tcp:27049
C:UsersQiang>frida-ps-H127.0.0.1:27049

,否则电脑端frida工具是不能连上的。参考如下命令:

C:UsersQiang>adbforwardtcp:27049tcp:27049
C:UsersQiang>frida-ps-H127.0.0.1:27049





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信