日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从堆里找回“丢失”的代码相关命令简介

發布時間:2023/12/4 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从堆里找回“丢失”的代码相关命令简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在上一篇文章中,我們主要使用了三個命令 !address,s,.writemem 把丟失的代碼成功的保存到了文件中。本文簡單介紹一下上文用到的這三個命令。

windbg 中的地址范圍語法

很多命令都會用到 地址范圍。比如 s 命令,.writemem 命令。

在 windbg 中可以通過兩種形式指定地址范圍。起始地址 L長度 或者 起始地址 終止地址。在上一篇文章中,我們使用的是 起始地址 終止地址 的形式。我們也可以使用用 起始地址 L長度 的形式來指定一個范圍。其中的 L 必不可少,而且,L 后面跟的是要查看的單位數量,不是字節數。比如,我們查看起始地址 0xc0000 處對應的內容,同樣是L4,按字節(db),按四字節(dd)和按八字節(dq)查看,顯示的內存范圍是不一樣的

display-by-range

有兩點需要注意:

  • 如果搜尋的范圍超過256MB,我們需要使用 L? ,而不是 L。

  • 我們可以使用 L- 表示給定的 address 是終止位置,而不是起始位置。

  • range-specifier

    !address 命令

    該命令可以用來查看指定地址對應的信息,也可以用來查找過濾。在之前的文章里使用 !address 查看過某個地址對應的信息。上一篇文章中我們主要使用的是這個命令的查找過濾功能(通過 ?-f 參數,f 是 filter 的縮寫)。

    • 我們可以根據用途過濾,具體參考下表。

    filt-by-memory-usage
    • 還可以根據內存保護屬性過濾,具體參考下表。

    filt-by-memory-protection
    • 還可以根據內存狀態過濾,具體參考下表。

    filt-by-memory-status
    • 還可以根據內存類型過濾,具體參考下表。

    filt-by-memory-type

    -f 參數需要配合 -c:"command" 在查找的過程中執行對應的命令。

    option-c

    s 命令

    該命令可以用來查找符合特定模式的內存。s 是 Search Memory 的縮寫。

    s?[-[[Flags]Type]]?Range?Pattern? s?-[[Flags]]v?Range?Object? s?-[[Flags]]sa?Range? s?-[[Flags]]su?Range?

    這里僅截取 Type 的用法。更多用法請參考官方文檔。

    search-type

    .writemem 命令

    該命令比較簡單,.writemem FileName Range。

    FileName :如果路徑中有空格,需要使用 "" 引起來,這個應該是常識了。

    Range :相關的語法已經在本文開始介紹了。

    總結

    我們在上一篇文章中用到的命令(!address -f:heap,PAGE_READWRITE -c:"s -u %1 %2 args.Contains(\"--all\")")的意思是:遍歷可讀寫的堆內存,對每個內存區域調用 s 命令,搜尋匹配 args.Contains("--all") 的 unicode 字符串。s 命令需要的地址范圍是通過 !address 命令傳遞過來的 %1(起始地址) 和 %2(結束地址) 傳遞的。

    參考資料

    • https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-address

    • https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-writemem--write-memory-to-file-

    • https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/address-and-address-range-syntax

    • https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/s--search-memory-

    歡迎留言交流

    需要你的

    總結

    以上是生活随笔為你收集整理的从堆里找回“丢失”的代码相关命令简介的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。