精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久精品日产第一区二区三区高清版 | 国产毛片在线| 日韩电影免费在线看| 中文字幕亚洲欧美在线不卡| 亚洲mm色国产网站| 97人人澡人人爽人人模亚洲| 欧美美女在线| 欧美一区二区久久| 无码人妻h动漫| 成人短视频在线| 91原创在线视频| 成人在线免费观看视视频| 日韩福利片在线观看| 日韩精品永久网址| 亚洲精品大尺度| 福利视频999| 精品国产第一福利网站| 玉米视频成人免费看| 日本一区网站| 午夜成人免费影院| 国产乱妇无码大片在线观看| 日本电影亚洲天堂| 国产一级中文字幕| 久久精品一区二区不卡| 国产亚洲欧美aaaa| 成年人的黄色片| 日韩08精品| 欧美日韩一级黄| www.亚洲天堂网| 麻豆免费在线| 亚洲图片有声小说| 91九色国产ts另类人妖| 97视频在线观看网站| 久久在线观看免费| 国产伦精品一区二区三区高清| 亚洲最大成人在线视频| 日韩电影在线一区| 欧美有码在线观看| 色播视频在线播放| 国产一区二区三区自拍| 美女撒尿一区二区三区| 国产探花视频在线| 精品产国自在拍| 精品亚洲aⅴ在线观看| 少妇被狂c下部羞羞漫画| 在线精品视频一区| 欧美大片在线观看一区| 佐佐木明希电影| 亚洲一区二区免费在线观看| 日韩欧美一级二级三级久久久| 九九久久久久久| 亚洲免费看片| 3d动漫精品啪啪1区2区免费| jizz18女人| 欧美a一级片| 欧美日韩精品欧美日韩精品一 | 久久综合九色欧美综合狠狠| 国产精品一区二区在线观看| 欧美在线 | 亚洲| 国产大片一区二区| 91久久国产综合久久蜜月精品| 精品人妻少妇AV无码专区| 懂色av中文一区二区三区| 国产精品麻豆免费版| 手机看片福利永久| 久久综合九色综合欧美就去吻| 欧美另类高清视频在线| caoporn国产精品免费视频| 中文字幕精品三区| 做爰高潮hd色即是空| av在线播放观看| 亚洲线精品一区二区三区| 国产v片免费观看| 中文在线最新版地址| 欧美亚洲精品一区| 不卡中文字幕在线观看| 大陆精大陆国产国语精品| 亚洲韩国日本中文字幕| b站大片免费直播| 日韩在线中文| 久久久久久久久久久国产| 久久久久久久久久影院| 久久精品理论片| 99国产超薄丝袜足j在线观看 | 国产黄色一级网站| 久久野战av| 欧美一区二区三区男人的天堂| 国产精品偷伦视频免费观看了 | 国产一区二区三区在线观看网站 | 欧美日本免费一区二区三区| 人妻精品久久久久中文字幕69| 老司机成人在线| 中文字幕亚洲一区二区三区| 欧美日韩免费做爰视频| 久久久久欧美精品| 91天堂在线视频| 亚洲欧美丝袜中文综合| 中文字幕一区二区不卡| 你真棒插曲来救救我在线观看| 精品视频一区二区三区四区五区| 日韩一区二区三区高清免费看看| 性久久久久久久久久| 一区二区电影| 日本高清视频一区| 亚洲不卡免费视频| 国产精品三级视频| 少妇av一区二区三区无码| 另类一区二区| 日韩精品丝袜在线| www.av视频| 奇米亚洲午夜久久精品| 国产主播一区二区三区四区| 日本中文字幕视频在线| 欧美性xxxx在线播放| 热久久久久久久久| 极品美女一区二区三区| 韩国日本不卡在线| 91精品中文字幕| 国产午夜精品福利| 成年人午夜视频在线观看| 日韩伦理一区二区| 国产亚洲美女精品久久久| 黄色一级片免费看| 国产盗摄精品一区二区三区在线 | 欧美一区二区三区不卡| 国产三级黄色片| 小嫩嫩精品导航| 精品国产乱码久久久久久丨区2区| 国产不卡在线| 在线播放一区二区三区| 国产精品麻豆免费版现看视频| 丝袜美腿亚洲综合| 欧美精品v日韩精品v国产精品| 欧美性爽视频| 日韩亚洲欧美在线观看| 午夜剧场免费在线观看| 麻豆精品视频在线观看免费| 日韩动漫在线观看| 日韩视频网站在线观看| 亚洲视频一区二区| 亚洲精品1区2区3区| 高潮精品一区videoshd| 男人的天堂avav| 欧美午夜网站| 欧美激情视频网| www.久久精品.com| 一二三四区精品视频| 老司机av网站| 欧美天天在线| 国产精品免费观看高清| 波多野结衣在线观看| 亚洲精品一区二区三区福利| 中文字幕一区二区三区手机版| www.欧美.com| 久久精品.com| 精品一区不卡| 91视频九色网站| 丝袜中文在线| 亚洲精品成人av| 精人妻无码一区二区三区| 国产精品美女久久久久久久网站| 一区二区xxx| 亚洲第一天堂| 国产区一区二区| 丁香六月综合| 深夜福利一区二区| 亚洲国产精品久久人人爱潘金莲| 亚洲午夜电影在线观看| 亚洲国产果冻传媒av在线观看| 久久国产精品久久w女人spa| 日韩av电影免费在线| 日韩成人在线一区| 欧美高清性猛交| 色视频在线看| 欧美日韩大陆在线| 精品一区二区三区四| 91亚洲资源网| 九九热免费在线观看| 欧美aa国产视频| 久久精品中文字幕一区二区三区| 先锋欧美三级| 欧美成人精品在线| 瑟瑟在线观看| 91精品国产一区二区三区| 久久久99精品| 欧美激情综合五月色丁香小说| 国产精品嫩草影院8vv8| 亚洲国产二区| 亚洲永久一区二区三区在线| 日韩一级淫片| 国产成人久久久| 污视频在线看网站| 亚洲美女自拍视频| 99在线观看精品视频| 欧美性猛交xxx| 91久久国产综合| 久久久777精品电影网影网| 伊人五月天婷婷| 久久精品电影| 日韩a级黄色片| 波多野结衣在线播放一区| 99精品国产高清在线观看| 激情亚洲影院在线观看| 欧美丰满少妇xxxx| aⅴ在线视频男人的天堂| 精品国产91亚洲一区二区三区婷婷| 中文人妻av久久人妻18| 亚洲成人自拍网| 99久久99久久精品国产| 久久久99久久| 老熟妇精品一区二区三区| 激情综合网最新| 日韩精品一区二区三区不卡| 国内精品久久久久久久影视蜜臀 | 成人av播放| av成人免费看| 91高清免费在线观看| 天堂va在线| 久久久精品国产网站| 国产黄在线看| 亚洲男人天堂网| 五月婷婷狠狠干| 精品女同一区二区| 99热这里只有精品在线| 69堂国产成人免费视频| 最近中文字幕在线观看| 色香蕉成人二区免费| 国产精品23p| 亚洲午夜国产一区99re久久| 欧美激情精品久久| 亚洲人被黑人高潮完整版| 四虎影视1304t| 国产欧美日韩久久| 国产乱了高清露脸对白| 成人黄色在线网站| 深夜视频在线观看| 国产成人午夜精品影院观看视频 | 国产精品国产| 99国产超薄肉色丝袜交足的后果 | 亚洲福利视频免费观看| 亚洲第一天堂在线观看| 91精品国产综合久久久久久久久久 | 亚洲国产影院| 天堂…中文在线最新版在线| 精品电影一区| 黄色一级在线视频| 99伊人成综合| 国产性xxxx18免费观看视频| 久久福利一区| 爱情岛论坛vip永久入口| 视频一区二区三区在线| 艹b视频在线观看| 国模一区二区三区白浆| 国产精品探花在线播放| 国产精品一区二区黑丝| 国产免费a级片| 成人国产一区二区三区精品| 欧美大喷水吹潮合集在线观看| 不卡的电视剧免费网站有什么| 色噜噜在线观看| 国产亚洲污的网站| 熟女少妇a性色生活片毛片| 亚洲特黄一级片| 久久在线视频精品| 欧美日韩国内自拍| aaaaaa毛片| 欧美日韩在线亚洲一区蜜芽| a天堂在线视频| 亚洲高清在线观看| 电影在线高清| 久久视频在线观看免费| av伦理在线| 国产精品扒开腿做爽爽爽的视频| 欧美黄页免费| 成人综合电影| av一区二区在线播放| 91制片厂免费观看| 在线一区免费观看| 久久国产这里只有精品| 成人午夜视频网站| 天天干天天操天天拍| 亚洲最大成人综合| www.国产毛片| 日韩色在线观看| 猫咪在线永久网站| 欧美xxxx18性欧美| 中文字幕资源网在线观看免费| 国产综合香蕉五月婷在线| 给我免费播放日韩视频| 日韩国产在线一区| 激情欧美日韩一区| 污污网站免费看| 成人a区在线观看| 精品女人久久久| 天天综合色天天| 在线视频1卡二卡三卡| 亚洲成人av片| 麻豆网站在线看| 欧美最猛黑人xxxx黑人猛叫黄| 天天综合91| 欧美黑人3p| 亚洲午夜精品久久久久久app| 性欧美极品xxxx欧美一区二区| 国产精品一区一区三区| 久久久久久国产免费a片| 亚洲成av人**亚洲成av**| 国产精品高潮呻吟久久久| 亚洲欧美日韩精品久久亚洲区| 污污片在线免费视频| 国产精品亚洲精品| 日韩av影院| 久久精品xxx| 国内不卡的二区三区中文字幕| 好吊视频在线观看| 午夜视频在线观看一区| 99国产精品久久久久久久成人 | 国产亚洲欧美精品久久久www| 欧美亚日韩国产aⅴ精品中极品| 日韩一区二区三区在线观看视频| 久久精品福利视频| 欧美日韩在线精品一区二区三区激情综合| 国产精品日韩高清| 欧美成人69av| 三级黄色片播放| 国产又大又黄的视频| 欧美久久一二区| 毛片在线能看| 国产91|九色| 菁菁伊人国产精品| 成人免费a级片| 国产精品18久久久久久久网站| 国产三级精品三级观看| 欧美三级午夜理伦三级中视频| 欧美xxx.com| 奇米4444一区二区三区| 欧美大胆a级| 久久久久久久久久久99| 成人免费观看av| 国产精品第108页| 亚洲精品在线观| 久草在线资源站资源站| av在线不卡一区| 欧美天天视频| 亚洲少妇18p| 婷婷久久综合九色综合伊人色| 黄色av网址在线| 5566日本婷婷色中文字幕97| 亚洲最大在线| 日日摸天天爽天天爽视频| 国产午夜亚洲精品羞羞网站| 精品一区二区无码| 在线观看国产精品日韩av| 日本中文字幕视频一区| 熟妇熟女乱妇乱女网站| 国产精品一区二区在线看| 久草视频手机在线观看| 亚洲国产黄色片| 成人福利视频| 亚洲精品国产精品国自产观看| 精品一区二区三区久久| 欧美成人一区二区三区高清| 欧美r级在线观看| 人人草在线视频| 婷婷久久五月天| 国产在线精品一区二区不卡了 | 欧美视频中文字幕| 成视频免费观看在线看| 国产精品一区二区三区在线| 久久久国产精品一区二区中文| 国产aaaaaaaaa| 日韩欧美一区二区免费| 原纱央莉成人av片| 亚洲国产欧洲综合997久久| 国产高清不卡一区| 欧美一区二区激情视频| 日韩中文在线视频| 高潮按摩久久久久久av免费| caopor在线视频| 亚洲人吸女人奶水| 瑟瑟在线观看| 92国产精品视频| 国产精品视频久久一区| 992在线观看| 亚洲精品电影网| 涩涩涩久久久成人精品| 欧美成人免费在线观看视频| 中文文精品字幕一区二区| 超碰在线人人干| 国产精品高潮呻吟视频| 欧美精品97| 先锋影音av在线| 日韩精品中午字幕| 欧美va视频| 欧美在线一区视频| 亚洲欧洲av一区二区三区久久| 黑人操亚洲女人| 国产欧美在线视频| 国产精品日韩精品欧美精品| 国产精品久久久免费看| 日韩av在线免费观看|