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

隨筆-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>
            9l国产精品久久久久麻豆| 久热这里只精品99re8久| 久久精品一二三| 亚洲欧美日韩成人高清在线一区| 99成人免费视频| 99精品热视频| 一区二区三区久久精品| 亚洲视频免费观看| 亚洲综合清纯丝袜自拍| 午夜精品久久久久久久男人的天堂| 一区二区三区精品| 亚洲永久精品大片| 久久av一区二区三区| 欧美在线视频观看免费网站| 久久久久久尹人网香蕉| 美女脱光内衣内裤视频久久网站| 裸体一区二区三区| 欧美大尺度在线观看| 欧美激情一二三区| 一本色道久久88综合亚洲精品ⅰ| 亚洲在线视频一区| 久久久之久亚州精品露出| 欧美成人精品在线| 国产精品国产三级国产专播精品人 | 日韩午夜精品| 亚洲欧美日韩视频二区| 欧美中文字幕久久| 欧美精品久久久久a| 国产精品区一区| 在线观看91精品国产入口| 亚洲精一区二区三区| 亚欧成人精品| 欧美福利在线观看| 亚洲影院在线| 欧美寡妇偷汉性猛交| 国产精品网站在线观看| 亚洲欧洲日本国产| 欧美中文字幕第一页| 欧美一区二区三区在线播放| 蜜臀久久99精品久久久画质超高清 | 久久狠狠婷婷| 亚洲精品国精品久久99热| 日韩视频免费观看高清完整版| 欧美一级专区| 国产精品伦一区| 9色国产精品| 欧美高清不卡在线| 午夜在线精品| 欧美日韩一区三区四区| 亚洲福利国产| 久久久久一区二区| 亚洲欧美www| 欧美性做爰猛烈叫床潮| 亚洲精品一区二区三区99| 亚洲激情在线播放| 久久视频精品在线| 午夜精品婷婷| 国产精品久久久久久亚洲调教| 亚洲欧洲精品成人久久奇米网 | 欧美日韩国产影片| 91久久久久久久久| 免费一级欧美在线大片| 性欧美1819sex性高清| 欧美性猛交xxxx免费看久久久| 日韩午夜av| 亚洲国产精品久久久久| 久久影音先锋| 亚洲福利免费| 免费亚洲一区二区| 麻豆精品91| 亚洲日本欧美日韩高观看| 欧美不卡在线| 午夜在线观看欧美| 狠狠爱www人成狠狠爱综合网| 欧美在线3区| 久久成人国产| 亚洲国产欧美另类丝袜| 亚洲国产三级| 欧美视频一区在线观看| 亚洲欧美精品| 午夜精品福利视频| 黑人操亚洲美女惩罚| 蜜臀av在线播放一区二区三区 | 久久精品国产精品亚洲精品| 国产一区二区三区在线播放免费观看| 久久精品一区二区三区四区| 欧美一激情一区二区三区| 国产视频一区三区| 欧美aⅴ99久久黑人专区| 免费影视亚洲| 国产精品久久福利| 久久久久成人精品| 欧美成人一区二区三区在线观看 | 国产婷婷精品| 欧美国产视频日韩| 欧美日韩免费一区二区三区视频| 亚洲免费网址| 久久久久久自在自线| 日韩视频中文| 亚洲欧美经典视频| 亚洲国语精品自产拍在线观看| 亚洲黄色av| 国产精品一区二区久久久| 久久久久久成人| 欧美精品一区三区| 久久精品国产91精品亚洲| 免费看精品久久片| 久久国产精品久久久久久久久久| 欧美不卡在线视频| 久久久www成人免费精品| 欧美日本一道本| 蜜臀av性久久久久蜜臀aⅴ| 欧美午夜久久| 亚洲高清自拍| 激情av一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女| 在线精品国产欧美| 午夜一区二区三区在线观看| 一区二区三区 在线观看视频| 久久亚洲不卡| 久久精品一区二区三区四区| 欧美日韩美女在线观看| 老巨人导航500精品| 国产精品午夜春色av| 99国产精品久久久久久久久久| 黄色成人av网| 午夜视频一区| 先锋a资源在线看亚洲| 欧美成人精品一区| 欧美成人亚洲成人| 国产亚洲精品福利| 亚洲香蕉网站| 亚洲一区二区三区四区中文| 欧美激情视频免费观看| 免费在线观看一区二区| 国产一区二区三区免费不卡| 亚洲伊人一本大道中文字幕| 亚洲欧美另类国产| 国产精品天天看| 欧美一区二区播放| 久久综合狠狠| 亚洲人屁股眼子交8| 欧美精品亚洲一区二区在线播放| 91久久久一线二线三线品牌| aa级大片欧美| 国产精品久久久久久久久免费| 亚洲影院免费| 乱中年女人伦av一区二区| 亚洲国产合集| 欧美日韩久久精品| 亚洲免费影视第一页| 久久精品最新地址| 最新亚洲一区| 亚洲欧美日韩精品一区二区| 亚洲欧美日韩精品久久亚洲区| 国产精品一区二区视频| 欧美在线免费视频| 欧美jizzhd精品欧美巨大免费| 亚洲精品欧美日韩专区| 欧美日韩一区二区在线视频| 在线视频一区二区| 久久全国免费视频| 亚洲精品自在在线观看| 欧美日韩国产高清| 亚洲中字在线| 久久久久国产一区二区| 欧美日韩的一区二区| 一本色道久久综合狠狠躁篇怎么玩 | 久久九九精品| 久久精品夜色噜噜亚洲aⅴ | 国产精品久久久久9999| 欧美伊人久久久久久久久影院| 欧美一级大片在线免费观看| 国产精品久久久久婷婷| 日韩亚洲视频| 久久不射中文字幕| 一色屋精品亚洲香蕉网站| 亚洲一区综合| 毛片一区二区| 亚洲免费人成在线视频观看| 国产精品狼人久久影院观看方式| 亚洲免费视频中文字幕| 老司机精品视频网站| 亚洲特色特黄| 国内在线观看一区二区三区| 久久精品中文字幕免费mv| 午夜亚洲福利在线老司机| 亚洲日本中文字幕| 欧美日精品一区视频| 欧美一区二区在线免费观看| 国产日韩精品一区二区浪潮av| 欧美阿v一级看视频| 亚洲午夜av| 亚洲国产精品第一区二区三区| 亚洲国产欧美日韩精品| 国产香蕉久久精品综合网| 欧美不卡在线| 欧美在线影院| 欧美在线观看你懂的| 亚洲美女色禁图|