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

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

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

      gdb 常用命令總結

      安裝插件

      1. 安裝GDB增強工具 (gef)
        * wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh
      2. GDB安裝插件(在root權限安裝,用戶權限使用不了需要在用戶權限下安裝)
        git clone https://github.com/gatieme/GdbPlugins.git ~/GdbPlugins  (安裝gdb的Python腳本插件)
        echo "source ~/GdbPlugins/peda/peda.py" > ~/.gdbinit    (默認打開gdb插件是pada)  傾向于破解和逆向
        echo "source ~/GdbPlugins/gef/gef.py" > ~/.gdbinit      傾向于debug 逆向
        echo "source ~/GdbPlugins/gdbinit/gdbinit" > ~/.gdbinit    個人定制

      pwndbg安裝
      git clone https://github.com/pwndbg/pwndbg
      cd pwndbg
      ./setup.sh

      cat .gdbinit

      3.Linux程序發布流程
        * 確定程序是否存在符號表
          readelf -s test-1
        * 生成符號表
          objcopy --only-keep-debug test-1 test-1.symbol
        * 生成發布程序
          objcopy --strip-debug test-1 test-release
        * 使用符號表進行程序debug
          gdb -q --symbol=test-1.symbol --exec=test-release

      gdb 語法的使用
      gcc -g -o main main.c
      gdb -q (-q用以使得gdb不輸出gdb程序的版本等信息)-tui 選項開啟gdb命令輸入和源代碼的分屏顯示 main
      分別在父進程和子進程的位置設置好斷點(b 18), 然后r運行程序即可斷下來:
      所有命令,只要不出現沖突,都可以進行簡寫,如list可直接簡寫為l,break可直接簡寫為b。

      list 行號/函數名 查看指定位置的源碼
      info break|watch|... 顯示斷點信息,watch 信息

      break 行號/函數名 設置斷點
      tbreak/tb 臨時斷點(斷點只生效一次)
      del/clear 刪除斷點
      ingore (ignore N COUNT)忽略斷點N次數為COUNT,即前COUNT次斷點不觸發

      start 運行(自動在main函數處停下)
      run 運行程序
      next 單步運行,不進入函數內部
      step 單步運行,進入函數內部
      ni 下一條指令
      si 進入函數(匯編級)
      continue 繼續運行,直到結束或者斷點
      n 10 運行10行代碼
      ni 10 運行10條指令
      until 退出循環
      finish 退出函數(相當于是快進)
      return 退出函數(它是強制退出,跳過了中間的指令)
      call 調用函數

      watch 變量|表達式 觀察變量或表達式,若其改變則停止
      print 變量|表達式 查看程序運行時對應的變量或表達式的值
      set 變量=新值 設置變量在內存中的當前值
      backtrace/bt 若程序宕掉,查看函數調用棧
      display 自動打印變量(每次程序暫停,都自動打印)
      x 參數為內存地址,打印內存(help x查看用法)
      info reg all 打印所有寄存器

      條件斷點:比如 b foo if a==1 ,條件成立是觸發斷點
      執行shell命令(在命令前輸入shell即可,比如shell clear就相當于是執行了shell中的clear命令,清屏)

      stack 50 查看連續50個調用棧
      vmmap 查看程序的段
      heap
      bins
      distance addr1 addr2 計算兩個內存的距離

      x/<n/f/u> <addr> 來查看內存地址中的值
      n 是一個正整數,表示顯示內存的長度,也就是說從當前地址向后顯示幾個地址的內容
      f 表示顯示的格式,如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。
        x 按十六進制格式顯示變量。
        d 按十進制格式顯示變量。
        u 按十六進制格式顯示無符號整型。
        o 按八進制格式顯示變量。
        t 按二進制格式顯示變量。
      u 參數可以用下面的字符來代替,b表示單字節,h表示雙字節,w表示四字節,g表示八字節
      當我們指定了字節長度后,GDB會從指內存定的內存地址開始,讀寫指定字節,并把其當作一個值取出來。
      x/40gz 從指定地址向后查看40個內存值,8字節對齊16進制顯示

      多進程調試
      設置follow-fork-mode (parent/child)和detach-on-fork (on/off)的值來調試子程序
      follow-fork-mode detach-on-fork
        parent on 只調試主進程(GDB默認)
        child on 只調試子進程
        parent off 同時調試兩個進程, gdb跟主進程, 子進程block在fork位置
        child off 同時調試兩個進程,gdb跟子進程,主進程block在fork位置

      set follow-fork-mode child
      set detach-on-fork off
      show follow-fork-mode/detach-on-fork

      進程間切換
      gdb會為inferiors分配ID, 其中帶有*的進程是正在調試的inferior;gdb將每一個被調試程序的執行狀態記錄在一個名為inferior的結構中;
      info inferiors 查看當前此時顯示gdb調試的所有inferior
      inferior ID切換到對應id的斷點進程

      多線程調試
      gcc -g -o thread -lpthread thread.c
      info threads 來查看有多少個線程
      thread threadID 切換調試的線程
      show non-stop 查看線程調試時運行的模式
      show scheduler-locking
      set scheduler-locking on|off|step
        on 鎖定其他線程,只有當前線程執行
        off 不鎖定任何線程
        step 只有被調試線程運行
      thread apply threadID gdbCmd 指定某線程執行某gdb命令
      thread apply all gdbCmd 全部的線程執行某gdb命令

      程序靜態/動態分析工具
      IDA Pro/ winhex pedit binwalk(識別壓縮殼,解壓等)
      readelf c++filter
      OllyDebug
      gdb

      gdb插件調試的常用命令
      peda
      aslr on|off
      aslr
      dumprop
      elfheader
      elfsysmbol
      dumpargs

      checksec
        canary 棧保護 加入cookie
        NX 棧不可執行
        PIE(alsr) 每次執行內存地址隨機化
        Fortify 棧參數保護檢測
        relro GOT只讀


      參考:

      匯編:https://blog.csdn.net/weixin_51325053/article/details/117511668
      https://www.136.la/mysql/show-44335.html
      https://blog.csdn.net/qq_29809823/article/details/118941735
      多線程: https://blog.csdn.net/weixin_42158742/article/details/113100151
      多進程: https://blog.csdn.net/qq_40827990/article/details/110423679

      x命令:https://blog.csdn.net/u013985241/article/details/89169007

      posted @ 2022-05-09 01:39  boybai  閱讀(501)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 一区二区三区国产不卡| 4399理论片午午伦夜理片| 四虎国产精品永久在线国在线 | 日韩欧美aⅴ综合网站发布| 视频一区视频二区在线视频| 又爽又黄又无遮掩的免费视频| 这里只有精品免费视频| 久久综合亚洲鲁鲁九月天| 成人自拍短视频午夜福利| 久久这里有精品国产电影网| 亚洲性猛交xxxx| 亚洲精品乱码久久久久久蜜桃图片| 亚洲成人一区| 国产精品福利自产拍久久| 国产目拍亚洲精品二区| 性猛交ⅹxxx富婆视频| 欧洲亚洲色一区二区色99| 国产SUV精品一区二区88L| 国产福利社区一区二区| av无码精品一区二区三区| 色猫咪av在线网址| 又黄又爽又色的免费网站| 欧美刺激性大交| 成人免费无遮挡在线播放| 日韩黄色av一区二区三区| 激情 自拍 另类 亚洲| 亚洲欧美综合人成在线 | 国产免费午夜福利在线播放| 大香j蕉75久久精品免费8| 亚洲欧美另类久久久精品播放的| 韩国18禁啪啪无遮挡免费| 免费看欧美全黄成人片| 亚洲激情一区二区三区视频| 久久综合色之久久综合色 | 国产熟女一区二区三区蜜臀| 欧美高清一区三区在线专区 | 国产精品无码无需播放器| 国产午夜精品理论大片| 国产午夜成人久久无码一区二区| 亚洲国产无套无码av电影| 德州市|