For the complete documentation index, see llms.txt. This page is also available as Markdown.

Heap加密

简介

最近堆(Heap)加密给BeaconEye整挺火,刚好自己也在写C2,就简单记录下。

流程

  1. 遍历进程拥有的堆。

  2. 编译堆中已分配的块。

  3. 异或已分配块中的数据。

过程

首先用GetProcessHeaps获取进程拥有的所有堆句柄。

DWORD GetProcessHeaps(
  DWORD   NumberOfHeaps,
  PHANDLE ProcessHeaps
);

然后用HeapWalk枚举所有已分配的堆内存块。(这个函数设计的挺好的终于不用啥First Next了 略略略)

(heapEntry.wFlags & PROCESS_HEAP_ENTRY_BUSY)

BOOL HeapWalk(
  HANDLE               hHeap,
  LPPROCESS_HEAP_ENTRY lpEntry
);

代码

https://www.arashparsa.com/hook-heaps-and-live-free/

最后更新于