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

门户网站开发请示百度指数批量

门户网站开发请示,百度指数批量,兰州中川国际机场电话,赶集网官网一:背景 1. 讲故事 在我的分析之旅中,遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多…

一:背景

1. 讲故事

在我的分析之旅中,遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多了什么鬼都能撞上。

前几天有位朋友找到过,我他们的程序内存在慢慢的泄露,最后程序会出现崩溃,不知道是什么导致的,让我帮忙看一下怎么回事,简单分析后发现是非托管泄露,让朋友开启了ust并在内存超出预期时抓了一个dump下来,接下来就是分析了。

二:WinDbg 分析

1. 到底是哪里的泄露

相信一直追这个系统的朋友应该知道怎么判断,很简单, 看下 MEM_COMMITHEAP 指标即可,使用 !address -summary 命令输出如下:


0:000> !address -summary--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
Heap                                    678          93bd0000 (   2.308 GB)  65.39%   57.71%
<unknown>                              2610          3005d000 ( 768.363 MB)  21.26%   18.76%
Free                                    515          1e133000 ( 481.199 MB)           11.75%
Image                                  1526          118f8000 ( 280.969 MB)   7.77%    6.86%
Other                                    19           804e000 ( 128.305 MB)   3.55%    3.13%
Stack                                   390           4900000 (  73.000 MB)   2.02%    1.78%
TEB                                      73             49000 ( 292.000 kB)   0.01%    0.01%
PEB                                       1              1000 (   4.000 kB)   0.00%    0.00%--- State Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_COMMIT                             4477          c51f9000 (   3.080 GB)  87.25%   77.00%
MEM_FREE                                515          1e133000 ( 481.199 MB)           11.75%
MEM_RESERVE                             820          1ccc4000 ( 460.766 MB)  12.75%   11.25%--- Largest Region by Usage ----------- Base Address -------- Region Size ----------
Heap                                        38be0000            fd0000 (  15.812 MB)
<unknown>                                     cc6000           7fd9000 ( 127.848 MB)
Free                                        f7590000           88bf000 ( 136.746 MB)
Image                                       5ab2c000            e41000 (  14.254 MB)
Other                                        8cee000           7fb0000 ( 127.688 MB)
Stack                                       14610000             fd000 (1012.000 kB)
TEB                                         ffe51000              1000 (   4.000 kB)
PEB                                         fffde000              1000 (   4.000 kB)

从卦中看,3G的提交内存,Heap 吃了 2.3G,也就表明是 NTHEAP 的泄露,这是一块非托管内存区域,一般都是 C/C++ 语言用 malloc 或者 new 分配的内存,接下来深挖下 NTHEAP 即可,使用 !heap -s 命令。


0:000> !heap -s
SEGMENT HEAP ERROR: failed to initialize the extention
NtGlobalFlag enables following debugging aids for new heaps:stack back traces
LFH Key                   : 0x7c31b93c
Termination on corruption : DISABLEDHeap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast (k)     (k)    (k)     (k) length      blocks cont. heap 
-----------------------------------------------------------------------------
00200000 08000002  178304 138172 178304  42165  1747    56    0     34   LFHExternal fragmentation  30 % (1747 free blocks)
006c0000 08001002    1088    224   1088     18     8     2    0      0   LFH
00590000 08041002     256      4    256      2     1     1    0      0      
006a0000 08001002    3136   1184   3136    153    82     3    0      0   LFHExternal fragmentation  12 % (82 free blocks)
00570000 08001002    1088    224   1088     18     8     2    0      0   LFH
...   
15710000 08001002 2185152 2179432 2185152    442  1323   139    0      0   LFH
...

从卦中信息看, 15710000 吃了2.18G,也就表明它是吃内存的主力,这里简单说一下,00200000 是默认的进程堆,除了这个之外都是用非托管代码调用 Win32API 的 HeapCreate 方法创建出来的,接下来就得看下是什么代码创建的。

2. 到底是谁创建的

要想知道是谁创建的,一定要在注册表中开启 ust 选项,大家可以了解下 gflags.exe 工具,参考如下:


PS C:\Users\Administrator\Desktop> gflags /i Example_17_1_7.exe +ust
Current Registry Settings for Example_17_1_7.exe executable are: 00001000ust - Create user mode stack trace database

开启之后 win32api 的 HeapAlloc 方法的内部中会到注册表中看一下是否有 ust 值,如果有就会记录分配的调用栈,这样就知道是谁创建的,抓取dump后可以用windbg的 !gflag 命令看下是否开启成功,参考输出如下:


0:000> !gflag
Current NtGlobalFlag contents: 0x00001000ust - Create user mode stack trace database

接下来对 Heap=15710000 进行一个 block 分组,看下是否有一些有价值的信息。


0:000> !heap -stat -h 15710000heap @ 15710000
group-by: TOTSIZE max-display: 20size     #blocks     total     ( %) (percent of total busy bytes)2cb dea4 - 26dd40c  (9.58)2d7 c778 - 23675c8  (8.72)d0 26d64 - 1f8e140  (7.78)7c5 2c50 - 1584990  (5.30)cb 14449 - 10125e3  (3.96)83c 16c2 - bb6578  (2.89)cf9 bc4 - 98a1a4  (2.35)1f51 3da - 789dfa  (1.86)...

从卦中数据看没有哪个size占用的特别高,接下来就依次从高往低看,发现都是和 prthook 有关,参考输出如下:


0:000> !heap -flt s 2cb_HEAP @ 15710000HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state1571f948 005d 0000  [00]   1571f960    002cb - (busy)15649d70 005d 005d  [00]   15649d88    002cb - (busy)...3ec4b900 005d 005d  [00]   3ec4b918    002cb - (busy)3ec4bbe8 005d 005d  [00]   3ec4bc00    002cb - (busy)3ec4bed0 005d 005d  [00]   3ec4bee8    002cb - (busy)3ec4c1b8 005d 005d  [00]   3ec4c1d0    002cb - (busy)...0:000> !heap -flt s 2d7HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state15665550 005e 0000  [00]   15665568    002d7 - (busy)1566b930 005e 005e  [00]   1566b948    002d7 - (busy)1566df98 005e 005e  [00]   1566dfb0    002d7 - (busy)1566e288 005e 005e  [00]   1566e2a0    002d7 - (busy)...39e3acc8 0061 0061  [00]   39e3ace0    002d7 - (busy)39e3c508 0061 0061  [00]   39e3c520    002d7 - (busy)39e3c810 0061 0061  [00]   39e3c828    002d7 - (busy)39e3cb18 0061 0061  [00]   39e3cb30    002d7 - (busy)39e3ce20 0061 0061  [00]   39e3ce38    002d7 - (busy)0:000> !heap -p -a 3ec4c1b8address 3ec4c1b8 found in_HEAP @ 15710000HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state3ec4c1b8 005d 0000  [00]   3ec4c1d0    002cb - (busy)771dd969 ntdll!RtlAllocateHeap+0x00000274153e7439 prthook!MyShowWindow+0x0001d1f9153e543c prthook!MyShowWindow+0x0001b1fc153476ab prthook+0x000276ab0:000> !heap -p -a 39e3ce20address 39e3ce20 found in_HEAP @ 15710000HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state39e3ce20 0061 0000  [00]   39e3ce38    002d7 - (busy)771dd969 ntdll!RtlAllocateHeap+0x00000274153e7439 prthook!MyShowWindow+0x0001d1f9153e543c prthook!MyShowWindow+0x0001b1fc153476ab prthook+0x000276ab

3. prthook 到底为何方神圣

从前一节的卦中数据看,貌似 prthook 在不断的弹框,在弹框中用 ntdll!RtlAllocateHeap 分配了非托管内存,那 prthook 到底是个啥呢?可以用 lmvm 看下。


0:000> lmvm prthook
Browse full module list
start    end        module name
15320000 155dc000   prthook    (export symbols)       prthook.dllLoaded symbol image file: prthook.dllImage path: C:\Windows\SysWOW64\prthook.dllImage name: prthook.dllBrowse all global symbols  functions  dataTimestamp:        Thu Jun 22 17:16:53 2017 (594B8B05)CheckSum:         001F4972ImageSize:        002BC000File version:     16.17.6.22Product version:  16.17.6.22File flags:       0 (Mask 3F)File OS:          40004 NT Win32File type:        2.0 DllFile date:        00000000.00000000Translations:     0804.04b0Information from resource tables:CompanyName:      Beijing VRV Software Co.,LtdProductName:      edpInternalName:     prthookOriginalFilename: prthook.dll_DBProductVersion:   16, 17, 6, 22FileVersion:      16, 17, 6, 22FileDescription:  prthook_DBLegalCopyright:   Copyright (C) 2016 Beijing VRV Software Co.,LtdComments:         中英文版

从卦中数据看,prthook.dll 所属公司为 Beijing VRV Software Co.,Ltd,无语的是把这个第三方的dll放在Windows的系统目录 C:\Windows\SysWOW64 下,容易让人觉得有点 鸠占鹊巢,接下来查一下百度,发现是 北信源 的,截图如下:

有了这些信息,告诉朋友让客户把这个安全软件卸载掉就可以了。

三:总结

程序的故障如果不是我们的代码造成的,你想通过排查代码找出问题是不可能的事情,追过这个系列的朋友应该深有体会,常见的外在因素有:

  • 杀毒软件
  • 电磁辐射
  • 显卡问题
http://www.khdw.cn/news/20490.html

相关文章:

  • 手机网站建设合同东莞seo排名外包
  • 做黑龙头像的网站抖音推广公司
  • 网页模板下载好后怎么用北京seo教师
  • 能自己做照片书的有哪些网站搜索引擎优化要考虑哪些方面
  • 企业每年向工商网站做申报淘宝运营一般要学多久
  • 汕头网站设计制作公司app营销
  • 做的网站没有手机版安卓优化大师旧版本
  • 网站域名和网站urlseo知识分享
  • 独立网站视觉设计优化品牌seo百度点击软件
  • html5网站开发demo湖南靠谱的关键词优化哪家好
  • 团购网站优化网络营销公司如何建立
  • 外贸西班牙语网站建设想要推广页
  • wordpress用什么语言包seo外包靠谱
  • 做视频网站视频短片场景营销
  • 常州网站建设百科百度地图广告投放
  • 小企业做网站多少钱网络推广推广培训
  • 如何做网站开发seo查询平台
  • seo优化网站建设哪家好百度贴吧怎么做推广
  • 淘宝做的网站可靠吗b站网页入口
  • 重庆网站制作设计教育培训机构管理系统
  • 一天赚30000的偏门seo网站推广企业
  • 网站地图什么时候提交好如何把一个关键词优化到首页
  • 中国建设银行假网站上海网络优化服务
  • wordpress html编辑器插件seo怎么优化武汉厂商
  • 阿里巴巴网站建设缺点广州网络广告推广公司
  • 大连建设工程信息网专家库网络营销seo是什么意思
  • 关于推进政府网站集约化建设的通知静态网页制作
  • 河南建设部网站官网武汉做seo公司
  • 网站后台英文百度手机网页
  • 诸城网站做的好的关键词挖掘啊爱站网