<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      更換可執行文件glibc版本的某一次掙扎

       

      0x00:前言

             在做pwn的堆題時,會遇到不同版本的glibc。為此我們會裝不同版本的虛擬機去應對。一般來說會裝Ubuntu16Ubuntu18虛擬機,這兩個系統對應的glibc版本差別較大,且較常見。但其余的glibc版本也會存在一些小差別,主要在于mallocfree時的檢查。為了更好地與遠程環境對應,我們可以通過patchelfglibc-all-in-one來更換程序動態加載時的glibc

             簡單介紹一下,glibc-all-in-one用來下載需要的glibc包,然后用petchelf進行更換操作。

       

      0x01patchelf

      安裝命令:
      sudo apt install patchelf
      
      檢查一下:
      patchelf -h

       

       

      0x02glibc-all-in-one

      1、下載glibc-all-in-on

      從github克隆:
      git clone https://github.com/matrix1001/glibc-all-in-one

       

      2、更新glibc版本信息

      進入glibc-all-in-one目錄,執行update_list文件,更新glibc版本信息列表。

      初始時是這樣子的:

       

      更新之后生成了listold_list文件:

       

      打開查看這兩個文件發現是互補的,根據上面更新的完成信息,個人推斷:list中的glibc版本是目前系統常用的可用的,而old_list中的是過時的,或者是這些版本存在一些問題,不推薦使用。(個人推測,保留質疑)

       

      3、下載需要的glibc

      查看版本信息文件:
      cat list
      
      下載glibc:
       ./dawnload [版本號]

       

      也可以下載old_list里面對應的glibc,不過要用./download_old進行下載操作。(用./download會報錯)

       

      0x03:更換glibc

      更換鏈接器:
      patchelf --set-interpreter /home/tolele/pwn_tools/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ld-2.23.so ./easy_heap
      
      更換glibc搜索路徑:
      patchelf --set-rpath /home/tolele/pwn_tools/glibc-all-in-one/libs/2.23-0ubuntu3_amd64 ./easy_heap

      (注意路徑和可執行文件(參數)要按自己的來修改)

       

       

       

      其實還有另外一種方法:更換鏈接器+直接更換動態庫

      更換鏈接器命令:
      patchelf --set-interpreter /home/tolele/pwn_tools/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ld-2.23.so ./easy_heap
      
      更換動態庫:(參數libc.so.6似乎是固定的)
      patchelf --replace-needed libc.so.6 /home/tolele/pwn_tools/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/libc.so.6 ./easy_heap

      但這種方法沒前面一種方法好,容易報錯。

       

      0x04:渡劫之道

            眾所周知,環境配置除了正常的操作之外,還需要運氣加成,你往往不知道你會遇到什么千奇百怪的error。本人在u18環境配置地比較順,但在u16第一步就報錯了,來了個開門紅,接下來更是紅紅(error)火火(怒火)

           如果你不幸在第一步安裝patchelf時就報錯了,百度無果之后。可以選擇直接從github克隆下來(參考下方第一個鏈接),但渡劫之道可能也因此打開:

      1、起點

      (3條消息)【kali】glibc-all-in-one安裝(解決version `GLIBC_2.34‘not found)_雪月三十的博客-CSDN博客_glibc-all-in-one

       

      2patchelf make報錯

      (3條消息)安裝patchelf無法make(make報錯很多)_Der_的博客-CSDN博客_patchelf安裝

       

      3gcc版本低報錯,更新gcc

      (3條消息) ubuntu16.04下更新GCC版本_easy_簡兮的博客-CSDN博客

       

      4、更新過程中一個包校驗報錯

      (3條消息)【linux】gcc版本更新_shuaixio的博客-CSDN博客_gcc更新

       

      5、遞歸回去

       

      以上為個人在u16的渡劫之道,系統環境不同會導致每個人的道路也會有所不同。望成功!(抱拳)

       


       

      2022-08-16 更新一下

      更換libc和ld后,存在的一個問題是使用gdb調試時,如果用pwndbg插件,heap和bins指令用不了。本來想解決問題再來更新,但網上的方法試了個遍也沒解決。所以先鴿了,或許在深入底層學習的某一天,忽然靈光乍現,解決了再來更新。目前的解決方法是通其它的gdb命令來查看heap和bins的信息,畢竟p &[struct]還是挺好使的。main_arena、vmmap看堆基址、IO的_IO_list_all等等結構體,可以慢慢試試~


       

       2022-09-11 該問題有點眉目了捏,更新一下

      先說說網上常見的解決方法:

      我們通過glibc-all-in-one下載好libc包后,該目錄下有個.debug文件夾(是個隱藏文件,可通過ls -a查看)。.debug文件含有該libc下的調試信息,只要我們將gdb調試時調試信息的尋找路徑改對應到.debug即可。

      這里有兩種方法進行修改:

      第一種就是在gdb調試時,使用set debug-file-directory [directories]命令進行修改。show debug-file-directory查看該路徑。但這個方法只是該次有效,當重新gdb調試時需要再次設置。

      第二種方法就是gdb調試尋找調試信息文件的默認路徑是:/usr/lib/debug/。所以我們可以先將debug文件夾備份好,然后將glibc-all-in-one中的.debug修改為debug并放到該路徑下即可。

      這里放一下e4l4師傅的shell命令:

      # 這里是替換.build-id文件夾(主要參考命令)
      cd /usr/lib/debug
      sudo mv .build-id/ .build-id.bak
      cd ~
      sudo mv ~/.build-id/ /usr/lib/debug

      不過,很可惜的是,上面兩種方法我在ubuntu16.04里面試了都不行,其他師傅說沒問題,那應該也是可以的。最后在ubuntu22.04里面,發現不用替換調試文件也能直接使用heap/bins命令,這樣的話說明調試信息文件是高版本向低版本兼容的。所以最后一條路就是換個高版本點的環境,u20差不多就可以了。


       

      tolele

      2022-07-29

       

      posted @ 2022-07-29 23:26  tolele  閱讀(5150)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 亚洲综合网国产精品一区| 国产精品无码av在线一区| 日本边添边摸边做边爱| 色老板精品无码免费视频| 亚洲精品无码人妻无码| 国产中文字幕精品喷潮| 国产高清无遮挡内容丰富| 最近中文字幕日韩有码| 泸定县| 97久久久精品综合88久久| 亚洲国产成人资源在线 | 国产精品久久久久影院色| 狠狠综合久久av一区二| 99久久无码私人网站| 成人天堂资源www在线| 国产超碰人人爽人人做人人添| 999久久久免费精品播放| 国产成人无码区免费内射一片色欲| 亚洲国产综合av在线观看| 亚洲精品乱码免费精品乱| 久青草视频在线观看免费| 亚洲欧美中文日韩在线v日本| 亚洲综合在线日韩av| 亚洲一区二区av免费| 亚洲一二区制服无码中字| 日本午夜精品一区二区三区电影 | 一区二区三区国产不卡| 无码av最新无码av专区| 韩国精品福利视频一区二区| 成人3D动漫一区二区三区| 桂平市| 日韩中文字幕免费在线观看 | 叶城县| 亚洲韩国精品无码一区二区三区| 国产精品白浆在线观看免费| 日本熟妇hdsex视频| 亚洲av无码之国产精品网址蜜芽 | 国产精品一久久香蕉国产线看观看| 亚洲精品国产av成人网| 久久精品亚洲国产成人av| 亚洲国产另类久久久精品网站|