精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊一聊 .NET 高級調試內核模式堆泄露

開發 前端
在過往的dump分析中都是用戶態程序的泄露,內核態模式堆的的泄露還是第一次分析,不是朋友提供的這次機會,真的就沒緣分啦!在這次dump分析過程中,也讓大家看到了 windbg 是多么的強大!

一、背景

1. 講故事

前幾天有位朋友找到我,說他的機器內存在不斷的上漲,但在任務管理器中查不出是哪個進程吃的內存,特別奇怪,截圖如下:

圖片圖片

在我的分析旅程中都是用戶態模式的內存泄漏,像上圖中的異常征兆已經明確告訴你了,不是用戶態程序吃的內存,那就是內核態程序吃的,比如:

  • 某些驅動程序
  • 操作系統

從概率上來說一般都是某些第三方程序內存泄露導致的,這一篇我們就來聊一聊這種問題該如何解決。

二、內核模式堆泄露分析

1. 驅動程序是如何分配內存的

相信有很多朋友都知道,用戶態的程序是直接或者間接的調用 VirtualAlloc 方法來向操作系統要內存,包括 C# 的 GC 堆也是一樣,它的方法簽名如下:

LPVOID VirtualAlloc(
  [in, optional] LPVOID lpAddress,
  [in]           SIZE_T dwSize,
  [in]           DWORD  flAllocationType,
  [in]           DWORD  flProtect
);

那內核中的驅動程序是如何向操作系統要內存的呢?一般都是調用 ExAllocatePool2 方法來要內存的,簽名如下:

DECLSPEC_RESTRICT PVOID ExAllocatePool2(
  POOL_FLAGS Flags,
  SIZE_T     NumberOfBytes,
  ULONG      Tag
);

上面有兩個參數要詳細解釋一下:

  • Flags 參數

一般用的多的就是 POOL_FLAG_NON_PAGED 和 POOL_FLAG_PAGED 兩種,前者表示分配的內存是需要永久駐留內存,不可以交換到硬盤的。后者分配的內存是可以交換到硬盤的。

  • Tag 參數

這個參數的本意就是方便日后洞察內存泄露的,它強行讓一塊內存和這個 Tag(4byte的ascii 字符串) 做了強綁定,到時候通過這個 tag 就知道是誰分配的內存。

2. 制造內核模式堆泄露

為了能夠讓驅動程序泄露,可以使用微軟提供的 NotMyFault 工具,這個工具利用 myfault.sys 驅動不斷的向操作系統分配內存。官方網址為:https://learn.microsoft.com/zh-cn/sysinternals/downloads/notmyfault

打開 myfault 工具然后輸入 40M/s 的泄露,并分配在非換頁池中,同時配置下內核態轉儲dump, 代碼和截圖參考如下:

ExAllocatePool2(POOL_FLAG_NON_PAGED,40*1024*1024,"Leak");

圖片圖片

在泄露的過程中,通過 Process Explorer 很明顯的發現提交了 6.7G 的內存,其中有 4.9G 是在 NonPaged 中,即通過上圖中的 POOL_FLAG_NON_PAGED 標記分配的,截圖如下:

圖片圖片

接下來在 MyFault 上切換到 Crash 選項卡,強行讓操作系統藍屏來生成 dump 文件。

3. dump 分析

拿到dump后,先通過 !vm 觀察下操作系統級的虛擬內存的分布情況。

3: kd> !vm
...
Physical Memory:          2069421 (    8277684 Kb)
Available Pages:           445015 (    1780060 Kb)
ResAvail Pages:            707292 (    2829168 Kb)
Locked IO Pages:                0 (          0 Kb)
Free System PTEs:      4295052431 (17180209724 Kb)
...
Modified Pages:             11479 (      45916 Kb)
Modified PF Pages:          11479 (      45916 Kb)
Modified No Write Pages:        0 (          0 Kb)
NonPagedPool Usage:       1219892 (    4879568 Kb)
NonPagedPoolNx Usage:       24512 (      98048 Kb)
NonPagedPool Max:      4294967296 (17179869184 Kb)
PagedPool Usage:            32907 (     131628 Kb)
PagedPool Maximum:     4294967296 (17179869184 Kb)
...
NonPagedPool Commit:      1246469 (    4985876 Kb)
...
Sum System Commit:        1409562 (    5638248 Kb)
Total Private:             279673 (    1118692 Kb)

********** Sum of individual system commit + Process commit exceeds overall commit by 1952 Kb ? ********
Committed pages:          1688747 (    6754988 Kb)
Commit limit:             4166573 (   16666292 Kb)

從卦中的 NonPagedPool Usage 指標可以看到,當前的 非換頁池 占用了 4.8G 內存,總計 121w 的內存頁。

接下來就是要深挖下 非換頁池 ,看看到底都是什么 Tag 分配的,可以使用 !poolused 2 命令。

3: kd> !poolused 2
....
 Sorting by NonPaged Pool Consumed

               NonPaged                  Paged
 Tag     Allocs         Used     Allocs         Used

 Leak       119   4991221760          0            0 UNKNOWN pooltag 'Leak', please update pooltag.txt
 ConT       238     14499840          0            0 UNKNOWN pooltag 'ConT', please update pooltag.txt
 KETR     16410      8117664          0            0 UNKNOWN pooltag 'KETR', please update pooltag.txt
 EtwB       196      7565568          2       131072 Etw Buffer , Binary: nt!etw
 2872         6      5660864          0            0 UNKNOWN pooltag '2872', please update pooltag.txt
 287R      1026      4183040          0            0 UNKNOWN pooltag '287R', please update pooltag.txt
 File      9734      3877408          0            0 File objects 
 Thre      1257      3217920          0            0 Thread objects , Binary: nt!ps
 EtwR     12141      2672640          0            0 Etw KM RegEntry , Binary: nt!etw
...

從卦中數據看,有一個神秘的 Tag=Leak 的內存分配,它分配了 119 次,總大小 4.99G。哈哈,其實就是剛才通過 MyFault 做的 40M/s 的內存分配。

接下來的問題是:這個 Leak 是哪一個驅動程序所為呢?最簡單的辦法就是在各個驅動的內存空間中做內存搜索,看看誰里面有 Leak 的asc硬編碼,對吧,有了這個思路,先用 lm 看看里面都有哪些 sys 。

3: kd> lm
start             end                 module name
ffffc25c`891b0000 ffffc25c`89480000   win32kbase   (deferred)             
ffffc25c`8a190000 ffffc25c`8a545000   win32kfull   (deferred)     
...                  
fffff807`22600000 fffff807`23646000   nt         (pdb symbols) 
fffff807`23c00000 fffff807`23d16000   clipsp     (deferred)             
fffff807`47f30000 fffff807`47f4b000   monitor    (deferred)             
fffff807`47f50000 fffff807`47f59000   myfault    (deferred)             
...          

Unloaded modules:
fffff807`3c6e0000 fffff807`3c6ec000   360Sensor64.sys
fffff807`31550000 fffff807`31560000   dump_storport.sys
fffff807`315a0000 fffff807`315d3000   dump_storahci.sys
fffff807`31000000 fffff807`3101e000   dump_dumpfve.sys
fffff807`26b80000 fffff807`26bac000   luafv.sys
fffff807`26b20000 fffff807`26b30000   dump_storport.sys
fffff807`26b70000 fffff807`26ba3000   dump_storahci.sys
fffff807`26bd0000 fffff807`26bee000   dump_dumpfve.sys
fffff807`28130000 fffff807`2814c000   dam.sys 
fffff807`24200000 fffff807`2420a000   360elam64.sys
fffff807`25230000 fffff807`25241000   hwpolicy.sys

接下來就是寫腳本在每個 sys 的 start ~ end 區間做 s 搜索,這個腳本我就不放了,非常簡單,最終就在 myfault.sys 中成功找到了 Leak 硬編碼,參考如下:

3: kd> lmvm myfault
Browse full module list
start             end                 module name
fffff807`47f50000 fffff807`47f59000   myfault    (deferred)             
    Image path: \??\C:\Windows\system32\drivers\myfault.sys
    Image name: myfault.sys
    Browse all global symbols  functions  data
    Timestamp:        Fri Sep 30 00:17:31 2022 (6335C51B)
    CheckSum:         00010CED
    ImageSize:        00009000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
    Information from resource tables:
    
3: kd> ? fffff807`47f59000 - fffff807`47f50000
Evaluate expression: 36864 = 00000000`00009000

3: kd> s -a fffff807`47f50000 L?0x9000  "Leak"
fffff807`47f51559  4c 65 61 6b 0f 42 c1 41-8d 49 fd 8b d0 ff 15 0c  Leak.B.A.I......
fffff807`47f515c7  4c 65 61 6b 0f 42 c1 33-c9 8b d0 ff 15 a0 1a 00  Leak.B.3........

三、總結

在過往的dump分析中都是用戶態程序的泄露,內核態模式堆的的泄露還是第一次分析,不是朋友提供的這次機會,真的就沒緣分啦!在這次dump分析過程中,也讓大家看到了 windbg 是多么的強大!

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2021-01-04 08:09:07

Linux內核Watchdog

2022-11-26 00:00:06

裝飾者模式Component

2021-08-04 09:32:05

Typescript 技巧Partial

2022-11-01 08:46:20

責任鏈模式對象

2023-05-15 08:38:58

模板方法模式

2021-07-16 11:48:26

模型 .NET微軟

2024-10-28 21:02:36

消息框應用程序

2018-06-07 13:17:12

契約測試單元測試API測試

2022-09-26 08:03:25

VMware虛擬機

2023-02-09 10:39:15

gRPC通信模式

2021-01-28 22:31:33

分組密碼算法

2023-09-22 17:36:37

2020-05-22 08:16:07

PONGPONXG-PON

2023-03-03 12:37:50

JavaJVM內存溢出

2023-04-19 20:51:45

2020-08-12 08:34:16

開發安全We

2022-10-08 11:33:56

邊緣計算云計算

2020-06-28 09:30:37

Linux內存操作系統

2022-03-08 16:10:38

Redis事務機制

2022-03-29 09:56:21

游戲版本運營
點贊
收藏

51CTO技術棧公眾號

国产视频三区四区| 男人天堂999| 可以免费看毛片的网站| 国产日韩一区| www.亚洲成人| 无码国产精品一区二区免费式直播 | 欧美剧在线观看| 国产精品无码网站| 四虎视频在线精品免费网址| 无码av免费一区二区三区试看| 日韩亚洲不卡在线| 人妻精品一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 久久久久久999| 久久视频一区二区三区| 欧美亚洲色图校园春色| 欧美一区二区视频免费观看| 日韩a在线播放| 欧美hdxxxxx| 亚洲国产精品激情在线观看| 国产综合 伊人色| 国产视频一二三四区| 久久一日本道色综合久久| 欧美精品久久一区二区| 91ts人妖另类精品系列| 自拍偷拍精品| 国产手机视频精品| 又黄又爽的网站| 美女日韩一区| 欧美丰满少妇xxxbbb| 欧美日韩在线免费播放| 鲁鲁在线中文| 天天综合色天天综合| 小泽玛利亚av在线| 黄色av电影在线播放| 国产精品看片你懂得| 欧美日韩在线观看一区| 亚洲区小说区图片区| 不卡大黄网站免费看| 91入口在线观看| 97在线公开视频| 久久精品99国产国产精| 国产精品久久久久免费a∨大胸| 天天做天天爱夜夜爽| 亚洲国产专区校园欧美| 欧美精品日韩三级| 五月天婷婷色综合| 欧美福利影院| 久久高清视频免费| 婷婷久久综合网| 中国成人一区| 欧美日韩成人在线观看| 免费网站看av| 亚洲精品美女91| 91精品国产色综合久久不卡98| 国产精品成人aaaa在线| 亚洲特级毛片| 日本sm极度另类视频| 精品国产一区二区三区四| 亚洲综合日本| 国产福利精品视频| 这里只有精品9| 国产精品一区三区| 国产精品一区二区三区免费| 亚洲色图21p| 久久一区二区三区国产精品| 欧美性bbwbbwbbwhd| av资源网在线观看| 亚洲欧洲精品一区二区三区不卡| 视频一区二区视频| 超级碰碰不卡在线视频| 狠狠爱在线视频一区| 成年人视频在线免费| 精品国产黄a∨片高清在线| 欧美在线不卡视频| 99精品视频免费版的特色功能| 综合久久成人| 亚洲色在线视频| 乱老熟女一区二区三区| 欧美日韩成人| 日本一区二区不卡| 在线视频1卡二卡三卡| 国产成人亚洲综合a∨婷婷 | 性生活在线视频| 精品亚洲精品| 色妞在线综合亚洲欧美| 黄色一级免费视频| 中文精品视频| 91久热免费在线视频| 少妇一级淫片免费看| 日本一区二区免费在线观看视频| 在线观看av的网址| 成人影院入口| 日韩欧美综合一区| 精品国产av无码| 欧美日韩91| 国产精品一区二区久久精品| а√中文在线资源库| 国产亚洲欧美一区在线观看| 特大黑人娇小亚洲女mp4| 国产精品迅雷| 欧美电影精品一区二区| 神马久久久久久久久久久| 欧美日韩1区| 国产精品影院在线观看| 天堂国产一区二区三区| 一区二区中文字幕在线| 成人在线免费在线观看| 亚洲国产一区二区三区网站| 在线精品91av| 亚洲欧美综合自拍| 成人精品小蝌蚪| 伊人久久大香线蕉精品| 老司机2019福利精品视频导航 | 婷婷在线免费观看| 综合中文字幕亚洲| 可以免费观看av毛片| 97视频一区| 久久综合网hezyo| 最近中文字幕在线免费观看| 91蝌蚪porny成人天涯| 屁屁影院ccyy国产第一页| 国产精品天堂蜜av在线播放| 国产午夜精品理论片a级探花| 久草网视频在线观看| 精品一区二区三区免费观看| 偷拍视频一区二区| 欧美成a人片在线观看久| 日韩经典第一页| 久久精品无码人妻| 国产米奇在线777精品观看| 午夜精品区一区二区三| 欧美性猛交xxx高清大费中文| 亚洲成年人影院在线| 强乱中文字幕av一区乱码| 狠狠色综合播放一区二区| 亚洲春色在线| 精品久久在线| 久久国内精品一国内精品| 又污又黄的网站| 中文字幕不卡在线播放| 少妇网站在线观看| 久久婷婷蜜乳一本欲蜜臀| 国产精品91久久| 国产黄色免费在线观看| 欧美性生活一区| 蜜桃传媒一区二区亚洲| 日韩精品欧美精品| 亚洲成人自拍视频| 国产成人精选| 久久久国产视频| av av片在线看| 亚洲伊人伊色伊影伊综合网| 性农村xxxxx小树林| 亚洲国产一区二区三区高清| 精品在线不卡| 精品视频一区二区三区四区五区| 国产一区二区三区视频 | 国模一区二区三区白浆| 亚洲AV无码成人精品一区| 国产激情一区| 欧美高清视频在线观看| 日本免费网站在线观看| 高跟丝袜一区二区三区| 精品一区二区三区蜜桃在线| 久久99精品网久久| 成人在线视频一区二区三区 | 四虎影院一区二区三区| 欧洲午夜精品| 久久久久久久爱| 精品av中文字幕在线毛片| 欧美自拍丝袜亚洲| 成人性生活毛片| 97久久超碰国产精品电影| 免费看a级黄色片| 91精品久久久久久久蜜月| 国产精品国产精品国产专区蜜臀ah| 狼人综合视频| 久久精品国产精品亚洲| 好男人www在线视频| 91黄色在线观看| 欧美成人综合色| 久久夜色精品一区| 婷婷激情综合五月天| 亚洲美女视频在线免费观看| 亚洲成人自拍| 欧美电影免费网站| 91精品国产综合久久香蕉最新版| www视频在线观看| 最新的欧美黄色| 日韩中文字幕影院| 欧美色图12p| 亚洲激情视频一区| 国产精品入口麻豆九色| 2一3sex性hd| 黄页视频在线91| 久章草在线视频| 欧美激情五月| 亚洲欧洲日韩综合二区| 天堂av一区二区三区在线播放| 成人xxxx视频| 偷拍视频一区二区三区| 欧美交受高潮1| 免费a级在线播放| 亚洲欧美激情四射在线日| 成人高潮片免费视频| 欧美日韩和欧美的一区二区| 福利一区二区三区四区| 亚洲色图欧美偷拍| 免费看的黄色录像| 91丨porny丨户外露出| 四虎国产精品免费| 人妖欧美一区二区| www一区二区www免费| 黄色日韩在线| 国产四区在线观看| 日韩久久久久| 日产精品一线二线三线芒果| 国产成人澳门| 国产精品麻豆免费版| 亚洲午夜剧场| 国产欧美久久久久久| 播放一区二区| 国产成人一区二| 亚洲啊v在线| 欧美一级片一区| 国产免费拔擦拔擦8x在线播放| 欧美精品少妇videofree| 黄色网页在线免费看| 按摩亚洲人久久| 久久日韩视频| 久久精品色欧美aⅴ一区二区| shkd中文字幕久久在线观看| 亚洲人成电影网站色…| 免费在线黄色网址| 亚洲欧美福利视频| 可以在线观看的黄色| 亚洲欧美中文日韩在线| 欧美高清成人| 在线播放日韩精品| jizzjizz在线观看| 中文字幕日韩专区| 欧美13一16娇小xxxx| 日韩色av导航| 99在线播放| 欧美激情欧美狂野欧美精品| 日本大片在线播放| 国模私拍一区二区三区| 国产精品一区二区日韩| 欧美一级在线播放| 欧美韩国亚洲| 国产精品视频精品| 亚洲精品成人一区| 亚洲一区二区三区久久 | 无人区在线高清完整免费版 一区二| 欧美在线亚洲在线| 日韩欧美一区二区三区在线观看| 国产精品国模在线| 亚洲爽爆av| 国产日韩欧美二区| 久草在线成人| 一区二区精品国产| 天天做天天爱天天爽综合网| 国产在线无码精品| 国产精品久久久久久模特| 日本成人中文字幕在线| 国产在线播放一区| 亚洲第一黄色网址| 中国av一区二区三区| 四虎精品免费视频| 午夜久久电影网| 69亚洲精品久久久蜜桃小说 | 欧美一区二区三区激情| 亚洲精品一区中文| 男人资源在线播放| 久久久久久91香蕉国产| 亚洲精品一级二级| 亚洲a区在线视频| 希岛爱理av免费一区二区| 天天人人精品| 激情综合网址| xx欧美撒尿嘘撒尿xx| 成人一区二区三区视频 | 天堂美国久久| 我的公把我弄高潮了视频| 免费亚洲电影在线| 波多野吉衣在线视频| 久久蜜桃av一区精品变态类天堂| 日韩欧美123区| 日韩欧美在线国产| jizz中国少妇| 伊人久久免费视频| 成人免费高清观看| 国产欧美一区二区三区在线看| h视频久久久| 亚洲欧洲三级| 亚洲资源av| 欧美丰满熟妇bbb久久久| 国产亚洲精品免费| 黄色片视频网站| 日韩午夜激情免费电影| 92国产在线视频| 欧美一乱一性一交一视频| 麻豆视频久久| 国产精品美女在线播放| 久久久久久自在自线| 国产高潮失禁喷水爽到抽搐| 国产精品久久一卡二卡| aaaaaa毛片| 亚洲国产美女精品久久久久∴| 麻豆tv免费在线观看| 国产精品69精品一区二区三区| 国产精品欧美大片| 特级西西444| 韩国欧美一区二区| 久久精品色妇熟妇丰满人妻| 欧美日韩国产中文精品字幕自在自线| av网站在线免费看| 日韩有码在线播放| 国产精品扒开腿做爽爽爽视频软件| 国产精品一区二区三区免费| 午夜久久黄色| 天天操精品视频| 日韩美女视频一区二区| 在线播放国产一区| 亚洲视频自拍偷拍| 中文字幕不卡三区视频| 国内一区二区三区在线视频| 欧美日韩精品免费观看视频完整| 在线一区二区不卡| 国产精品三级视频| 一级片免费观看视频| 在线播放亚洲激情| av亚洲一区二区三区| 欧美三日本三级少妇三99| 亚洲免费影视| 一区二区三区少妇| 黑人巨大精品欧美一区免费视频 | 97免费公开视频| 亚洲欧美另类图片小说| 国产男女猛烈无遮挡| 久久亚洲国产成人| 久久99成人| 欧美国产视频一区| 成人黄色一级视频| 日韩大片免费在线观看| 亚洲第一福利视频| 忘忧草在线影院两性视频| 久久精品一区二区三区不卡免费视频| 99在线精品视频在线观看| 日韩 中文字幕| 日本道免费精品一区二区三区| 丁香婷婷在线| 91欧美精品成人综合在线观看| 亚洲无中文字幕| 欧美午夜精品一区二区| 午夜亚洲国产au精品一区二区| 亚洲欧美日本在线观看| 日本欧美黄网站| 青青草91久久久久久久久| 国产aⅴ爽av久久久久| 亚洲精品亚洲人成人网| 日本久久一级片| 国产精品aaa| 亚洲精品a级片| 污污污www精品国产网站| 在线视频中文字幕一区二区| 日本中文字幕在线观看| av在线不卡一区| 久久久精品五月天| 三年中国中文观看免费播放| 欧美人妇做爰xxxⅹ性高电影| 欧美色图天堂| 欧美精品一区三区在线观看| 精品亚洲aⅴ乱码一区二区三区| 加勒比av在线播放| 日韩精品免费在线观看| 国外成人福利视频| avav在线播放| 国产日韩欧美激情| 精品毛片在线观看| 清纯唯美日韩制服另类| 亚州av乱码久久精品蜜桃| 国产十八熟妇av成人一区| 欧美日韩第一区日日骚| 青春草视频在线| 色女人综合av| 成人午夜短视频| 中文字幕视频二区| 高清视频欧美一级| 欧美肥老太太性生活| 天天躁日日躁狠狠躁免费麻豆| 欧美性受xxxx黑人xyx性爽| 国产99re66在线视频| 亚洲人久久久| 91麻豆免费看| 亚洲av无码国产综合专区| 国产精品99免视看9| 亚洲日本久久| 唐朝av高清盛宴|