青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-162  評論-223  文章-30  trackbacks-0
描述
   攔截Linux動(dòng)態(tài)庫API的常規(guī)方法,是基于動(dòng)態(tài)符號鏈接覆蓋技術(shù)實(shí)現(xiàn)的,基本步驟是
    1. 重命名要攔截的目標(biāo)動(dòng)態(tài)庫。
    2. 創(chuàng)建新的同名動(dòng)態(tài)庫,定義要攔截的同名API,在API內(nèi)部調(diào)用原動(dòng)態(tài)庫對應(yīng)的API。這里的同名是指與重命名前動(dòng)態(tài)庫前的名稱相同。
   顯而易見,如果要攔截多個(gè)不同動(dòng)態(tài)庫中的API,那么必須創(chuàng)建多個(gè)對應(yīng)的同名動(dòng)態(tài)庫,這樣一來不僅繁瑣低效,還必須被優(yōu)先鏈接到客戶二進(jìn)制程序中(根據(jù)動(dòng)態(tài)庫鏈接原理,對重復(fù)ABI符號的處理是選擇優(yōu)先鏈接的那個(gè)動(dòng)態(tài)庫)。 另外在鉤子函數(shù)的實(shí)現(xiàn)中,若某調(diào)用鏈調(diào)用到了原API,則會(huì)引起死循環(huán)而崩潰。本方法通過直接修改ELF文件中的動(dòng)態(tài)庫API入口表項(xiàng),解決了常規(guī)方法的上述問題。

特點(diǎn)
   1. 不依賴于動(dòng)態(tài)庫鏈接順序。
   2. 能攔截多個(gè)不同動(dòng)態(tài)庫中的多個(gè)API。
   3. 支持運(yùn)行時(shí)動(dòng)態(tài)鏈接的攔截。
   4. 鉤子函數(shù)內(nèi)的實(shí)現(xiàn)體,若調(diào)用到原API,則不會(huì)死循環(huán)。


實(shí)現(xiàn)
   攔截映射表
      為了支持特點(diǎn)2和3,建立了一個(gè)攔截映射表,這個(gè)映射表有2級。第1級為ELF文件到它的API鉤子映射表,鍵為ELF文件句柄,值為API鉤子映射表;第2級為API到它的鉤子函數(shù)映射表,鍵為API名稱,值為包含最老原函數(shù)地址和最新鉤子函數(shù)地址的結(jié)構(gòu)體,如下圖
      當(dāng)最先打開ELF文件成功時(shí),會(huì)在第1級映射表中插入記錄;反之當(dāng)最后關(guān)閉同一ELF文件時(shí),就會(huì)從中移除對應(yīng)的記錄。當(dāng)?shù)谝淮螔煦^動(dòng)態(tài)庫API時(shí),就會(huì)在第2級映射表插入記錄;反之卸鉤同一API時(shí),就會(huì)從中刪除對應(yīng)的記錄。

   計(jì)算ELF文件的映像基地址
      計(jì)算映像基地址是為了得到ELF中動(dòng)態(tài)符號表和重定位鏈接過程表的內(nèi)容,因?yàn)檫@些表的位置都是相對于基地址的偏移量,該算法在打開ELF文件時(shí)執(zhí)行,如下圖
      EXE文件為可執(zhí)行文件,DYN文件為動(dòng)態(tài)庫。對于可執(zhí)行文件,映射基地址為可執(zhí)行裝載段的虛擬地址;對于動(dòng)態(tài)庫,可通過任一API的地址減去它的偏移量得到,任一API的地址可通過調(diào)用libdl.so庫API dlsym得到,偏移量通過查詢動(dòng)態(tài)鏈接符號表得到。

   打開ELF文件
      為了支持特點(diǎn)2即攔截不同動(dòng)態(tài)庫的多個(gè)API,節(jié)省每次掛鉤API前要打開并讀文件的開銷,獨(dú)立提供了打開ELF文件的接口操作,流程如下圖
      若輸入ELF文件名為空,則表示打開當(dāng)前進(jìn)程的可執(zhí)行文件,此時(shí)要從偽文件系統(tǒng)/proc/self/exe讀取文件路徑名,以正確調(diào)用系統(tǒng)調(diào)用open。當(dāng)同一ELF文件被多次打開時(shí),只須遞增結(jié)構(gòu)elf的引用計(jì)數(shù)。

   掛鉤API
      當(dāng)打開ELF文件后,就可掛鉤API了,流程如下圖
      當(dāng)?shù)谝淮螔煦^時(shí),需要保存原函數(shù)以供后面卸鉤;第二次以后繼續(xù)掛鉤同一API時(shí),更新鉤子函數(shù),但原函數(shù)不變。   
   
   卸鉤API
      當(dāng)打開ELF文件后,就可卸鉤API了,流程如下圖

   關(guān)閉ELF文件
      因?yàn)樘峁┝舜蜷_ELF文件的接口操作,所以得配有關(guān)閉ELF文件的接口操作。當(dāng)不需要掛鉤API的時(shí)候,就可以關(guān)閉ELF文件了,流程如下圖


運(yùn)行時(shí)動(dòng)態(tài)攔截裝置
   在初始化模塊中打開當(dāng)前可執(zhí)行文件,掛鉤libdl.so庫的API dlopen和dlsym;在轉(zhuǎn)換模塊中,按動(dòng)態(tài)庫句柄和API名稱在攔截映射表中查找鉤子函數(shù),若找到則返回鉤子函數(shù),否則返回調(diào)用dlsym的結(jié)果;在銷毀模塊中,卸鉤dlopen和dlsym。
當(dāng)動(dòng)態(tài)庫被進(jìn)程加載的時(shí)候,會(huì)調(diào)用初始化模塊;當(dāng)被進(jìn)程卸載或進(jìn)程退出的時(shí)候,會(huì)調(diào)用銷毀模塊;當(dāng)通過dlsym調(diào)用API時(shí),則會(huì)在dlsym的鉤子函數(shù)中調(diào)用轉(zhuǎn)換模塊。通過環(huán)境變量LD_PRELOAD將動(dòng)態(tài)庫libhookapi.so設(shè)為預(yù)加載庫,這樣就能攔截到所有進(jìn)程對dlopen及dlsym的調(diào)用,進(jìn)而攔截到已掛鉤動(dòng)態(tài)庫API的調(diào)用。
posted on 2016-08-25 11:10 春秋十二月 閱讀(2296) 評論(0)  編輯 收藏 引用 所屬分類: System
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲久久| 亚洲电影在线播放| 亚洲精品久久| 亚洲第一精品福利| 亚洲第一视频网站| 在线视频精品一区| 欧美在线视频a| 欧美成人免费小视频| 欧美激情亚洲精品| 国产精品国产三级欧美二区| 激情成人综合| 亚洲一区二区三区四区中文 | 国产精品地址| 午夜在线a亚洲v天堂网2018| 麻豆成人小视频| 亚洲激精日韩激精欧美精品| 欧美精品一级| 欧美有码在线观看视频| 欧美v日韩v国产v| 亚洲网站在线| 欧美日韩国产精品专区| 韩国av一区二区三区| 亚洲一区在线直播| 欧美第十八页| 欧美制服丝袜第一页| 久久婷婷丁香| 国产精品免费一区二区三区观看| 1000部精品久久久久久久久| 91久久久在线| 国内外成人免费激情在线视频网站| 亚洲无限乱码一二三四麻| 亚洲欧美综合国产精品一区| 欧美日韩精品综合| 久久久久久高潮国产精品视| 中文高清一区| 在线观看视频免费一区二区三区| 美女黄毛**国产精品啪啪| 欧美一区永久视频免费观看| 日韩视频中午一区| 亚洲成色www久久网站| 另类激情亚洲| 亚洲国产精品久久久久秋霞不卡| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美激情中文字幕一区二区| 欧美专区18| 性做久久久久久久免费看| 国产精品夜夜夜| 午夜免费日韩视频| 亚洲欧美激情视频| 国产一区二区久久久| 久久精品国产第一区二区三区最新章节 | 亚洲欧美日韩精品久久久| 亚洲一区国产精品| 国产日韩精品视频一区| 久久国产欧美精品| 国产精品白丝黑袜喷水久久久 | 在线免费不卡视频| 性亚洲最疯狂xxxx高清| 性色av香蕉一区二区| 欧美午夜精品电影| 一本色道久久综合| 中文一区二区| 亚洲影视九九影院在线观看| 一区二区三区高清| 亚洲一级电影| 销魂美女一区二区三区视频在线| 欧美日韩福利视频| 日韩午夜电影在线观看| 国产精品久久久久婷婷| 亚洲一二三四区| 午夜精品理论片| 国产欧美91| 欧美中文字幕精品| 老巨人导航500精品| 亚洲国产高清高潮精品美女| 免费人成精品欧美精品| 亚洲欧美日韩国产另类专区| 欧美日韩一区三区| 国产一区二区三区av电影| 久久米奇亚洲| 欧美午夜免费| 亚洲欧美美女| 久久精品99| 亚洲高清影视| 欧美精品九九| 亚洲亚洲精品在线观看 | 亚洲一区国产精品| 国产欧亚日韩视频| 久久午夜电影| 最新日韩精品| 久久精品二区三区| 永久免费精品影视网站| 欧美精品久久99| 亚洲欧美精品| 亚洲国产精品激情在线观看| 国产亚洲欧美一区| 久久婷婷国产综合国色天香| 亚洲精品乱码久久久久久蜜桃麻豆 | 午夜视频在线观看一区| 每日更新成人在线视频| 在线视频欧美日韩| 国模精品娜娜一二三区| 欧美日韩99| 久久成人精品一区二区三区| 亚洲伊人伊色伊影伊综合网| 国产一区二区久久| 欧美日韩亚洲不卡| 久久精品国产亚洲一区二区三区| 久久电影一区| 夜久久久久久| 欧美日韩在线播放三区| 久久综合导航| 亚洲欧美一区二区在线观看| 亚洲福利国产精品| 久久久久久久久久看片| 亚洲一区久久| 一本久久a久久精品亚洲| 影音欧美亚洲| 国产日韩精品在线| 亚洲专区国产精品| 亚洲精品视频免费在线观看| 亚洲乱码精品一二三四区日韩在线 | 欧美高清在线| 久久午夜精品| 亚洲日本欧美| 一区二区三区在线看| 国产精品亚发布| 欧美三级日韩三级国产三级| 亚洲深夜福利视频| 亚洲日本激情| 亚洲国产高清一区二区三区| 免费影视亚洲| 麻豆成人在线播放| 久久久亚洲国产天美传媒修理工| 亚洲综合不卡| 亚洲欧美经典视频| 亚洲一区二区三区色| 这里只有视频精品| 一区二区三区高清| 亚洲一区二区三区高清| 国产精品99久久99久久久二8 | 久久亚洲私人国产精品va| 正在播放日韩| 亚洲午夜精品久久久久久浪潮 | 久久色在线观看| 久久夜色精品一区| 裸体丰满少妇做受久久99精品| 久久久精品五月天| 久久婷婷激情| 欧美成人午夜激情在线| 欧美激情无毛| 亚洲欧美电影在线观看| 亚洲一区二区三区涩| 欧美在线观看视频一区二区| 久久久久久久久久码影片| 免费不卡视频| 亚洲国产一区视频| 9i看片成人免费高清| 免费成人高清视频| 欧美国产精品va在线观看| 亚洲欧洲一区二区三区| 一区二区三区欧美在线观看| 亚洲综合国产| 久久人人爽人人| 欧美日韩国产va另类| 国产精品爽黄69| 亚洲国产精品久久久久| 亚洲天堂免费观看| 久久偷窥视频| 亚洲美女啪啪| 欧美在线视频二区| 欧美剧在线免费观看网站| 噜噜噜躁狠狠躁狠狠精品视频| 欧美一区三区二区在线观看| 在线亚洲观看| 久久久精品国产免大香伊| 欧美激情一区在线| 国产日韩av在线播放| 亚洲精品男同| 欧美一区二视频| 最新亚洲视频| 久久精品视频导航| 欧美午夜精品久久久久免费视 | 国产精品xxxxx| 影音先锋另类| 新片速递亚洲合集欧美合集| 欧美不卡视频| 亚洲欧美日韩国产另类专区| 欧美大片91| 国内成+人亚洲| 亚洲欧美在线aaa| 亚洲精品在线免费观看视频| 久久成人免费网| 欧美亚日韩国产aⅴ精品中极品| 伊人男人综合视频网| 午夜欧美精品久久久久久久| 亚洲人成网站影音先锋播放| 久久久久久久国产| 欧美黄免费看| 欧美三级第一页|