首先我们来看下进程程注入的核心逻辑(不考虑寻找目标进程、不考虑注入内容的执行) /* 注入恶意Payload: OpenProcess 可以打开目标进程 VirtualAllocEx 在目标进程中分配一块内存区域 WriteProcessMemory 在刚刚分配的内存区域中写入恶意的Payload ...
分类:
其他好文 时间:
2021-07-26 16:55:06
阅读次数:
0
程序计数器: 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是Native方法,则为空。这个内存区域是唯一一个在虚拟机中没有规定任何OutOfMemo ...
分类:
其他好文 时间:
2021-07-14 18:47:45
阅读次数:
0
申请方式不同: 栈由系统自动分配。 堆是程序员自己申请和释放的。 申请大小限制不同: 栈顶和栈底是之前预设好的,栈是向栈底扩展,栈向下,向低地址方向增长,大小固定,可以通过ulimit -a查看,由ulimit -s修改。 堆向高地址扩展,是不连续的内存区域,大小可以灵活调整。 申请效率不同: 栈由 ...
分类:
其他好文 时间:
2021-06-08 22:43:00
阅读次数:
0
那么我们在开始介绍Java内存区域之前,我们先放一张内存区域的图,方便我们后面介绍的时候可以对照着看。 须知,本文是根据JDK8来介绍的。 程序计数器 首先它是线程私有的,它也称为代码的行号指示器,字节码解释器就是通过改变程序计数器的位置来确定下一行要执行的代码,它不存在OOM。 如果线程正在执行一 ...
分类:
其他好文 时间:
2021-06-07 20:29:28
阅读次数:
0
作用: JAVA语言-(编译器)->字节码指令-(JVM)->机器码 JVM指令: 指令 详情 描述 数据交换指令 内存区域之间的传递和交换 JVM内存包括:操作数栈、局部变量表、Java堆、常量池、方法区。 JVM执行逻辑运算在操作数栈中,不管数据是在堆栈中还是常量池,最终都会将数据传送到操作数栈 ...
分类:
其他好文 时间:
2021-06-02 20:56:39
阅读次数:
0
Java多线程 进程和线程 什么是进程? 程序是静止的,运行中的程序就是进程。 进程的三个特点: **1.动态性:**进程是运行中的程序,要动态的占用内存,CUP和网络等资源。 **2.独立性:**进程与进程之间是相互独立的,彼此有自己的独立内存区域。 **3.并发性:**是指同一个时间段内多个任务 ...
分类:
编程语言 时间:
2021-06-02 20:40:57
阅读次数:
0
一、程序、进程、线程的理解 1.程序(programm) 概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 2.进程(process) 概念:程序的一次执行过程,或是正在运行的一个程序。 说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 3.线程( ...
分类:
编程语言 时间:
2021-05-25 17:35:57
阅读次数:
0
变量名不占空间 变量:用来标识(identify)一块内存区域,这块区域的值一般是可以更改的,这就是它“变”的由来,但是我们可以通过使用如const等一些修饰符号来限定这一内存区域的操作特性(characteristic),即变量的操作特性。用const修饰的使变量不能更改的就和常量一样的变量叫做常 ...
分类:
其他好文 时间:
2021-05-24 16:45:15
阅读次数:
0
#引言 垃圾回收(GC,Garbage Collection) 在笔者上一篇文章中(JVM内存模型),介绍了JVM内存模型以及JVM运行时的数据区,堆是JVM内存区域里面最大的一块区域,用于存放实例数据,因此这一块区域是垃圾回收的重点区域,而堆为了提高垃圾回收效率,又被分为了年轻代和老老年,年轻代又 ...
分类:
其他好文 时间:
2021-05-24 07:35:23
阅读次数:
0
直接内存概述 直接内存 不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即读写性能高。 ...
分类:
其他好文 时间:
2021-02-18 13:54:31
阅读次数:
0