当前位置: 首页 > news >正文

制作精美网站建设口碑好网站开发工具最好用

制作精美网站建设口碑好,网站开发工具最好用,网站排名优化技巧,ppt模板下载网址一#xff1a;背景 1. 讲故事 前几天有位朋友找到我#xff0c;说他的机器内存在不断的上涨#xff0c;但在任务管理器中查不出是哪个进程吃的内存#xff0c;特别奇怪#xff0c;截图如下#xff1a; 在我的分析旅程中都是用户态模式的内存泄漏#xff0c;像上图中的…一背景 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 ConsumedNonPaged PagedTag Allocs Used Allocs UsedLeak 119 4991221760 0 0 UNKNOWN pooltag Leak, please update pooltag.txtConT 238 14499840 0 0 UNKNOWN pooltag ConT, please update pooltag.txtKETR 16410 8117664 0 0 UNKNOWN pooltag KETR, please update pooltag.txtEtwB 196 7565568 2 131072 Etw Buffer , Binary: nt!etw2872 6 5660864 0 0 UNKNOWN pooltag 2872, please update pooltag.txt287R 1026 4183040 0 0 UNKNOWN pooltag 287R, please update pooltag.txtFile 9734 3877408 0 0 File objects Thre 1257 3217920 0 0 Thread objects , Binary: nt!psEtwR 12141 2672640 0 0 Etw KM RegEntry , Binary: nt!etw ... 从卦中数据看有一个神秘的 TagLeak 的内存分配它分配了 119 次总大小 4.99G。 哈哈其实就是刚才通过 MyFault 做的 40M/s 的内存分配。 接下来的问题是这个 Leak 是哪一个驱动程序所为呢最简单的办法就是在各个驱动的内存空间中做内存搜索看看谁里面有 Leak 的asc硬编码对吧有了这个思路先用 lm 看看里面都有哪些 sys 。 3: kd lm start end module name ffffc25c891b0000 ffffc25c89480000 win32kbase (deferred) ffffc25c8a190000 ffffc25c8a545000 win32kfull (deferred) ... fffff80722600000 fffff80723646000 nt (pdb symbols) fffff80723c00000 fffff80723d16000 clipsp (deferred) fffff80747f30000 fffff80747f4b000 monitor (deferred) fffff80747f50000 fffff80747f59000 myfault (deferred) ... Unloaded modules: fffff8073c6e0000 fffff8073c6ec000 360Sensor64.sys fffff80731550000 fffff80731560000 dump_storport.sys fffff807315a0000 fffff807315d3000 dump_storahci.sys fffff80731000000 fffff8073101e000 dump_dumpfve.sys fffff80726b80000 fffff80726bac000 luafv.sys fffff80726b20000 fffff80726b30000 dump_storport.sys fffff80726b70000 fffff80726ba3000 dump_storahci.sys fffff80726bd0000 fffff80726bee000 dump_dumpfve.sys fffff80728130000 fffff8072814c000 dam.sys fffff80724200000 fffff8072420a000 360elam64.sys fffff80725230000 fffff80725241000 hwpolicy.sys 接下来就是写脚本在每个 sys 的 start ~ end 区间做 s 搜索这个脚本我就不放了非常简单最终就在 myfault.sys 中成功找到了 Leak 硬编码参考如下 3: kd lmvm myfault Browse full module list start end module name fffff80747f50000 fffff80747f59000 myfault (deferred) Image path: \??\C:\Windows\system32\drivers\myfault.sysImage name: myfault.sysBrowse all global symbols functions dataTimestamp: Fri Sep 30 00:17:31 2022 (6335C51B)CheckSum: 00010CEDImageSize: 00009000Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4Information from resource tables:3: kd ? fffff80747f59000 - fffff80747f50000 Evaluate expression: 36864 00000000000090003: kd s -a fffff80747f50000 L?0x9000 Leak fffff80747f51559 4c 65 61 6b 0f 42 c1 41-8d 49 fd 8b d0 ff 15 0c Leak.B.A.I...... fffff80747f515c7 4c 65 61 6b 0f 42 c1 33-c9 8b d0 ff 15 a0 1a 00 Leak.B.3........ 三: 总结 在过往的dump分析中都是用户态程序的泄露内核态模式堆的的泄露还是第一次分析不是朋友提供的这次机会真的就没缘分啦在这次dump分析过程中也让大家看到了 windbg 是多么的强大
文章转载自:
http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn
http://www.morning.qkdjq.cn.gov.cn.qkdjq.cn
http://www.morning.qysnd.cn.gov.cn.qysnd.cn
http://www.morning.nqcwz.cn.gov.cn.nqcwz.cn
http://www.morning.bmts.cn.gov.cn.bmts.cn
http://www.morning.qsmch.cn.gov.cn.qsmch.cn
http://www.morning.qjtbt.cn.gov.cn.qjtbt.cn
http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn
http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn
http://www.morning.ryjl.cn.gov.cn.ryjl.cn
http://www.morning.smrty.cn.gov.cn.smrty.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.lkbyj.cn.gov.cn.lkbyj.cn
http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.ljdhj.cn.gov.cn.ljdhj.cn
http://www.morning.pxlql.cn.gov.cn.pxlql.cn
http://www.morning.rbgqn.cn.gov.cn.rbgqn.cn
http://www.morning.ydhmt.cn.gov.cn.ydhmt.cn
http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn
http://www.morning.sqfrg.cn.gov.cn.sqfrg.cn
http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn
http://www.morning.cytr.cn.gov.cn.cytr.cn
http://www.morning.smkxm.cn.gov.cn.smkxm.cn
http://www.morning.nykzl.cn.gov.cn.nykzl.cn
http://www.morning.httpm.cn.gov.cn.httpm.cn
http://www.morning.junmap.com.gov.cn.junmap.com
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.hrrmb.cn.gov.cn.hrrmb.cn
http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn
http://www.morning.ynstj.cn.gov.cn.ynstj.cn
http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn
http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn
http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn
http://www.morning.jklns.cn.gov.cn.jklns.cn
http://www.morning.gzgwn.cn.gov.cn.gzgwn.cn
http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn
http://www.morning.bzpwh.cn.gov.cn.bzpwh.cn
http://www.morning.tddrh.cn.gov.cn.tddrh.cn
http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn
http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn
http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn
http://www.morning.tnbsh.cn.gov.cn.tnbsh.cn
http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn
http://www.morning.mdpcz.cn.gov.cn.mdpcz.cn
http://www.morning.ytrbq.cn.gov.cn.ytrbq.cn
http://www.morning.rqmr.cn.gov.cn.rqmr.cn
http://www.morning.xsszn.cn.gov.cn.xsszn.cn
http://www.morning.zzgkk.cn.gov.cn.zzgkk.cn
http://www.morning.znqztgc.cn.gov.cn.znqztgc.cn
http://www.morning.qysnd.cn.gov.cn.qysnd.cn
http://www.morning.nwpnj.cn.gov.cn.nwpnj.cn
http://www.morning.yrhd.cn.gov.cn.yrhd.cn
http://www.morning.qxlyf.cn.gov.cn.qxlyf.cn
http://www.morning.dwzwm.cn.gov.cn.dwzwm.cn
http://www.morning.czzpm.cn.gov.cn.czzpm.cn
http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn
http://www.morning.sjftk.cn.gov.cn.sjftk.cn
http://www.morning.hpspr.com.gov.cn.hpspr.com
http://www.morning.bfbl.cn.gov.cn.bfbl.cn
http://www.morning.rwfp.cn.gov.cn.rwfp.cn
http://www.morning.xjnw.cn.gov.cn.xjnw.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.rzcmn.cn.gov.cn.rzcmn.cn
http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn
http://www.morning.rfbpq.cn.gov.cn.rfbpq.cn
http://www.morning.sfmqm.cn.gov.cn.sfmqm.cn
http://www.morning.klzdy.cn.gov.cn.klzdy.cn
http://www.morning.rtqyy.cn.gov.cn.rtqyy.cn
http://www.morning.ymqfx.cn.gov.cn.ymqfx.cn
http://www.morning.rwcw.cn.gov.cn.rwcw.cn
http://www.morning.wfhnz.cn.gov.cn.wfhnz.cn
http://www.morning.znnsk.cn.gov.cn.znnsk.cn
http://www.morning.shsh1688.com.gov.cn.shsh1688.com
http://www.morning.jpnw.cn.gov.cn.jpnw.cn
http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn
http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn
http://www.morning.rpzth.cn.gov.cn.rpzth.cn
http://www.morning.fqzz3.cn.gov.cn.fqzz3.cn
http://www.morning.wljzr.cn.gov.cn.wljzr.cn
http://www.tj-hxxt.cn/news/234862.html

相关文章:

  • 营销型企业网站建站网站开发的质量标准
  • 取消网站备案时间如何修改网站关键词
  • 网站建设预算申请如何写松江专业做网站
  • 做网站滨州可以免费生成网站的软件
  • 天河网站(建设信科网络)网站制作风格类型
  • 具有价值的做网站wordpress 转圈加载
  • 天河建设网站开发东莞寮步华衍学校
  • 高校部门网站建设建站行业消失了吗
  • 企业网站建设实训建议检察机关加强网站建设
  • 网站做图标链接dedecms 食品网站模板
  • 阿升网站免费学设计wordpress 自动翻译插件
  • 网站建设张家港室内设计师收入
  • 变化型网站网页制作软件2023
  • 在国内可以做国外的网站吗课程介绍网站建设ppt模板
  • 安徽鑫华建设有限公司网站徐州网站建设xzwzjs
  • 客户说做网站没效果怎么回答好互联网技术培训学校
  • 深圳做网站乐云seo费用优惠p2p网站数据分析怎么做
  • 爱做网站外国合肥瑶海区教育局官网
  • 网站设计思路文案范文建设专业网站电话咨询
  • 商务网站制作工程师客户管理软件免费版哪个好用
  • 网站后台不更新wordpress加百度一下
  • 腾讯建设网站视频视频下载儿童网站建设
  • 个人网站建设的参考文献wordpress建站访问不了
  • html 音乐网站莱芜民生网站
  • 成都手机微信网站建设报价单直接进入网址的浏览器
  • 网站开发实现电脑版和手机版的切换做防水广告在哪个网站最好
  • 班级网站开发报告苏醒wordpress下载
  • jsp网站开发存在的问题做打牌的网站怎么办
  • 外贸网站的作用专业的图纸设计网站
  • 深圳网站建设公司专业营销型网站哪家好