抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

进程镂空(傀儡进程)

进程镂空(Process Hollowing), 又称傀儡进程, 是一种恶意软件(malware)利用的代码注入技术。它主要用于恶意代码注入到合法进程中, 以规避安全检测、提高恶意代码执行的隐蔽性和稳定性;

Shellcode原理及编写

基于对Windows TEB/PEB的分析, 可以做一些免杀中的应用

TEB

TEB(Thread Environment Block), 线程环境变量块, TEB中包含了线程的堆栈指针、TLS(线程本地存储)指针、异常处理链表指针、用户模式分页表指针等信息。TEB中fs寄存器通常被设置为fs:[0](32位), 指向当前线程的的TEB结构体。其他线程可以通过访问自己的TEB结构体来获取自己的状态和信息。

PEB

PEB(Process Environment Block), 进程环境变量块, PEB中包含了进程的代码、数据段指针、进程的环境变量、进程启动参数信息以及加载的dll信息等。PEB结构体中的fs段寄存器通常被设置为0x30(32位), 指向当前进程的PEB结构体。

记录Gorm学习手册

记录MongoDB相关命令

记录NodeJS八股文

现代高级编程语言管理内存的方式分自动和手动两种; 手动管理内存的典型代表是C/C++, 编写代码过程中需要主动申请或者释放内存; 而PHP、Java和Go等语言使用自动的内存管理系统, 由内存分配器和垃圾收集器来代为分配和回收内存, 其中垃圾收集器就是GC

从Go v1.12版本开始, Go使用了非分代的、并发的、基于三色标记清除的垃圾回收器; Go是一种静态类型的编译型语言; 因此, Go不需要VM, Go应用程序二进制文件中嵌入了一个小型运行时(Go runtime), 可以处理垃圾收集(GC)、调度和并发之类的语言功能

Golang内存分配机制

Go语言内置运行时(就是runtime), 抛弃了传统的内存分配方式, 改为自主管理。这样可以自主实现更好的内存使用模式, 比如内存池、预分配等等。这样, 不会每次内存分配都需要系统调用;

什么是内存逃逸

在程序中, 每个函数块都会有自己的内存区域来存自己的局部变量(内存占用少)、返回地址、返回值之类的数据, 这一块内存区域有特定的结构和寻址方式, 寻址起来十分迅速, 开销很少。这一块内存地址称为栈, 栈是线级别的, 大小在创建的时候已经确定, 当变量太大的时候, 会”逃逸”到堆上, 这种现象称为内存逃逸, 简单来说, 局部变量通过堆分配和回收, 就叫内存逃逸。