内存不足(OutOfMemory)的调试分析】的更多相关文章

32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用). 如果进程运行中需要申请内存,而操作系统无法为其分配内存空间,则会产生内存不足的异常,在.net中为System.OutOfMemoryException(The exception that is thrown when there is not enough memory tocontinue the executi…
在博客堂的不是我舍不得 - High CPU in GC(都是+=惹的祸,为啥不用StringBuilder呢?). 不是我舍不得 - .NET里面的Out Of Memory 看到很多人在问如何分析dump,所以就写下了这篇短文,抛砖引玉. 一.安装 DebuggingToolsforWindows: 从以下 Microsoft 网站下载 DebuggingToolsforWindows:http://www.microsoft.com/whdc/devtools/debugging/inst…
Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看.分析GC及JVM内存的状况.通过这些分析,可以排查程序中内存泄露的问题及调优程序的性能.下面介绍几种常用的免费工具,其中知名的有JProfiler 等. 1. 输出GC日志 输出GC日志对于跟踪分析GC的状况来说,无疑是最直接地分析内存回收状况的方法,只是GC日志输出后需要人为地进行分析,以判断GC的状况. JVM支持将日志输出到控制台或指定的文件中,方法有如下几种.…
0x01 蜘蛛漏洞攻击包 前言:2012 年 2月,地下黑产中流行着一款国产名为蜘蛛漏洞的攻击包 -- "Zhi-Zhu Exploit Pack",该工具包含 5 个漏洞,都是在当时比较流行的漏洞,涵盖了 Flash.IE 等产品,其中就包含 CVE-2012-0003,此国产漏洞利用包与国外有一定的差别:国外通常用于构建僵尸网络或者窃取重要的情报,而 "蜘蛛" 这款漏洞攻击包主要用于盗取游戏账号,比如 "龙之谷",这似乎也比较复合国情 微软发…
0x01 堆空间申请后的双重释放 Windows FxsCover 程序存储封面编辑器的信息,封面编辑器是传真服务的一个组件,通过解析特定的传真封面文件(.cov)时,会调用类析构函数对同一内存中的栈空间进行第二次释放,从而导致了双重释放的漏洞,所以本质也是 UAF 漏洞的一种 实验环境:Windows 7 + FxsCover.exe + Poc.cov(提取码:hdnr) 0x02 使用 Windbg + IDA 进行调试分析 打开传真封面编辑器,使用 Windbg 附加进程后拖入 Poc.…
\x01 漏洞简介 在 2017 年 11 月微软的例行系统补丁发布中,修复了一个 Office 远程代码执行漏洞(缓冲区溢出),编号为 CVE-2017-11882,又称为 "噩梦公式".该漏洞从修复之日起已经隐藏了 17 年之久,而且通杀目前流行的所有 Office 版本,可见其危害程度.该漏洞位于 Office 的 EQNEDT32.EXE 组件中,该组件的作用是通过 OLE 对象的互操作性协助 Office 软件进行公式的处理,由于在拷贝 Office 传入 font name…
\x01 前言 CVE-2018-0802 是继 CVE-2017-11882 发现的又一个关于 font name 字段的溢出漏洞,又称之为 "第二代噩梦公式",巧合的是两个漏洞竟由同一个函数 sub_421774 所引发,而且都属于栈溢出.据说是国内安全厂商 360 率先截获了全球首例利用此漏洞的攻击,并且立即公布了该漏洞的具体细节,给安全厂商们赢得了宝贵的时间,避免攻击进一步扩大.在 2018 年 1 月的微软例行安全更新中有此漏洞的具体细节,以及针对 Office 各个版本的补…
大并发连接的oracle在Linux下内存不足的问题的分析 2010-01-28 20:06:21 分类: Oracle 最近一台装有Rhel5.3的40G内存的机器上有一个oracle数据库,数据库的SGA设置为20G,当运行业务时,一个业务高峰期时,发现swap频繁交换,CPU 100%,Load很高,基本体现为内存不足.此时的连接数在600个左右.按内存的计算:每个连接占用内存基本在5M,这样600个连接只占用3G内存,SGA内存20G,操作系统占用内存1G,这样总占用的内存为24G,而总…
测试函数的模板实现 /// @file my_template.h /// @brief 测试数据类型用的模板实现 #ifndef MY_TEMPLATE_H_2016_0123_1226 #define MY_TEMPLATE_H_2016_0123_1226 template<int iArySize> void fnTestDataType() { char szBuf[iArySize] = {'\0'}; unsigned short wTmp = 0; int iTmp = 0;…
strace是个功能强大的Linux调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序. 在Linux系统中,用户程序运行在一个沙箱(sandbox)里,用户进程不能直接访问计算机硬件设备.当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备.strace可跟踪进程产生的系统调用,包括参数.返回值和执行所消耗的时间.若strace没有任何输出,并不…
WinDbg调试分析 asp.net站点 CPU100%问题 公司为了节省成本,最近有一批服务器降了配置,CPU从8核降到了2核.本身是小站点,访问量也不高,CPU总是会飙到100%而且可以一直持续几个小时,直接强制结束进程可以维持几个小时,几个小时后又一样,运维那边总是受到cpu的警告短信很是苦恼,按理来说就算降低了配置也不至于会让CPU一直100%. 以下就分享本次使用 WinDbg 找出 CPU 100% 问题的经验: 1.创建Dump文件 进程注意是32位的,还是64位.64位的进程可以…
Anroid逆向学习从编写so到静动态调试分析arm的一次总结 一.前言 最近跟着教我兄弟学逆向这篇教程学习Android逆向,在第七课后作业反复折腾了好几天,正好在折腾的时候对前面的学习总结一波,动态分析一下arm汇编(静态看arm感觉跟看天书没什么区别...),涉及到的东西都很简单基础,大神就不要浪费时间了!!! 二.所使用到的工具 Android studio v3.3 IDA v7.0 AndroidKiller ApkToolBox v1.6.4 三.编写所需要用到的so和apk文件…
0x00:写在前面  一直想入门Android安全,当时是极客大挑战出题的时候,被cx表哥甩锅强行去学了点android的开发,之后慢慢接触,感觉还是挺有意思的.cx表哥说先从逆向分析入门吧,之后可以搞加固/漏洞方向. 这篇文章是在学习蒸米的文章七武器的一个记录. 0x01:  这次记录的是2014阿里移动挑战赛里的一个简单的cm的分析,主要是native层的调试和对简单反调试的bypass. 因为原来自用的三星放家里了,就只能使用模拟器来搞了,坑还是不少. 本来我是想用Genymotion的,…
更新中 在Linux平台下做漏洞利用的时候,针对于Heap部分总是有些不求甚解,下面开个博文来记录下<Glibc内存管理:ptmalloc2源代码分析>这本书的读后感和收获,一些简单的点将不再记录 说明,本博文中所有的实验均在Linux Ubuntu16.04的环境下进行 目录树: 一些关于计算size的宏 "chunk to mem" and "mem to chunk" about size 分箱式内存管理 smallbins largebins 一…
0x01 前言 微软提供一个叫 Cinepak 的视频解码器,通过调用 iccvid.dll 这个动态链接库文件可以使用这个解码器:微软自带的 Windows Media Player(视频音频软件)通过调用 iccvid.dll 解析有漏洞的 RIFF 音频文件格式时会触发 CVE-2010-2553 这个漏洞 该漏洞的成因是由于 iccvid.dll 中的 CVDecompress 这个函数在解析漏洞文件时没有对 cvid 格式编码条中的 Chunk 数量做限制,导致连续复制数据到堆空间,最…
0x01 2013 Pwn2Own 黑客大赛 在 Pwn2Own 的黑客大赛上,来自法国的 VUPEN 安全团队再一次利用 0day 漏洞攻破 Windows8 环境下的 IE10 浏览器,这一次问题出在了 VML 上(VML 是向量标记语言),在处理 VML 语言时,没有对存放 dashstyle 数组长度的整数做严格限制,导致数组的越界访问和赋值,若覆盖 vgx 当中的虚表则可执行任意代码 环境:Windows7 + IE8 调试分析工具:Windbg32,IDA 样本:能触发漏洞的 poc…
\x01 前言 2018 年 1 月 9 日,Office 公式编辑器再曝出新漏洞,编号为 CVE-2018-0798.提起公式编辑器大家都不陌生,之前的 CVE-2017-11882 和 CVE-2018-0802 这对姊妹漏洞都出自这里,当然了这个只是公开的漏洞,还有一些是没有公开的.可能是由于公式编辑器漏洞有点多,所以这次 Windows 干脆直接通过删掉公式编辑器的方式来修复漏洞,一了百了.但漏洞补丁刚发布一周,就已开始出现多例 CVE-2018-0798 漏洞的变种和在野利用,据说中国…
一.问题描述:Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由Android4.0变成了Android4.1后,拍照出现了OutOfMemory异常,程序中断退出.如何解决这个问题呢? 二.先看看我们之前所写的代码 1) 调用系统相机(没有怀疑这里出错,代码略) 2)显示图片 mImageView = (ImageView) findViewById(R.id.imageView); fileName = mData.get(0)…
1.为什么会发生内存泄漏 java 如何检测内在泄漏呢?我们需要一些工具进行检测,并发现内存泄漏问题,不然很容易发生down机问题. 编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法从Heap中获取足够的内存分配给对象,这时候就会导致内存溢出.而出现内存泄露的地方,一般是不断的往容器中存放对象…
转自:http://blog.csdn.net/x_i_y_u_e/article/details/51137492 1.为什么会发生内存泄漏 java 如何检测内在泄漏呢?我们需要一些工具进行检测,并发现内存泄漏问题,不然很容易发生down机问题. 编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时…
一.静态分析工具 cppcheck cppcheck主要用于对C/C++源代码进行分析检查的一个开源工具,可以用来检测未使用的变量.越界访问.内存泄漏等问题. 使用方法 cppcheck --enable=all NAME.cpp gcov gcov是伴随gcc发布的一个代码覆盖率检查工具,可以用来检查代码中各个语句的执行次数,查看代码执行逻辑,方便后期对代码的优化. 使用方法 在gcc/g++的编译选项中添加两个选项 -fprofile-arcs -ftest-coverage 运行可执行程序…
outofmemory permgen 这个问题主要还是由 java.lang.OutOfMemoryError: Java heap space 引起的. 有这两种解决方法: 1.设置环境变量 解决方法:手动设置Heap size修改TOMCAT_HOME/bin/catalina.shset JAVA_OPTS= -Xms32m -Xmx512m可以根据自己机器的内存进行更改. 2.java -Xms32m -Xmx800m className 就是在执行JAVA类文件时加上这个参数,其中c…
from http://www.linuxidc.com/Linux/2012-06/63754.htm Valgrind通常用来成分析程序性能及程序中的内存泄露错误 一 Valgrind工具集简绍 Valgrind包含下列工具: 1.memcheck:检查程序中的内存问题,如泄漏.越界.非法指针等. 2.callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能. 3.cachegrind:分析CPU的cache命中率.丢失率,用于进行代码优化. 4.helgrind:用于检查多线…
Process Hacker.Windbg.vs2017 调试托管内存.Microsoft.Samples.Debugging.ants memory profiler.ants performance profiler 有时间详细介绍这几个工具怎么玩,不过这几个工具只是辅助分析飙高原因,都很难直接定位,需要经验......…
0x00: 在Linux系统上Gdb提供了一组多线程调试命令,如表所示: 多线程调试的主要任务是准确及时地捕捉被调试程序线程状态的变化的事件,并且GDB针对根据捕捉到的事件做出相应的操作,其实最终的结果就是维护一根叫thread list的链表.上面的调试命令都是基于thread list链表来实现的,后面会有讲到. 0x01:Gdb在linux平台多线程调试实现主要依赖下面三个文件 thread.c:文件它的任务非常简单,就是多线程调试命令子集的实现,比如info threads.当用户在gd…
一.静态分析工具 cppcheck cppcheck主要用于对C/C++源代码进行分析检查的一个开源工具,可以用来检测未使用的变量.越界访问.内存泄漏等问题. 使用方法 cppcheck --enable=all NAME.cpp gcov gcov是伴随gcc发布的一个代码覆盖率检查工具,可以用来检查代码中各个语句的执行次数,查看代码执行逻辑,方便后期对代码的优化. 使用方法 在gcc/g++的编译选项中添加两个选项 -fprofile-arcs -ftest-coverage 运行可执行程序…
0x01 前言 CVE-2011-0104 是 Microsoft Office 中的 Excel(没有打补丁的情况下)表格程序在处理 TOOLBARDEF 中的 Record 字节时没有对 Len 字段和 Cbtn 字段做过滤导致可以将任意大小的数据复制到任意地址的空间去,从而导致栈溢出漏洞.若攻击者通过构造恶意的 XLB 文件,受害者在未知的情况下打开恶意文件,受害者主机可能会被完全控制.到目前为止 CVE-2011-0104 漏洞还未收录在 metasploit 中 0x02 分析环境 虚…
0x01 TrueType 字体 TTF 字体是 Apple 和 Microsoft 两家公司共同推出的字体格式,现在已经广泛的运用于 Windows 操作系统,其中 PDF 文档也可以嵌入 TTF 字体,该漏洞的成因是由于在运行 TTF - glyf 表中的图元指令时没有对传入的数据做严格的过滤,导致整数溢出,经过利用之后可以执行任意代码 这个就是 POC 文件当中嵌入的 TTF 字体文件,经过 PdfStreamDumper 提取过后,可用工具查看 分析环境:Windows 7 + Adod…
0x01 Lotus Blossom 行动 在 2015 年 6 月,国外安全厂商 Palo Alto Networks 的威胁情报团队 Unit42 发现了一起针对东南亚政府的一次间谍行为,试图获取该国家的内部运作信息,此次攻击行动代号为 Lotus Blossom 通过恶意构造 Office 文档使目标上钩,从而在对方的计算机中植入木马,诱骗的内容包括电影邀请.明星照片.陆军机密文件.IT 升级计划等等 其中就利用了著名的 CVE-2012-0158 Word 栈溢出漏洞(用烂了的),CVE…
0x01 2013 年 "水坑" APT 攻击事件 在 2013 年 5 月,美国的劳工部网站被黑,利用的正是 CVE-2013-1347 这个漏洞,在当时导致大量使用 IE8 访问网站的用户受到攻击,微软也发布紧急公告.从水坑攻击的过程来看,入侵者先是攻克了这些网站的服务器,之后把能触发 CVE-2013-1347 漏洞的恶意脚本代码添加到网站加载页面,当受害者使用 IE8 浏览器访问美国劳工部网站时就会在本地加载 mshtml.dll 和 jscript.dll 两个动态链接库来解…