最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ebpf 隱藏 Android 任意進(jìn)程或任意文件實(shí)現(xiàn)連載 (一)

2023-06-06 22:17 作者:云知道B  | 我要投稿

一,介紹

本文圍繞著 linux 系統(tǒng) ls 命令,并實(shí)現(xiàn) ebpf 內(nèi)核命令攔截修改 ls 后最終效果等功能

演示視頻被投訴下架,說是涉嫌抄襲,所以寫了這么一個文字的內(nèi)容,來講解下項(xiàng)目的思想出處,和關(guān)鍵代碼的分析,并提供源碼給各位。

二、案例設(shè)計思路:

1. 分析linux系統(tǒng)下 ls 命令底層調(diào)用原理
2. 對 ls 命令內(nèi)部關(guān)鍵系統(tǒng)調(diào)用進(jìn)行hook攔截
3. 劫持并修改關(guān)鍵系統(tǒng)調(diào)用的返回值

三、分析 ls 工具底層實(shí)現(xiàn)

下面是對截圖中部分信息的解釋

四、eBPF關(guān)鍵代碼實(shí)現(xiàn)原理分析 (sys_enter_getdents64 探測)

ebpf 程序代碼實(shí)現(xiàn)僅分析內(nèi)核態(tài)程序模塊,代碼塊中將會對關(guān)鍵部分內(nèi)容進(jìn)行注釋說明,下方程序模塊主要目的是獲取 getdents64 方法的 dirp 地址為后續(xù)工作準(zhǔn)備

三步

- 確定發(fā)生 getdents64 系統(tǒng)調(diào)用的進(jìn)程是我需要的
- 獲取當(dāng)前目錄下所有文件對象的 dirp (可以理解為,目錄下每個文件都是一個結(jié)構(gòu)體,當(dāng)前獲取的 dirp 是所有文件的 連續(xù)的結(jié)構(gòu)體首地址)
- 將 dirp 地址保存到 maps 中提供給其他程序使用

getdents64? 方法原型可在命令行處使用 `man 2 getdents64` 查看 ,我會在劫持?jǐn)?shù)據(jù)章節(jié)中對他進(jìn)行深度的分析

五,eBPF關(guān)鍵代碼實(shí)現(xiàn)原理分析(sys_exit_getdents64 探測)

我們知道在 c 語言開發(fā)程序時候是經(jīng)常使用指針的,也就意味著有時候,當(dāng)使用 c 語言去獲取一些數(shù)據(jù)時,會提前傳入一個空的地址,當(dāng)數(shù)據(jù)獲取成功后在往這個地址中填充數(shù)據(jù),getdents64? 方法也是如此,所以這里使用到了探測點(diǎn)? `sys_exit_getdents64`。


以下程序模塊將會在 getdents64 方法拿到當(dāng)前目錄下所有文件信息后進(jìn)行一個處理工作,主要用于遍歷出當(dāng)前目錄下所有的文件的 dirp 結(jié)構(gòu)體地址,供后面的程序?qū)@些結(jié)構(gòu)體進(jìn)行操作,達(dá)到隱藏文件的目的。


當(dāng)前代碼塊主要工作 是找出我要隱藏的目標(biāo)文件的地址,找到后停止繼續(xù)查找,在這個過程中他會不斷的對 map_to_patch 進(jìn)行賦值,而 map_to_patch 結(jié)構(gòu)體中保存的永遠(yuǎn)是目標(biāo)文件的上一個文件,這樣在發(fā)生尾調(diào)用時候,被調(diào)用的程序?qū)玫侥繕?biāo)文件的上一個文件結(jié)構(gòu)體的地址,并進(jìn)行算法處理,更改內(nèi)存達(dá)到隱藏目標(biāo)的目的

六,下一個章節(jié),將會對隱藏文件的具體實(shí)現(xiàn)思路進(jìn)行詳細(xì)分析

源碼公開提供,需要的聯(lián)系我

感謝? https://github.com/pathtofile






ebpf 隱藏 Android 任意進(jìn)程或任意文件實(shí)現(xiàn)連載 (一)的評論 (共 條)

分享到微博請遵守國家法律
新郑市| 乐平市| 扶余县| 内江市| 乡宁县| 宁远县| 宜宾县| 会东县| 厦门市| 昭通市| 建宁县| 泾阳县| 称多县| 新龙县| 安塞县| 车致| 通山县| 蓝山县| 曲靖市| 南乐县| 清流县| 自治县| 贺兰县| 西盟| 沈丘县| 盖州市| 十堰市| 洛南县| 青浦区| 正安县| 龙胜| 铜陵市| 郓城县| 大英县| 维西| 延吉市| 垫江县| 安宁市| 牡丹江市| 四川省| 铅山县|