主要内容:
frida-inject工具使用及说明
内置frida-inject工具到手机系统
1.frida-inject工具介绍
frida-inject是frida中提供的可以直接放到手机端执行注入js脚本到App程序进行hook的工具。也就是说使用frida-inject命令可以脱离PC端执行注入了。
平时我们用frida进行App注入的时候,多半都是PC端安装frida工具,然后把frida-server放到手机端。手机端启动frida-server开启端口监听,PC端的frida工具通过端口连接到frida-server然后相应的命令去让frida-server执行相应的操作。
2.frida-inject工具使用介绍
2.1 查看frida-inject命令说明
将frida-inject工具下载以后通过adb push命令放到手机,比如放到路径"/data/local/tmp/frida-inject",以下是adb push执行参考:
C:UsersQiang>adbpushE:workspace素材frida-inject-14.2.14-android-arm64/data/local/tmp/frida-inject E:workspace.lepushed,0skipped.37.7MB/s(41616776bytesin1.052s) C:UsersQiang>adbshellchmod777/data/local/tmp/frida-inject C:UsersQiang>
可以执行如下命令查看当前frida-inject命令的帮助说明:
C:UsersQiang>adbshell OnePlus3:/#cd/data/local/tmp OnePlus3:/data/local/tmp#ls d4484278-8615-41b0-9223-d849429bf888frida-injecttest.js OnePlus3:/data/local/tmp#./frida-inject-h Usage: frida[OPTION?] HelpOptions: -h,--helpShowhelpoptions ApplicationOptions: -D,--device=IDconnecttodevicewiththegivenID -f,--file=FILEspawnFILE -p,--pid=PIDattachtoPID -n,--name=NAMEattachtoNAME -r,--realm=REALMattachinREALM -s,--script=JAVASCRIPT_FILENAME -R,--runtime=qjs|v8Scriptruntimetouse -P,--parameters=PARAMETERS_JSONParametersasJSON,sameasGadget -e,--eternalizeEternalizescriptandexit -i,--interactiveInteractwithscriptthroughstdin --developmentEnabledevelopmentmode --versionOutputversioninformationandexit OnePlus3:/data/local/tmp#
以下是使用frida-inject命令执行App注入的简单测试,参考命令如下:
C:UsersQiang>adbshell OnePlus3:/#cd/data/local/tmp OnePlus3:/data/local/tmp#ls OnePlus3:/data/local/tmp#./frida-inject-fcom.android.jnidemo01-s/data/local/tmp/test.js-e< OnePlus3:/data/local/tmp #
以上执行的test.js脚本内容如下,一个比较简单的打印HelloWorld代码。
functionLog(info){ Java.perform(function(){ varLogCls=Java.use("android.util.Log"); LogCls.d("HelloWorld",info); }) } functionmain(){ Log("hellofrida-inject!"); Log("goodbyefrida-inject!"); } setImmediate(main);
3.frida-inject下载
根据自己手机系统平台选择下载相应的版本,下载地址:
https://github.com/frida/frida/releases
比如本篇中下载版本"frida-inject-14.2.14-android-arm64"。
4.内置frida-inject到系统操作
4.1 创建模块目录myfridainject
在源码根目录创建模块存储目录"frameworks/base/cmds/mycmds/fridainject"。参考如下:
qiang@ubuntu:~/lineageOs$mkdir-pframeworks/base/cmds/mycmds/fridainject qiang@ubuntu:~/lineageOs$
4.2 创建模块myfridainjectarm64
(1).将下载好的frida-inject程序拷贝到"myfridainject"目录,并重命名为"myfridainjectarm64",如下所示:
qiang@ubuntu:~/lineageOs/frameworks/base/cmds/mycmds/fridainject$ls-lamyfridainjectarm64 -rwxrw-rw-1qiangqiang416167764月318:54myfridainjectarm64 qiang@ubuntu:~/lineageOs/frameworks/base/cmds/mycmds/fridainject$ qiang@ubuntu:~/lineageOs/frameworks/base/cmds/mycmds/fridainject$
(2).在myfridainject目录下面同时创建模块配置文件Android.mk,并添加如下模块配置内容:
#///ADDSTART #///ADDEND LOCAL_PATH:=$(callmy-dir) include$(CLEAR_VARS) LOCAL_MODULE:=myfridainjectarm64 LOCAL_MODULE_CLASS:=EXECUTABLES LOCAL_SRC_FILES:=myfridainjectarm64 include$(BUILD_PREBUILT)
4.3 添加模块myfridainjectarm64到源码编译链中
以上创建模块myfridainjectarm64之后如果直接编译手机刷机镜像是不会被编译到手机系统里面去的。需要将模块"myfridainjectarm64"加入到源码模块编译链中才行。
安卓系统中添加模块到编译链需要在文件"buildmake argetproductase_system.mk"中将模块追加进去。添加myfridainjectarm64模块之后的参考:
#///ADDSTART #addfridaservertosystem #kernellogdxkernellogdgettopactivity #///ADDEND #Basemodulesandsettingsforthesystempartition. PRODUCT_PACKAGES+= myfridainjectarm64 kernellogdx ...
5.编译系统
执行如下命令编译手机刷机镜像:
qiang@ubuntu:~/lineageOs$sourcebuild/envsetup.sh qiang@ubuntu:~/lineageOs$breakfastoneplus3 qiang@ubuntu:~/lineageOs$brunchoneplus3
6.验证测试
执行如下命令测试是否内置成功(ubuntu下执行的命令):
qiang@ubuntu:~/lineageOs$adbshell OnePlus3:/#myfridainjectarm64--version 14.2.14 OnePlus3:/#
审核编辑:汤梓红
-
手机
+关注
关注
35文章
6870浏览量
157532 -
端口
+关注
关注
4文章
961浏览量
32042 -
程序
+关注
关注
117文章
3781浏览量
80990 -
命令
+关注
关注
5文章
683浏览量
22011
原文标题:内置frida-inject工具到手机系统
文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论