首页 »标签 » tomcat内存溢出 » 列表
非堆栈攻击
前面的例子里面我们展示了如何在接管了程序的控制权后执行自己代码的方法,但是如果被攻击者阻止执行任何在堆栈上面的代码,那么这个方法将立即失效。所以现在所谓的基于“非堆栈”的方法正在被越来越多的使用。其实这个方法的原理也不新鲜,就是我们返回地址不再填充为stack上面的地址,而是直接填系统函数的地址,比如WinExec的程序段地址。剩下的问题是,如何将参数压入堆栈,刚刚好在调用系统函数的时候可用,下图展示了“非堆栈”攻击方法的stack结构:
Fig. 4 A non-stack based exploit
[阅读全文] [PDF]
这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。
一、java.lang.OutOfMemoryError: PermGen space
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space [阅读全文] [PDF]
内存溢出攻击分析
什么是内存溢出?简单的说,内存溢出就是程序向内存写入了比分配更多的空间更多的内容。攻击者据此控制程序执行的路径,冒名执行它的代码。对那些好奇这一切都是如何发生的人,本文试图详细介绍攻击的实现机制并提出一些预防措施。
从我们知道的经验来看,大多都听说过这些攻击,但是很少几个真的理解攻击的具体机制,有些人有些模糊的印象,甚至有些人根本不知道越界攻击是什么。还有些人认为这个属于秘密的智慧和技能只有少数几个专家才能掌握的。实际上,它只不过是由我们这些粗心的程序员制造的漏洞罢了。
C语言编写的程序拥有高效的性能和很小的二进制代码,却最容易感染这种攻击。事实上, [阅读全文] [PDF]
Tomcat本身不能直接在计算机上运行需要依赖于硬件基础的上操作系统和个java虚拟机您可以选择自己需要选择区别操作系统和对应JDK版本(只要是符合Sun发布Java规范标准)但我们推荐您使用Sun公司发布JDK确保您所使用版本是最新Sun公司和其它些公司直在为提高性能而对java虚拟机做些升级改进些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%
可以给Java虚拟机设置使用内存但是如果你选择不对话虚拟机不会补偿可通过命令行方式改变虚拟机使用内存大小如下表所示有两个参数用来设置虚拟机使用内存大小
参数
描述
- [阅读全文] [PDF]
使用脚本语言最大好处的就是可利用其拥有自动垃圾回收机制(释放内存)你不需要在使用完变量后做任何释放内存处理PHP会帮你完成
当然我们可以按自己意愿 un 来释放内存但通常不需要这么做
不过在PHP里至少有种情况内存不会得到自动释放即便是手动 un详情可考:http://bugs.php.net/bug.php?id=33595
问题症状
如果两个对象的间存在着相互引用关系如“父对象-子对象”对父对象 un不会释放在子对象中引用父对象内存(即便父对象被垃圾回收也不行)
有些糊涂了?我们来看下面这段代码: [阅读全文] [PDF]
在使用Java从数据库中查询大量数据或是应用服务器(如tomcat、jboss,weblogic)加载jar包时会出现java.lang.OutOfMemoryError异常这主要是由于应用服务器内存不足引起这种异常常有以下几种情况(以下以tomcat环境为例其它WEB服务器如jboss,weblogic等是同个道理):
1. java.lang.OutOfMemoryError: PermGen space
PermGen space全称是Perman [阅读全文] [PDF]
对于内存溢出的类麻烦可能大家在编写指针比较多复杂时候就会遇到Debug起来也是比较累人其实Linux系统下有个使用工具可以帮忙来调试这就是MtraceMtrace主要能够检测些内存分配和泄漏失败等下面我们来学习下它使用方法
使用Mtrace来调试有4个基本步骤需要用到GNU C 库里面些辅助功能
1. 在需要跟踪中需要包含头文件而且在最开始包含个:mtrace由于在最开头了mtrace所以该进程后面切分配和释放内存操作都可以由mtrace来跟踪 [阅读全文] [PDF]
上面的日文会导致access在搜索时出错,就是内存溢出,在sql下不会有这种问题,要在access下解决的话在储存和读取时用下面的函数
储存Function jp2code(CodeStr)jp2code=Replace(Replace(Replace(Replace(Replace(CodeStr,\"ガ\",\"j30AC\"),\"ギ\",\"j30AE\"),\"グ\",\"j30B0\"),\"ゲ\",\"j30B2\"),\"ゴ\",\"j30B4\")jp2code=Replace(Replace(Replace(Replace(Repla [阅读全文] [PDF]
1 共8条 分1页
- +_@开青岛发票13434444051程生
- 一个简单的 2层系统分析全程
- 主题和皮肤系列(3)
- 主题和皮肤系列(1)
- 主题和皮肤系列(2)
- 鼠标移上去显示层:鼠标滑过显示隐藏层(转)
- jspajax自动刷新:jsp+ajax自动刷新例子(转)
- form表单验证:用js将form表单同时提交到两个区别页面的思路方法
- php上传代码:php统计代码总行数
- 最佳网页宽度及其实现
- 联想2155:PKU 2155
- micboost什么意思:Boost 概述
- atmega16ucosii:μC/OS-II实时性能测试和分析
- cssimportant:4 种实时操作系统实时性的分析对比 --转 time too important
- 基于OHCI的USB主机 —— 总体构架
- 虚拟主机usb:基于OHCI的USB主机 —— 背景介绍
- vc用法:VC使用方法汇总
- 张孝祥《Java就业培训教程》源代码 02 部分
- 抽象类和接口:详细解析Java中抽象类和接口的区别
- 跟踪技术:JSP中的会话跟踪技术