首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于内存蜜罐内存修改挂分析技术

本文来自: 经过近几年游戏市场变迁,手游市场也在飞速发展。同时手游本身安全风险也逐渐暴露出来。无恒实验室也在承担着手游安全评审相关工作,上期我们分享了游戏安全评审技术进阶历程。...一、外挂分类 2020年伊始,外挂情报同学收集了不同游戏大量外挂样本,从技术实现上大概分为以下几类 定制挂:针对特定游戏逻辑或数据特征,通过直接修改客户端逻辑、数据或读取游戏核心数据并展示,以实现游戏作弊功能...尽管技术表现形式多种多样,但从原理上无外乎内存修改、函数调用、模拟点击、协议模拟,其中尤以内存修改类外挂占比居多,不完全统计内存修改类可占到90%以上比例。...内存蜜罐方案核心就是监控对比外挂功能修改后和修改前内存变化,精心构造具有指定关系内存布局,模拟修改前内存状态,诱导外挂功能关闭开启后再次修改蜜罐内存,通过蜜罐前后内存对比,即可定位外挂被修改所有内存位置和修改前后数据...通过dump镜像内存内存蜜罐现有内存比对,即可定位出所有被外挂修改蜜罐内存位置,进而映射出原始游戏进程中被蜜罐修改内存起始位置,修改前后数据。

2.8K30

服务器内存监测

而对于程序员而言,如何避免内存泄漏也是一门学问,倘若不加以控制,那么无论多大内存都会有消耗殆尽那天。...本文当然不是研究如何分析内存泄漏产生原因与解决方案,而是在此之前一步,通过简单内存监测方式来预测内存泄漏 潜在可能性 或者 偶发性 等。...对于不同主流编程语言,都有着读取系统内存与应用堆内存相关类,因为本网站后端是springboot编写,所以这里就介绍java语言实现方式。...我这边需要监测 系统内存 与 jvm堆内存 ,最终结果会展示各个时间点内存情况,所以需要一个时间类,表示每个切片时间点。...timeMarkInterval是存储定时器id,在销毁之前释放定时器;physicMemory和heapMemory获取图表div节点,用于echarts节点获取;systemInfo则会存储定时从服务器拉取到数据

14220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    服务器内存监测

    而对于程序员而言,如何避免内存泄漏也是一门学问,倘若不加以控制,那么无论多大内存都会有消耗殆尽那天。...本文当然不是研究如何分析内存泄漏产生原因与解决方案,而是在此之前一步,通过简单内存监测方式来预测内存泄漏 潜在可能性 或者 偶发性 等。...对于不同主流编程语言,都有着读取系统内存与应用堆内存相关类,因为本网站后端是springboot编写,所以这里就介绍java语言实现方式。...我这边需要监测 系统内存 与 jvm堆内存 ,最终结果会展示各个时间点内存情况,所以需要一个时间类,表示每个切片时间点。...timeMarkInterval是存储定时器id,在销毁之前释放定时器;physicMemory和heapMemory获取图表div节点,用于echarts节点获取;systemInfo则会存储定时从服务器拉取到数据

    17140

    linux服务器内存

    早上到单位 发现服务器 mysql 服务器停了 然后起来了 查询日志 显示 内存满了 把mysql服务给杀了 linux 服务器如果 内存满了 会自动清理进程 防止服务器挂掉 选择的话 谁占内存大...就先杀谁 我服务器里面 mysql服务占内存是最大 所以就把mysql就给杀了 image.png 然后 重启mysql 查询内存 image.png 在这说一下 怎么看linux内存 举个例子...,而+buffers/cache反映是可以挪用内存总数。...记住内存是拿来用,不是拿来看.不象windows, 无论你真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足原因.你们想想,多无聊,在内存还有大部分时候...,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap交换空间,就不用担心自己内存太少.如果常常 swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用标准哦

    31.9K10

    Oracle内存管理技术

    1.Oracle内存管理技术 2.配置自动内存管理(AMM) 3.监视自动内存管理(AMM) 4.配置自动共享内存管理(ASMM) 5.配置自动PGA内存管理 Reference 1.Oracle内存管理技术...Oracle11g 建议使用AMM配置新数据库,然后监视总体内存分配效果,后续可以将数据库切换到ASMM,以便更精准控制SGA总大小。...(AMM) 3.1 通过EM查看 EM主页:服务器(Server) -> 数据库配置(Database Configuration) -> 内存指导(Memory Advisors) 3.2 直接查询动态性能视图...5.配置自动PGA内存管理 PGA_AGGREGATE_TARGET值可以由AMM推出来,也可以明确设置。...--PGA设置起点 Oracle单实例可用内存设置为占机器物理内存80% OLTP(在线事务处理):PGA占可用内存20% DSS(查询使用大量内存):PGA占可用内存50%~70% --查询pga

    89920

    服务器内存使用飙升排查

    这几天自己线上乞丐服务器遇到一个问题,io会瞬间飙升到很高很高,造成内存使用飙升。但是实际上并发量并不大(网络连接数)。知道是哪个进程造成,但是确实排查代码中没有是么地方会有这么大读写。...部署是一个socket服务。用测试脚本跑,同时100个socket连接毫无压力。也不知道对方到底发什么数据导致这么大内存占用。 之前也处理过类似的问题。...服务器问题,无非就是资源不合理使用,造成服务器内存,cpu,io,流量等相关资源出现非常不正常波动,资源使用率飙升。对于服务器性能问题排查,没有其他比较好办法,只能是通过重现复盘去改进。...特别是如果服务器上跑东西比较多,一个个排查相当痛苦。 出现问题,首先看日志。如果是线上,先想办法恢复服务再排查。 看看登录日志,访问日志是否有异常,确定是否有人扫机器。...看性能监控图表,分析机器状况,以及问题发生规律。 看是否有服务被系统kill。一般系统日志都会记录kill之前进程列表,可以很好分析哪些进程资源占用多。

    22.3K20

    OS——内存扩充技术

    OS——内存扩充技术 需求 为什么需要内存扩充技术?我们知道当并发运动多个进程长度之和大于内存可用空间时,多道程序设计就会出现很多困难。内存扩充技术就是借助大容量辅存,在逻辑上实现内存扩充。...常见内存扩充技术有覆盖技术、交换技术以及虚拟内存。本节主要探讨前两种,即虚拟内存出现前内存扩充技术。...也不会被同时调用,所以我们就可以采用覆盖技术来实现逻辑上内存扩充。...交换技术 交换技术就是将内存中暂时不能运行进程或暂时不用代码和数据调到外存上,以此腾出空间给已经具备运行条件进程或进程所需要程序和数据从外存调入内存。...交换技术类型 按照在内存与外存间切换单位,可以分为整体交换与部分交换 整体交换:以整个进程为单位在内存和外存之间交换,目的是减轻内存负荷,多用于多道程序系统,处理机中级调度核心就是交换技术

    66520

    浅谈「内存调试技术

    无意间看到一篇讲解 AddressSanitizer 论文(1),介绍了几种动态检测技术,分析了多种工具原理和优缺点,在此整理分享。...影子内存技术,就是使用额外内存来存管理常规内存分配和使用,这些额外内存对于被检测程序不可见,因此叫影子内存。 每块常规内存都有对应影子内存。...常规内存分配和释放时候,在对应影子内存里记录该常规内存属性信息,比如是否可访问,是否已经被释放。在每次访问常规内存之前,都先检查对应影子内存,看看该常规内存是否可访问。...也就是说,一个字节影子内存,可以记录多个字节常规内存可访问信息,这样就可以按照一定比例,使用较少影子内存,记录较多常规内存信息。...实际内存检测工具,往往多种技术并用,在细节上,算法上有所差异,导致工具性能和准确度各有千秋。通常检测质量高,效率比较低;效率高,质量又会低。

    97750

    内存映射技术分析

    前言: KVM设备虚拟化,除了前文《PIO技术分析》,还有另外一个核心概念---MMIO。原计划这里分析一下KVMMMIO虚拟化。...考虑到MMIO比PIO复杂很多,涉及更多概念,作者打算先分析几篇基本Linux内存管理概念,再来分析MMIO。 作者大概想了一下,主要由这几篇构成: 1,虚拟内存管理和内存映射。...2,物理内存管理。 3,内存回收。 分析: 1,虚拟内存概念 x86CPU有两种运行模式---real mode和protected mode。...可以看到类似的log,BIOS通过e820数据结构告诉Linux物理内存layout情况。可能你会觉得,为什么插入一条8G内存条,会变成这个样子呢?...后记: 因为这里主要是给后面的MMIO做铺垫,所以在这里就没有详细介绍Linux内存映射技术

    2.3K110

    服务器之 ECC 内存工作原理

    但在服务器应用中,处理一般都是非常重要计算,可能是一笔订单交易,也可能是一笔存款。另外就是服务器经常是连续要运行几个月甚至是几年,没有办法通过重启方式来解决问题。...因此服务器对比特翻转错误容忍度很低。需要有技术方案能够一定程度解决比特翻转问题所带来影响。 ECC 就是这样一种内存技术。...相比没有使用 ECC 技术个人电脑内存内存颗粒中全部都用来存储数据即可。在 ECC 内存中每 64 比特数据都需要额外 8 比特数据作为校验位,用来辅助发现或者纠正错误。...所以虽然海明码不能应对 3 比特以上比特翻转,但目前仍然广泛地应用在服务器内存错误检查和纠正上。在 SSD 硬盘中由于应用场景不同,采用是支持多比特翻转校验和纠错 LDPC 码。...但因为在 64 比特中有 3 比特同时出现错误概率太低了,所以海明码仍然广泛地应用在服务器 ECC 内存中。 总结 开篇我们看到了两个内存条,一个有 8 个黑色颗粒,另外一个有 9 个内存颗粒。

    39121

    干货|18张图揭秘高性能Linux服务器内存技术是如何实现

    其次在于定位,我们自己实现malloc其实也是定位通用性,通用性内存分配器设计实现往往比较复杂,但是内存技术就不一样了,内存技术专用于某个特定场景,以此优化程序性能,但内存技术通用性是很差...那么内存技术是怎样优化性能呢? 内存技术原理 简单来说,内存技术一次性获取到大块内存,然后在其之上自己管理内存申请和释放,这样就绕过了标准库以及操作系统: ?...实现内存考虑 值得注意是,内存池实际上有很多实现方法,在这里我们还是以服务器端编程为例来说明。...这两种内存池天然适用于服务器端编程。 最后我们再来介绍一种内存池实现技术,这种内存池会提前申请出一大段内存,然后将这一大段内存切分为大小相同内存块: ?...总结 内存池是高性能服务器中常见一种优化技术,在这里我们介绍了三种实现方法,值得注意是,内存池实现没有统一标准,一切都要根据具体场景定制,因此我们可以看到内存池设计是有针对性,当然其反面就是不具备通用性

    2.1K20

    JavaWeb 内存技术归纳

    https://cn.4xpl0r3r.com/技术归纳/JavaWeb-内存技术归纳/ 本文以Tomcat 9为核心学习并归纳了一些内存技术,除有特殊说明外章节外,本文使用Java 8u292...,可以通过动态增加Servlet、Filter、Listener来植入内存马,如果技术栈还存在Spring和Shiro等,还可以使用增加Controller等方法 基于JSP WebShell植入内存马...基于反序列化内存马植入 - ysoserial-CommonsCollections2改造 参考:基于tomcat内存 Webshell 无文件攻击技术 由于CommonsCollections2...参考:Java Agent 从入门到内存马 还是以Tomcat为例,我们知道JavaAgent技术可以动态修改字节码,我们熟知Burp Suite破解技术就是基于premain方法实现,通过agentmain...,只能进一步进采用源码免杀技巧 Agent注入型检测和查杀 由于c0ny1师傅《查杀Java web Agent型内存马》尚未发布,先留个坑在这里 JavaWeb 内存技术归纳

    2.1K40

    内存虚拟化技术介绍之---内存去重

    前言 虚拟化目的是为了提升硬件资源利用率,包括CPU,内存、IO等。在各种虚拟化中,都有内存压缩、内存去重等技术。...本文通过介绍PowerVM内存去重技术,有助于读者了解其他虚拟化技术内存区中底层原理。vSphere中透明页面共享与PowerVM内存去重技术原理基本是一致。...AMD 通过释放服务器一个分区内或者分区之间重复内存页,来减少共享内存过量使用,从而使主内存空间相同内存页面的数量最小化。为了优化内存利用率,AMD 避免在多个不同物理内存空间之间做数据复制。...在服务器上,有三个区 :vioc1,vioc2,vioc3。三个分区上分别有一个逻辑内存页:a,b,c,指向同一个物理内存页 A,A 中内容是:甲。逻辑内存页 a,b,c 中内容也是“甲”。...配置准备 本次配置过程,以 P780 服务器为例,首先登陆到 HMC 上,确认这台 P780 服务器支持 AMD 功能: hscroot@HMC50:~> lssyscfg -r sys -m SVRP7780

    2.3K80

    虚拟内存管理技术

    交换技术 & 覆盖技术 如果是程序太多, 超过了内存容量, 可以采用自动交换(swapping)技术, 把暂时不能执行程序送到外存(硬盘)中 目的 : 多道程序在内存时, 让正在运行程序或需要运行程序获得更多内存资源...缺点: 交换程序如果内存很大, 那么开销就非常大 如果是程序太大, 超出了内存容量, 可以采用手动概率(overlay)技术, 只把需要指令和数据保存在内存当中 目的 : 是在较小可用内存中运行较大程序...虚拟内存管理技术 在覆盖和交换技术无法处理情况下,我们就需要另外使用其他方法来解决程序在内存占比技术 目标: 像覆盖技术那样, 不是把程序所有内容都放在内存中, 因而能够运行比当前空闲内存空间还要大程序...但做更好, 由操作系统自动来完成, 无需程序员干涉.** 像交换技术那样, 能够实现进程在内存与外存之间交换, 因而获得更多空闲内存空间....但做更好, 只对进程部分内容在内存和外存之间进行交换. 总而言之, 就是将交换技术 & 覆盖技术合并其优点来完成。

    12510

    内存编织技术,JVM对内存又一次压榨

    这带来问题就是严重内存浪费。 那C++及Java是怎么做呢?内存编织。解释下这个名词:编织,抽象来说,就是精细化构造。内存编织,即精细化构造内存。...即在创建对象时,为了节省内存,根据不同类型数据,精细化地向内存中填充数据。 为什么说JVM对象实例属性存储机制比C++更难呢?...因为JVM内存编织需要考虑点更多:一、JVM有运行时数据结构:数组。什么意思呢?就是说非数组类元信息是在编译时确定,而数组元信息是在运行时确定;二、JVM为了节省内存,开发了指针压缩技术。...所以高手都知道:定义属性要遵循占字节少数据类型放前面,占字节多数据类型放后面。是不是好麻烦?我们写Java代码完全不需要考虑这个问题,JVM已经通过技术手段帮我们解决了。怎么解决呢?往后看。...JVM中实例属性存储 说完了C++对象内存模型,再来说说JVM对象内存模型,两句话: 1、创建对象进行属性编织时,按照8字节、4字节、2字节、1字节、指针顺序进行编织。

    35220

    技术解码 | 内存问题分析与定位

    本期技术解码,为您解析 编程中,内存问题分析与定位方法 对编程语言设计来说,内存管理分为两大类:手动内存管理(manual memory management) 和垃圾回收(garbage collection...现代GC实现一直朝着减小“stop-the-world"影响方向进行优化。 有GC机制编程语言不代表彻底告别了内存泄漏(此时内存泄漏含义与手动内存管理语言稍有不同)。...手动内存管理 对于手动内存管理,引用计数(reference counting)是常用避免内存泄漏手段。...封装自己内存管理函数,添加调试开关,记录内存分配和释放。...另外,massif是heap profiler工具,可以量化各个模块内存占用,以便有针对性进行内存优化。

    4.2K21

    linux服务器内存——分析篇

    早上到单位 发现服务器 mysql 服务器停了 然后起来了 查询日志 显示 内存满了 把mysql服务给杀了 linux 服务器如果 内存满了 会自动清理进程 防止服务器挂掉 选择的话 谁占内存大...就先杀谁 我服务器里面 mysql服务占内存是最大 所以就把mysql就给杀了 image.png 然后 重启mysql 查询内存 image.png 在这说一下 怎么看linux内存 举个例子...,而+buffers/cache反映是可以挪用内存总数。...记住内存是拿来用,不是拿来看.不象windows, 无论你真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足原因.你们想想,多无聊,在内存还有大部分时候...,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap交换空间,就不用担心自己内存太少.如果常常 swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用标准哦

    23.9K10

    高并发服务器设计--内存设计

    不同业务,设计也不尽相同,但至少都一些共同追求,比如性能。 做服务器开发很多年了,有时候被人问到,服务器性能是什么呢?各种服务器间拼得是什么呢?...性能,也许可以打个俗点比方: 服务器就是一艘船,性能就是船容量,开速度,行得是否稳当。 该用用,该省省。...如果你看过apache, nginx之类服务器代码,或者想入手,那么多半应该从内存管理开始。...与服务器性能息息相关,内存设计也追求快速与稳定,生命周期一般有下面三种: global: 全局内存,存放整个进程全局信息。 conn: 每个连接信息,从连接产生到关闭。...在一些通用服务器上还会看到另一个元素:large。

    4.1K70

    看懂服务器 CPU 内存支持,学会计算内存带宽

    在深入了解服务器 CPU 型号、代际、片内与片间互联架构一文中我们了解了服务器 CPU 内部架构。在其中我们看到有一个内存控制器。 关于CPU内存控制器中会有很多专技术细节。...而且不再像之前一样要求每个内存颗粒传输距离相等,工艺复杂度因寄存缓存器引入而下降,使得容量也可以提高到 32 GB。主要用在服务器上。 下图是一个服务器RDIMM 32 GB 内存条。...这个服务器内存条不光正面有很多内存颗粒,连背面也有。可见服务器内存颗粒数量比普通笔记本电脑、个人台式机颗粒都要多很多。...另外一台服务器经常是连续要运行几个月甚至是几年。因此总的来说,服务器对稳定性要求极高,不允许比特翻转错误发生。 ECC 是一种内存专用技术。...首先就是服务器 CPU 对内存通道数支持。普通家用 CPU 一般只有双通道,最多也是四通道。

    1.6K11

    CentOSLinux服务器内存不够解决方法

    最近买了一个CentOS云主机,因为贫穷限制了我购买内存大小,只有500M,所以导致物理内存经常处于饱和状态,无奈虚拟内存设置只有132M,理论上讲虚拟内存应该要有物理内存2倍也就是1G大小才够用...又由于我安装其他工具,提示我内存不足,所以想用提高虚拟内存方法去安装这个软件,本来都已经安装完了,今天我手贱把Linux重启了一下,没看仔细,不过也不是坏事情,正好记录下设置过程,以便下次再重启时候方便设置...records out 1048576000 bytes (1.0 GB) copied, 16.6877 s, 62.8 MB/s [root@LLM ~]# 该命令表示在opt分区建立名为swap,大小为1G虚拟内存文件...        191          63          13        737        625 Swap:          999          0        999 虚拟内存设置部分就完成了...,接下来讲一下卸载虚拟内存,这个需求也是存在,比如你走上人生巅峰了,不屑于使用虚拟内存,就需要卸载掉了,就是任性!

    7.5K20
    领券