• <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>
            隨筆-159  評論-223  文章-30  trackbacks-0
            曾因朋友問到監(jiān)控,致使我探究了kretprobe的實(shí)現(xiàn),想到編譯中的尾調(diào)用優(yōu)化,作個(gè)小結(jié)
            ?1. kretprobe_trampoline_holder該跳轉(zhuǎn)函數(shù)無參是必須的或說最好的通用設(shè)計(jì),因?yàn)樘鎿Q返回地址是非正常程序流程,即被探測函數(shù)的調(diào)用者無感知,不存在為跳轉(zhuǎn)函數(shù)準(zhǔn)備入?yún)ⅰH粢O(shè)計(jì)傳參且只讀,則不會破壞被探測函數(shù)調(diào)用者的上下文,但跳轉(zhuǎn)函數(shù)內(nèi)部流程怎么用參數(shù)是個(gè)問題,這需要一種約定
            ?2. 跳轉(zhuǎn)函數(shù)為調(diào)用trampoline_handler準(zhǔn)備入?yún)ⅲ丛跅I蠘?gòu)造一個(gè)(不完整的)pt_regs,再把它地址即棧頂賦給rdi,rdi是x86_64上傳入第一參數(shù)使用的寄存器,同時(shí)預(yù)留一個(gè)棧單元存放原返回地址(為什么要預(yù)留?因?yàn)楸惶綔y函數(shù)返回時(shí),其調(diào)用者存放返回地址的棧空間被釋放了,所以得在跳轉(zhuǎn)函數(shù)內(nèi)造一個(gè))。由于trampoline_handler內(nèi)調(diào)到用戶自定義handler而傳入pt_regs,因此自定義handler內(nèi)要注意最好別改動pt_regs,否則會破壞被探測函數(shù)調(diào)用者的上下文
            ?3. 表面看kretprobe的實(shí)現(xiàn)流程有點(diǎn)像尾調(diào)用優(yōu)化,但有本質(zhì)區(qū)別。后者中被調(diào)尾函數(shù)直接釋放父調(diào)用者的棧幀,就可恢復(fù)到父調(diào)用者的返回地址;前者不能這樣干,因?yàn)楸惶綔y函數(shù)的返回地址被替換了,所以需要一個(gè)時(shí)地(時(shí)機(jī)地點(diǎn))恢復(fù),而這時(shí)地正是跳轉(zhuǎn)函數(shù)的收尾序列代碼,把原來的返回地址放于上述2所講的預(yù)留棧單元,這樣最后的ret指令彈出它并跳到原返回地址執(zhí)行。為保證恢復(fù)后正常執(zhí)行,還得恢復(fù)被探測函數(shù)調(diào)用者的上下文即寄存器信息(無須恢復(fù)棧內(nèi)容,因?yàn)樯鲜?講到了跳轉(zhuǎn)函數(shù)是無參的)



            posted on 2023-09-13 02:26 春秋十二月 閱讀(339) 評論(0)  編輯 收藏 引用 所屬分類: System
            91久久精品国产成人久久| 久久亚洲私人国产精品vA| 久久久久久久人妻无码中文字幕爆| 亚洲天堂久久精品| 久久中文字幕一区二区| 久久国产欧美日韩精品| 1000部精品久久久久久久久| 久久综合香蕉国产蜜臀AV| 性欧美大战久久久久久久| 精品久久久久久无码中文字幕 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 99久久99这里只有免费费精品| 久久综合偷偷噜噜噜色| 亚洲国产精品成人久久蜜臀 | 久久久久人妻一区精品| 国产免费久久久久久无码| 中文字幕久久欲求不满| 99久久精品国产一区二区三区 | 久久亚洲中文字幕精品一区| 久久精品国产男包| 久久精品无码专区免费青青| 久久久久中文字幕| 亚洲日本久久久午夜精品| 久久中文字幕人妻丝袜| 国产69精品久久久久777| 久久―日本道色综合久久| 久久最新免费视频| 久久人人妻人人爽人人爽| 99久久精品影院老鸭窝| 国内精品久久久久影院网站| 女人高潮久久久叫人喷水| 国内精品久久久人妻中文字幕| 久久精品这里热有精品| 久久亚洲精品无码观看不卡| 久久人人妻人人爽人人爽| 久久青草国产精品一区| 久久99这里只有精品国产| 久久91亚洲人成电影网站| 麻豆久久久9性大片| 久久综合九色综合欧美狠狠| 久久国产劲爆AV内射—百度|