C++ Win32 API编程 之 注册表 上
0x0 注册表概述 在DOS年代,对计算机的内存管理及系统配置主要通过 autoexec.bat 和 config.sys 来完成。从 Windows3.X 开 始,对系统的管理增加了大量的 *.ini 文件来登录软件及硬件的各种初始...
C++ Win32 API编程 之 注册表 下
0x0 注册表编程 编程过程中,可以使用 KEY_WOW64_64KEY 和 KEY_WOW64_32KEY 明确的指定操作64位注册表项或者32位注册表项。
Windows PE 结构 之 RVA&FOA地址转换与对齐
0x0 基础知识 00 RVA & FOA 转换; 当一个 PE 文件被加载到内存中以后,我们称之为 ' 映象 '(image)。一般来说,PE文件在硬盘上和在内存里是不完全一样的,被加载到内存以后其占用的虚拟地...
C++ 函数指针 实现 Shellcode Loader
0x0 基础知识 在 C++ 中,函数也是有地址的。编译之后的函数,其实是一组指令的集合,这样一组指令在程序运行时存在于内存中,其起始地址就是该函数的地址,也称做函数的入口地址。编写 C++ 程...
C++ 线程/远程线程 实现 ShellCode Loader
0x0 基础知识 00 CreateThread() 创建在调用进程的虚拟地址空间内执行的线程。 函数原型: HANDLE CreateThread( [in, optional] LPSECURITY_ATTRIBUTES lpThreadAttributes, [in] SIZE_T dwSta...
Python 创建线程 实现 ShellCode Loader
0x0 基础知识 我们用 msfvenom 生成一个测试用的我 ShellCode,内容为弹出一个计算器, 生成格式为 Python , 由于我的 Python 版本 为 64 位 Python 3.12.0 ,因此生成时要注意选择 64 位版本 S...
C# 创建线程 实现 ShellCode Loader
0x0 基础知识 我们用 msfvenom 生成一个测试用的我 ShellCode,内容为弹出一个计算器, 生成格式为 csharp msfvenom -p windows/exec cmd=calc.exe -f csharp Payload size: 193 bytes Final si...
Go syscall 实现 ShellCode Loader
0x0 基础知识 我们用 msfvenom 生成一个测试用的我 ShellCode,内容为弹出一个计算器, 生成格式为 hex msfvenom -p windows/x64/exec cmd=calc.exe -f hex Payload size: 276 bytes Final size...
Windows PE结构 之 开篇下
0x0 PE文件总体结构 PE (Portable Execute) 文件是Windows下可执行文件的总称,常见的有 DLL,EXE,OCX,SYS,COM 等。它是微软在 UNIX 平台的 COFF(通用对象文件格式)基础上制作而成。最初设计...
Windows PE结构 之 MS-DOS 头结构解析
0x0 基础知识 DO 头分为两部分:DOS 'MZ' HEADER 和 DOS stub DOS头的作用是 兼容 MS-DOS 操作系统中的可执行文件,对于 32位PE文件来说,DOS 所起的作用就是显示一行文字,提示用户:我需要在3...
Windows PE 结构 之 NT头结构解析
0x0 基础知识 PE文件头的结构有两种,分别对应32位的程序和64位的程序,它们的差异在于扩展PE头的结构 PE文件头结构说明_IMAGE_NT_HEADERS32位程序对应的PE文件头结构_IMAGE_NT_HEADERS6464位程...
Windows PE 结构 之 数据目录表结构解析
0x0 基础知识 在PE可选头(OptionalHeader)结构中的DataDirectory是OptionalHeader的最后128个字节,也是IMAGE_NT_HEADERS的最后一部分数据。 它由16个IMAGE_DATA_DIRECTORY结构组成的数组构成,...