色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

配置fridaserver為后臺進(jìn)程

哆啦安全 ? 來源:哆啦安全 ? 2023-07-29 15:07 ? 次閱讀

1.安卓系統(tǒng)中配置后臺進(jìn)程討論

在以下討論兩種selinux開啟的情況啟動(dòng)frida-server的方法。

1.1 init.xx.rc文件中配置

在安卓系統(tǒng)中配置native后臺服務(wù),主要是在init.xx.rc文件中添加服務(wù)配置信息。比如adbd后臺服務(wù)配置如下:

#adbdiscontrolledviapropertytriggersininit..usb.rc
serviceadbd/system/bin/adbd--root_seclabel=usu:s0
classcore
socketadbdseqpacket660systemsystem
disabled
seclabeluadbd:s0

這種方法配置主要是通過init進(jìn)程進(jìn)行啟動(dòng)管理。如果配置的后臺進(jìn)程服務(wù)的功能需要超級root權(quán)限操作的,最好關(guān)閉selinux的情況下進(jìn)行配置。

以下是通過init.xx.rc文件中配置啟動(dòng)fridaserver的一個(gè)參考配置:

servicemyfridaserver/system/bin/myfridaserverarm64-D
classmain
userroot
seclabeluinit:s0

1.2 進(jìn)程中啟動(dòng)服務(wù)配置

可以選擇合適的后臺進(jìn)程,調(diào)用 system函數(shù)進(jìn)行服務(wù)啟動(dòng)。比如選擇超級 root權(quán)限的adbd、或者root權(quán)限的init進(jìn)程。

1.3 兩種方式的測試

在內(nèi)置fridaserver的過程中,分別對以上兩種方式進(jìn)行了測試。

  • init.xx.rc中國配置

    在開啟 selinux的情況下,由于 init進(jìn)程被限制了很多功能,比如禁止ptrace其他進(jìn)程,會(huì)導(dǎo)致失敗。所以該種配置需要根據(jù)需要內(nèi)置服務(wù)的功能進(jìn)行分析,是否適合。雖然init進(jìn)程運(yùn)行的是root用戶運(yùn)行,但是selinux的域?yàn)?strong style="font-size:inherit;color:inherit;line-height:inherit;">init,被限制了很多特權(quán)功能。如果不在乎selinux,可以關(guān)閉selinux之后進(jìn)行內(nèi)置。

  • 進(jìn)程中啟動(dòng)服務(wù)

    進(jìn)程中啟動(dòng)服務(wù)主要是需要找到權(quán)限高的進(jìn)程作為母體。比如像 init進(jìn)程、adbd進(jìn)程。在測試過程中,selinux打開的情況下雖然init進(jìn)程root用戶運(yùn)行,但是selinux標(biāo)簽init限制了很多特權(quán),所以不大適合啟動(dòng)fridaserver。在上一篇文章中已經(jīng)實(shí)現(xiàn)了adbdroot權(quán)限運(yùn)行,并且運(yùn)行標(biāo)簽變成了usu:s0,所以adbd作為母體啟動(dòng)服務(wù)之后,服務(wù)就存在了超級權(quán)限,比較適合fridaserver這種需要特權(quán)的服務(wù)。

    以下是通過命令查看的系統(tǒng)init進(jìn)程和adbd進(jìn)程運(yùn)行的selinux域的情況:

C:UsersQiang>adbshellps-Z|findstr"adbd"
usu:s0root1143111359604564poll_schedule_timeout794c9aa3c8Sadbd

C:UsersQiang>adbshellps-Z|findstr"init"
uinit:s0root10869848240SyS_epoll_wait76f889a248Sinit
uvendor_init:s0root4541397365256poll_schedule_timeout79937963c8Sinit
uvendor_init:s0root4551389684328poll_schedule_timeout74340f23c8Sinit

二、adbd中啟動(dòng)fridaserver開發(fā)

2.1 查找合適的啟動(dòng)入口

adbd啟動(dòng)過程中,會(huì)根據(jù)傳入的參數(shù)如果存在root_seclabel會(huì)將adbd進(jìn)程的域由uadbd:s0修改為"usu:s0"域。具體相關(guān)邏輯位于文件"systemcoreadbdaemonmain.cpp" 中,代碼如下:

staticvoiddrop_privileges(intserver_port){
ScopedMinijailjail(minijail_new());

...
if(should_drop_privileges()){
...
}else{
//minijail_enter()willabortifanypriv-droppingstepfails.
minijail_enter(jail.get());

if(root_seclabel!=nullptr){
//修改當(dāng)前進(jìn)程的域?yàn)閡su:s0,從而獲得超級權(quán)限
if(selinux_android_setcon(root_seclabel)0){
LOG(FATAL)<"CouldnotsetSELinuxcontext";
}
//TODO可以考慮在此處添加啟動(dòng)的邏輯
}
...
}
}
}

通過以上分析我們可以在adbd設(shè)置root_seclable成功之后加入啟動(dòng)frida-server的啟動(dòng)邏輯。

2.2 添加啟動(dòng)核心代碼

添加如下方法實(shí)現(xiàn)啟動(dòng) fridaserver進(jìn)程。

//線程處理函數(shù),主要是判斷手機(jī)重啟完成之后再去啟動(dòng)**fridaserver**
void*work_thread_once(void*m)
{
MYLOGD("work_threadstart");

while(1>0)
{
std::stringprop=android::GetProperty("sys.boot_completed","");

MYLOGD("start_fridaserver_oncesys.boot_completed:%s",prop.c_str());
boolboot_ok=(prop=="1");
//boolbool_myfrd=(myfrd=="1");
MYLOGD("start_fridaserver_oncesys.boot_completed:%s",prop.c_str());
if(boot_ok)
{

break;

}
sleep(4);
}

std::stringport_str="27042";
MYLOGD("start_fridaserver_oncestarttolaunchmyfridaserverarm64");
charcmd_buf[128]={0};
sprintf(cmd_buf,"killallmyfridaserverarm64
sleep1
myfridaserverarm64-l0.0.0.0:%s-D",port_str.c_str());
system(cmd_buf);
MYLOGD("start_fridaserver_oncestartmyfridaserverarm64finish");

returnNULL;
}

//創(chuàng)建線程等待手機(jī)啟動(dòng)完成之后啟動(dòng)fridaserver
staticvoidstart_fridaserver_once()
{

MYLOGD("start_fridaserver_oncestart");
pthread_tthread_id;
inti=9;
pthread_create(&thread_id,NULL,&work_thread_once,(void*)&i);
MYLOGD("start_fridaserver_oncethreadiscreated!");

}

以上邏輯中判斷手機(jī)完全重啟了才啟動(dòng)。

在設(shè)置 root_label的地方加入調(diào)用,參考代碼如下:

staticvoiddrop_privileges(intserver_port){
ScopedMinijailjail(minijail_new());

...
if(should_drop_privileges()){
...
}else{
//minijail_enter()willabortifanypriv-droppingstepfails.
minijail_enter(jail.get());

if(root_seclabel!=nullptr){
//修改當(dāng)前進(jìn)程的域?yàn)閡su:s0,從而獲得超級權(quán)限
if(selinux_android_setcon(root_seclabel)0){
LOG(FATAL)<"CouldnotsetSELinuxcontext";
}
//TODO可以考慮在此處添加啟動(dòng)的邏輯
start_fridaserver_once();
}
...
}
}
}

3.編譯測試

3.1 編譯adb模塊

參考命令:

//完整編譯手機(jī)鏡像參考命令
qiang@ubuntu:~/lineageOs$sourcebuild/envsetup.sh
qiang@ubuntu:~/lineageOs$breakfastoneplus3
qiang@ubuntu:~/lineageOs$brunchoneplus3

//只編譯adbd模塊參考
qiang@ubuntu:~/lineageOs$makeadbd
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=10
LINEAGE_VERSION=17.1-20210324-UNOFFICIAL-oneplus3
...

3.2 push到手機(jī)

由于之前我們已經(jīng)刷了一次自己編譯的手機(jī)鏡像。所以此處只修改了adbd模塊,可以只編譯單個(gè)模塊替換手機(jī)系統(tǒng)的就可以。參考命令:

qiang@ubuntu:~/lineageOs$adbdevices
*daemonnotrunning;startingnowattcp:5037
*daemonstartedsuccessfully
Listofdevicesattached
d5cc1133device

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/bin/adbd/system/bin/adbd
out/target/product/oneplus3/system/bin...shed.0.9MB/s(30608bytesin0.034s)
qiang@ubuntu:~/lineageOs$
qiang@ubuntu:~/lineageOs$

3.3 重啟手機(jī)測試

參考如下命令:

//查看當(dāng)前內(nèi)置的fridaserver是否開機(jī)之后自動(dòng)啟動(dòng)
C:UsersQiang>adbreboot
C:UsersQiang>adbshellps-Z|findstr"myfridaserver"
usu:s0root3216113942443008poll_schedule_timeout7da95663c8Smyfridaserverarm64

//測試手機(jī)frida-server是否能連接上
C:UsersQiang>frida-ps-U
PIDName
-------------------------------------------------------
2190.dataservices
3290.dataservices
2305.qtidataservices
...


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    203

    瀏覽量

    13960
  • 安卓系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    273

    瀏覽量

    20554
  • root
    +關(guān)注

    關(guān)注

    1

    文章

    86

    瀏覽量

    21389

原文標(biāo)題:配置fridaserver為后臺進(jìn)程

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux 查看進(jìn)程和刪除進(jìn)程

    還是用于監(jiān)控后臺進(jìn)程地工作情況,因?yàn)?b class='flag-5'>后臺進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信地,所以如果需要檢測其情況,便可以運(yùn)用 ps 命令了.該命令語法格式如下:ps [選項(xiàng)]-e 顯
    發(fā)表于 04-24 00:04

    打開Multisim沒有窗口,但是后臺進(jìn)程,怎么解決?

    第一次安裝好用著正常。這半年過去了,需要使用它,但是打不開了。打開程序屏幕沒反應(yīng),但是后臺進(jìn)程;再打開一次程序就多一個(gè)進(jìn)程,還是沒窗口。從10.0到14.0版本都安裝過了,結(jié)果一樣,都打不開。請問
    發(fā)表于 11-23 15:15

    麒麟開源堡壘機(jī)后臺進(jìn)程列表及DEBUG分享!

    1. 認(rèn)證授權(quán)進(jìn)程:二進(jìn)制程序位置: /opt/freesvr/audit/authd/***in/freesvr-authd配置文件位置:/opt/freesvr/audit/authd/etc
    發(fā)表于 08-25 22:18

    i.MX6ULL終結(jié)者進(jìn)程基礎(chǔ)-進(jìn)程創(chuàng)建

    代碼在process/目錄下。進(jìn)程類型:1.交互進(jìn)程:由shell啟動(dòng),用戶和計(jì)算機(jī)進(jìn)行問答的進(jìn)程。2.批處理進(jìn)程:不與特定終端相關(guān)聯(lián),將任務(wù)提交到等待隊(duì)列按順序執(zhí)行的
    發(fā)表于 03-03 14:11

    前臺運(yùn)行和后臺運(yùn)行二者有何區(qū)別

    core dump時(shí)有何區(qū)別 前臺進(jìn)程如何生成core dump 后臺進(jìn)程如何生成core dump 正文...
    發(fā)表于 11-04 08:18

    LabVIEW可執(zhí)行文件作為后臺進(jìn)程運(yùn)行

    LabVIEW可執(zhí)行文件作為后臺進(jìn)程運(yùn)行已經(jīng)使用LabVIEW Application Builder將LabVIEW VI構(gòu)建獨(dú)立應(yīng)用程序(可執(zhí)行文件)中。可執(zhí)行文件不需要任何用戶輸入,因此想將
    發(fā)表于 03-18 21:15

    HarmonyOS后臺任務(wù)管理開發(fā)指南上線!

    : 代理提醒是指應(yīng)用退后臺進(jìn)程終止后,系統(tǒng)會(huì)代理應(yīng)用做相應(yīng)的提醒。適用于定時(shí)提醒類業(yè)務(wù),當(dāng)前支持的提醒類型包括倒計(jì)時(shí)、日歷和鬧鐘三類。 圖 1 后臺任務(wù)類型選擇 保障選擇到合適的
    發(fā)表于 11-29 09:58

    iPhone后臺清理進(jìn)程是否真的能省電?

    去年年中,蘋果官方確認(rèn)清理iPhone后臺是無用功的消息傳遍了各個(gè)數(shù)碼角落,然而事實(shí)并非如蘋果公司回復(fù)的那般自信,清理進(jìn)程有時(shí)真的能省電。
    的頭像 發(fā)表于 06-18 09:46 ?4120次閱讀

    你了解過Linux后臺服務(wù)進(jìn)程的開發(fā)過程?

    守護(hù)進(jìn)程(Daemon)是運(yùn)行在后臺的一種特殊進(jìn)程。它獨(dú)立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。守護(hù)進(jìn)程是一種很有用的進(jìn)程
    發(fā)表于 05-13 09:21 ?1913次閱讀

    Linux 后臺運(yùn)行程序

    。jobsjos?命令用于顯示 Linux 中的任務(wù)列表及任務(wù)狀態(tài),包括后臺運(yùn)行的任務(wù)。該命令可以顯示任務(wù)號及其對應(yīng)的進(jìn)程號。其中,任務(wù)號是以普通用戶的角度進(jìn)行的,而進(jìn)程號則是從系統(tǒng)管理員的角度來看的。一個(gè)
    發(fā)表于 04-02 14:41 ?787次閱讀

    谷歌將限制 Chrome 標(biāo)簽頁后臺進(jìn)程,增加筆記本續(xù)航

    谷歌希望通過限制標(biāo)簽頁的后臺進(jìn)程來大幅降低其Chrome瀏覽器的能耗。
    的頭像 發(fā)表于 07-07 14:04 ?2486次閱讀

    Linux 安全模塊:守護(hù)進(jìn)程和套接字

    守護(hù)進(jìn)程通常是在后臺觀察操作以等待狀態(tài)、服務(wù)于特定子系統(tǒng)并確定整個(gè)系統(tǒng)的操作規(guī)則的實(shí)用程序。例如,一個(gè)守護(hù)進(jìn)程配置監(jiān)控打印服務(wù)的狀態(tài)。
    發(fā)表于 08-26 10:01 ?672次閱讀

    添加自定義屬性控制fridaserver啟動(dòng)和停止

    添加自定義屬性控制fridaserver啟動(dòng)和停止
    的頭像 發(fā)表于 08-09 10:08 ?1709次閱讀
    添加自定義屬性控制<b class='flag-5'>fridaserver</b>啟動(dòng)和停止

    在App中編寫控制fridaserver啟動(dòng)和停止的代碼邏輯簡析

    在章節(jié)"添加自定義屬性控制fridaserver啟動(dòng)和停止"已經(jīng)添加了相關(guān)控制屬性。
    的頭像 發(fā)表于 08-22 09:27 ?2565次閱讀
    在App中編寫控制<b class='flag-5'>fridaserver</b>啟動(dòng)和停止的代碼邏輯簡析

    編譯官方fridaserver或者strongFrida并替換系統(tǒng)內(nèi)置版本

    下載官方frida源碼并編譯安卓版本的fridaserver,然后替換內(nèi)置版本。
    的頭像 發(fā)表于 10-24 16:51 ?3138次閱讀
    主站蜘蛛池模板: 9420高清免费观看在线大全| av av在线| S货SAO死你BL大点声叫BL| 国产白丝精品爽爽久久久久久蜜臀| 黄色小说男男| 欧美亚洲精品一区二三区8V| 香蕉久久夜色精品国产小说| 在线播放一区| 多肉np一女多男高h爽文现代| 久久草香蕉频线观| 色迷迷导航| 在线精品视频免费观看| 丰满女友bd高清在线观看| 久久AV国产麻豆HD真实| 日韩亚洲中文欧美在线| 在线观看免费视频播放视频| 国产精品18久久久久久欧美| 噜噜噜在线AV免费观看看| 午夜日本大胆裸艺术| WRITEAS塞红酒瓶| 精品四虎国产在免费观看| 三级黄色在线视频中文| 中文字幕乱码在线人视频| 国产午夜亚洲精品不卡电影| 女仆翻身大作战| 夜夜精品视频一区二区| 国产成人免费网站在线观看| 男同志vdieos免费| 亚洲一卡久久4卡5卡6卡7卡 | 久久精品18| 天天看高清影视在线18| 999视频在线观看| 九九精品久久| 校花被扒衣吸乳羞羞漫画| 办公室沙发口爆12P| 美美哒免费影视8| 一级毛片两人添下面| 国产午夜视频在永久在线观看| 入禽太深在线观看免费高清| 99精品欧美一区二区三区美图| 久久国产主播福利在线|