一:背景 1. 讲故事 七月底的时候有位朋友在wx上找到我,说他的程序内存占用8G,托管才占用1.5G,询问剩下的内存哪里去了?截图如下: 从求助内容看,这位朋友真的太客气了,动不动就谈钱,真伤感情,如果有朋友一直关注我的分享,应该知道我一直都是免费分析dump,当然我的知识和经验也是有边界的,有些dump我也搞不定,不过我还是尽自己最大努力去寻找答案. 在这里我有必要说一下职场,在我的潜意识或者在我的团队中,这些很难搞的问题当然由技术领导去搞定,但我发现有好几起却不是这样的,技术经理搞不定转包…
一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的程序出现了内存泄漏,能不能帮他看一下,这个问题还是比较经典的,加上好久没上非托管方面的东西了,这篇就和大家分享一下,话不多说,上 WinDbg 说话. 二:WinDbg 分析 1. 到底是哪里的泄漏 好的开始就是成功的一半,否则就南辕北辙了,对吧,还是用经典的 !address -summary 看一下内存排布情况. 0:000> !address -summary --- Usage Summary ----------------…
一:背景 1. 讲故事 说实话,这篇dump我本来是不准备上一篇文章来解读的,但它有两点深深的感动了我. 无数次的听说用 Unity 可做游戏开发,但百闻不如一见. 游戏中有很多金庸武侠小说才有的名字,太赏心悦目了. 000000df315978a8 0 3 玉骨扇 000000df31597cd8 0 3 云龙枪 000000df31596d88 0 3 阴风爪 000000df315967a8 0 4 雪魂丝链 000000df31596ad0 0 4 乙木神剑 000000df315960…
一:背景 1. 讲故事 上个月有位朋友找到我,说他的程序出现了内存泄漏,不知道如何进一步分析,截图如下: 朋友这段话已经说的非常言简意赅了,那就上 windbg 说话吧. 二:Windbg 分析 1. 到底是哪一方面的泄漏 根据朋友描述,程序运行一段时间后,内存就炸了,应该没造成人员伤亡,不然也不会跟我wx聊天了,这里可以用 .time 看看当前的 process 跑了多久. 0:000> .time Debug session time: Thu Oct 21 14:54:39.000 202…
一:背景 1. 讲故事 前天那位 his 老哥又来找我了,上次因为CPU爆高的问题我给解决了,看样子对我挺信任的,这次另一个程序又遇到内存泄漏,希望我帮忙诊断下. 其实这位老哥技术还是很不错的,他既然能给我dump,那真的是遇到很棘手的疑难杂症了,我得做好心理准备,沟通下来大概就是程序的内存会缓慢膨胀,直到自毁,问题就是这么一个问题,接下来祭出我的看家工具 windbg. 二: windbg 分析 1. 到底哪里泄漏了? 我在之前很多篇文章中都说过,遇到这种内存泄漏,首先就要排查到底是 托管堆…
一:背景 1. 讲故事 上周四有位朋友加wx咨询他的程序内存存在一定程度的泄漏,并且无法被GC回收,最终机器内存耗尽,很尴尬. 沟通下来,这位朋友能力还是很不错的,也已经做了初步的dump分析,发现了托管堆上有 10w+ 的 byte[] 数组,并占用了大概 1.1G 的内存,在抽取几个 byte[] 的 gcroot 后发现没有引用,接下来就排查不下去了,虽然知道问题可能在 byte[],但苦于找不到证据. 那既然这么信任的找到我,我得要做一个相对全面的输出报告,不能辜负大家的信任哈,还是老规…
一:背景 1. 讲故事 上个月中旬,星球里的一位朋友在微信找我,说他的程序跑着跑着内存会不断的缓慢增长并无法释放,寻求如何解决 ? 得,看样子星球还得好好弄!!! 不管怎么说,先上 windbg 说话. 二:Windbg 分析 1. 经验推理 从朋友的截图看,有大量的 8216 字节的 byte[],这表示什么呢? 追随本系列的朋友应该知道,有一篇 某三甲医院 的内存暴涨的dump中,也同样有此 size= (8216-24=8192) 的 byte[] 数组, 他的问题是 Oracle 中读取…
一:背景 1. 讲故事 上个月有位朋友加微信求助,说他的程序跑着跑着就内存爆掉了,寻求如何解决,截图如下: 从聊天内容看,这位朋友压力还是蛮大的,话说这貌似是我分析的第三个 MES 系统了,看样子 .NET 在传统工厂是巨无霸的存在哈... 话不多说,一起用 Windbg 一探究竟吧. 二:Windbg 分析 1. 托管还是非托管 先看下进程的commit内存,用 !address -summary 即可. 0:000> !address -summary Mapping file sectio…
一:背景 1. 讲故事 去年十月份有位朋友从微信找到我,说他的程序内存要炸掉了...截图如下: 时间有点久,图片都被清理了,不过有点讽刺的是,自己的程序本身就是做监控的,结果自己出了问题,太尴尬了 二:Windbg 分析 1. 托管还是非托管 这个是甄别内存问题的第一步,通过 !address -summary 和 !eeheap -gc 两个命令基本就可以断定. 0:000> !address -summary Mapping file section regions... Mapping m…
一:背景 1. 讲故事 前段时间有位朋友找到我,说他的程序内存占用比较大,寻求如何解决,截图就不发了,分析下来我感觉除了程序本身的问题之外,.NET5 在内存管理方面做的也不够好,所以有必要给大家分享一下. 二:WinDbg 分析 1. 托管还是非托管泄漏 这个还是老规矩 !address -summary 和 !eeheap -gc 组合命令排查一下. 0:000> !address -summary Mapping file section regions... Mapping module…
我的预想情况 一般情况下,当用户登录一个站点后,如果长时间没有发生任何动作,当用户再次点击时,会被强制登出并且跳转到登录页面, 提醒用户重新登录.现在我已经为站点整合了CAS,并且已经实现了单点登录以及单点注销,那么当用户使用过程中,发生了超时的情况, 估计也是自动的强行登出了吧,而且可能其他部署了Cas的站点也跟着自动登出了. 我是这么猜想的. 那么实际情况到底是什么样的 首先先列出我自己开发过程中的遇到的一系列疑问: 1.Cas-Client超时后发生了什么? 2.Cas-Server超时后…
1.启动cinder-api服务 当你通过cinder-api命令(如:/usr/bin/cinder-api --config-file /etc/cinder/cinder.conf)启动api服务时,执行的实际上是 cinder/cmd/api.py/main()函数, 如下: [root@xgto02n010027244133 ~]# cat /usr/bin/cinder-api #!/usr/bin/python2 # PBR Generated from u'console_scr…
阅读目录 GraphQL是什么 .net下如何运用GraphQL 运用GraphQL调用Github api 结语 一.Graphql是什么 最近在折腾使用Github api做个微信小程序练练手,本篇文章就是在这个过程中记录. 直接先看下GraphQL的语法风格,感受一下: query { repository(owner:"octocat", name:"Hello-World") { id } } 这是最最最简单的一个运用示例,效果上等价于http://gra…
错误详细: Execution failed for task ':app:installDebug'.> com.android.builder.testing.api.DeviceException: Could not create ADB Bridge. ADB location: D:\AppData\Local\Android\sdk\platform-tools\adb.exe * Try:Run with --stacktrace option to get the stack…
一:背景 1. 讲故事 我在年前写过一篇关于CPU爆高的分析文章 再记一次 应用服务器 CPU 暴高事故分析 ,当时是给同济做项目升级,看过那篇文章的朋友应该知道,最后的结论是运维人员错误的将 IIS 应用程序池设成 32bit 导致了事故的发生,这篇算是后续,拖了好久才续上哈. 犹记得那些天老板天天找我们几个人开会,大概老板是在传导甲方给过来的压力,人倒霉就是这样,你说 CPU 爆高可怕吧,我硬是给摁下去了,好了,Memory 又爆高了,尼玛我又给摁下去了,接着数据库死锁又来了,你能体会到这种…
引言 最近朋友跟我一起把之前废弃的公众号做起来了,更名为鹿鸣安全团队,后面陆续会更新个人笔记,有趣的渗透经历,内网渗透相关话题等,欢迎大家关注 前言 Hvv中的一个很有趣的漏洞挖掘过程,从一个简单的API泄露到一系列漏洞.这次的经历更让我体会到了细心的重要性. 挖掘起始 Hvv中拿到了一大堆的资产,有IP和URL的,我一般会先去手动挖掘已经给了的URL资产.面对众多的URL资产,怎么下手呢,我通常会选择去跑一下Title,然后根据Title来选择软柿子捏. 比如下面某个业务应用系统,定位好了,就…
野狗,第三方后端通信用的:https://www.wilddog.com/ 花瓣网,用来做设计的:http://huaban.com/ Ping++,聚合支付接口:https://www.pingxx.com/ APICloud,H5开发APP第三方工具:http://www.apicloud.com/ AppCan,H5开发APP第三方工具:http://www.appcan.cn/ heX,用来封装网页成桌面应用的第三方工具,made in 网易:http://hex.youdao.com/…
一:背景 1. 讲故事 这篇文章起源于 搬砖队大佬 的精彩文章 WinDBg定位asp.net mvc项目异常崩溃源码位置 ,写的非常好,不过美中不足的是通览全文之后,总觉得有那么一点不过瘾,就是没有把当时抛异常前的参数给找出来...这一篇我就试着弥补这个遗憾. 为了能够让文章行云流水,我就按照自己的侦察思路吧,首先看一下现状:iis上的应用程序崩溃, catch 不到错误,windows日志中只记录了一个 AccessViolationException 异常,如何分析? 说实话我也是第一次在…
一:背景 1. 讲故事 上上周有位朋友找到我,说他的程序CPU和句柄都在不断的增长,无回头趋势,查了好些天也没什么进展,特加wx寻求帮助,截图如下: 看的出来这位朋友也是非常郁闷,出问题还出两个,气人哈,关于 cpu 爆高的问题我准备单独用一篇文章去侦读,这篇就先聊聊 句柄泄漏 的问题,毕竟写了20多篇,也是第一次聊到 handle 泄露,有点意思哈. 2. 什么是句柄 我个人理解的句柄:就是在托管层持有了一个对非托管层资源的引用,有了这个引用,我们就可以强制回收非托管资源,那什么是非托管资源?…
一:背景 1. 讲故事 哈哈,再次见到物流类软件,上个月有位朋友找到我,说他的程序出现了 CPU 爆高,让我帮忙看下什么原因,由于那段时间在苦心研究 C++,分析和经验分享也就懈怠了,今天就给大家安排上. 话不多说,上 windbg 说话. 二:WinDbg 分析 1. CPU 真的爆高吗 既然说 CPU 爆高,那就用 !tp 验证下. 0:000> !tp Method table is shared (not implemented): System.Threading.ThreadPool…
 1.Java的运行环境中,String是什么编码? 使用java做程序设计语言,字符编码是和jvm相关的,和操作系统无关. java默认的编码是jvm在安装的时候就确定了的,它是根据你的系统的环境确定并默认的. 我们可以通过java的Charset类的defaultCharset()方法来获取它默认的字符编码. 我安装的JDK是1.7,系统环境是64位,获取的默认的字符编码是utf16的,并且是Big-Endian(这点我比较奇怪,我的机器是Little-endian的,而虚拟机竟然默认是大端…
0x00 概述 最近提交了一些关于 docker remote api 未授权访问导致代码泄露.获取服务器root权限的漏洞,造成的影响都比较严重,比如 新姿势之获取果壳全站代码和多台机器root权限 新姿势之控制蜻蜓fm所有服务器 新姿势之获取百度机器root权限 因为之前关注这一块的人并不多,这个方法可以算是一个“新的姿势”,本文对漏洞产生的原因和利用过程进行简单的分析和说明,但因为时间和精力有限,可能会有错误,欢迎大家指出- 0x01 起因 先介绍一些东西- docker swarm do…
文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Application 有何妙用: 5. MJ0011 关于 Native Application 的文章整理: 6. 互联网上其他关于 Native Application 的文章整理: 7. 小结: 1. 引子: 其实在好久以前就看了 MJ0011 翻译的那个<Native 应用程序详细>系列的文…
一般情况下,C#与Win 32 Api的互操作都表现的很一致:值类型传递结构体,一维.二维指针传递IntPtr.在Win32 分配内存时,可以通过IntPtr以类似移动指针的方式读取内存.通过IntPtr移动时,需要考虑指针的计算.规则总体上来说显得一致,但Win32 Api庞杂,总有一些令人困惑的函数.比如GetIpForwardTable.该函数的功能是返回Ip(v4)的路由表.在win32 的结构体定义如下: DWORD GetIpForwardTable( _Out_ PMIB_IPFO…
Author:DriverMonkey Mail:bookworepeng@Hotmail.com Phone:13410905075 QQ:196568501 硬件环境:AM335X 软件环境:linux 3.2 现象:1)系统执行一晚上,配置硬件操作失效 2)系统放置在那.没实用户输入会自己死机 调试过程: 第一步:分析硬件配置失效原因,怀疑配置硬件代码有问题 最后发现 代码 调用 system() 函数配置硬件没有调用成功 返回值 为 -1. 第二步: 继续上一步 分析 system()…
一:背景 1. 讲故事 已经连续写了几篇关于内存暴涨的真实案例,有点麻木了,这篇换个口味,分享一个 CPU爆高 的案例,前段时间有位朋友在 wx 上找到我,说他的一个老项目经常收到 CPU > 90% 的告警信息,挺尴尬的. 既然找到我,那就用 windbg 分析呗,还能怎么办. 二: windbg 分析 1. 勘探现场 既然说 CPU > 90%,那我就来验证一下是否真的如此? 0:359> !tp CPU utilization: 100% Worker Thread: Total:…
一:背景 1. 讲故事 上个月有位朋友加wx告知他的程序有挂死现象,询问如何进一步分析,截图如下: 看这位朋友还是有一定的分析基础,可能玩的少,缺乏一定的分析经验,当我简单分析之后,我发现这个dump挺有意思的, CPU,内存,挂死 三样全占,程序悲惨莫过于此... 既然找到我,我得想办法化解他的痛苦,由易到难我们逐一分析这三样都是因为什么原因所致? 二:三高分析 1. 挂死原因 根据 40+ 的dump分析经验,挂死大多是由于某种情况导致线程卡死,导致后续请求堆积在 threadpool 中,…
最近研究数据库的复制.因为要在两台服务器上,当使用数据库的默认1433端口时,订阅发布没有任何问题,考虑到数据库的安全性问题,需要改用其他端口.这里以10010为例. 有A.B两台服务器:A作为发布服务器,B作为订阅服务器. 1,打开B服务器的sqlserver配置管理器,添加别名:别名名称为A,端口号:10010,服务器:A的Ip地址.tcp协议.保存.(PS:别名一定要设置成A服务器的服务器名) 2.打开B的sqlserver 在复制>订阅下面新建订阅,选择其他服务器.输入服务器名:A  …
授权完成添加属性 ClaimsIdentity oAuthIdentity = await CreateAsync(user/*userManager*/, OAuthDefaults.AuthenticationType, result); //oAuthIdentity.AddClaim(new Claim("proid", names[0])); //ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityA…
TextInputFormat类 package org.apache.hadoop.mapred; import java.io.*; import org.apache.hadoop.fs.*; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.compress.*; /** An {@link InputFormat} for pla…