cmake基础 1.C++工程结构参考:cxx-pflR1: The Pitchfork Layout (PFL) (csswg.org) 1234567891011121314151617181920212223242526272829.├── 3rdparty -- 所有的第三方库目录│ ├── external -- 源码依赖的第三方库│ │ └── CMakeLi 2022-12-06 tools #C/C++ #basic
C++拷贝控制 1.拷贝控制核心对类所管理的资源进行拷贝的过程时需要使用到拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符以及析构函数,其中关系如下: 左值 右值 操作 调用 当前类新对象 已初始化的对象 构造 拷贝构造或移动构造函数 已初始化对象 已初始化的对象 赋值 拷贝赋值或移动赋值运算符 其中拷贝构造和移动构造函数复制产生了新对象,赋值和移动赋值复制了右值对象并销毁了左值原对 2022-12-06 coding #C/C++
ELF文件格式 1.ELF文件格式ELF (Executable and Linkable Format)是一种为可执行文件,目标文件,共享链接库和内核转储(core dumps)准备的标准文件格式。ELF文件有两个平行视角:一个是程序链接视角,一个是程序装载视角。从链接视角来看,ELF文件是按Section划分的;而从装载的视角来看,ELF文件又可以按Segment来划分。如图所示: 从整体来看,完整的ELF 2022-11-15 build #basic
程序构建基础 1.gcc背后的操作1.1 gcc命令用于C/C++程序构建,主要完成以下工作: 预处理 Prepressing 编译 Compilation 汇编 Assembly 链接 Linking 流程图如下: 1.2 预编译主要用于处理引入的头文件、宏定义等信息。 对应的gcc编译语句如下: 123gcc -E hello.c -o hello. 2022-11-14 build #basic
Cobalt Strike 基础 1.基本配置1.1 组成部分 teamserver – teamserver – C2服务器 cs客户端 – cobaltstrike.jar – 控制端 beacon – 被控端 1.2 启动teamserver其中teamserver必须运行在Linux Java环境下,ubuntu相关命令如 2022-11-02 red-team #basic #cs #tools
x64保护模式 1.分段机制1.1 强制平坦化 在x64中,gdt表中普通段描述符中不再描述基址Base和界限Limit,基址永远是0,界限永远是最大的,只有属性还在使用。 fs、gs没有强制平坦,而是在msr寄存器中记录了基址: 名称 地址 内容 用途 IA32_FS_BASE MSR[0xC0000100] fs基址 x86 teb IA32_GS_BASE MSR[0xC0000101] 2022-10-25 reverse #basic #cpu
PE文件格式 1.overview 2.headers_offset 3.tables_offset 4.others123456// 偏移sunshine2k.de// 资源表https://blog.csdn.net/panjunnn/article/details/115458877// TLShttps://lzeroyuee.cn/old-blog/TLS回调 - lZeroyuee's B 2022-10-24 reverse #basic #windows #pe
Win10内核环境配置 1.双机调试1.1 虚拟机中执行命令12345# 管理员身份--powershellbcdedit /set “{current}” bootmenupolicy Legacybcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200bcdedit /copy “{current}” 2022-10-23 tools #Windows #Basic
ShellCode编程 1.BypassUAC1.1 伪造Token原理:将待提权进程替换为System进程EPROCESS结构 12345678910111213141516171819202122232425262728293031 mov rcx, 0x1234 ; Pid push rbx xor rbx, rbx mov rdx, qword ptr gs:[188h] ; Curren 2022-10-22 coding #shellcode
pe_to_shellcode源码分析 1.编译12345// 递归clonegit clone --recursive https://github.com/hasherezade/pe_to_shellcode.gitcd pe_to_shellcodecmake .// VisualStudio打开sln编译即可 如下图所示: 2.分析 dos->e_lfanew 长度不能大于1024 Optional->Magi 2022-10-21 coding #pe #open-source
Linux常用命令 1.帮助命令1234567891011# 查看命令简要说明whatis ls# 查看官方文档man ls# 使用正则表达式man -w "ta*"# 查看路径whereis ls 2.组合命令123456789101112131415161718# 连续运行多个命令cmd1 ; cmd2# 只有前一个命令OK,才会继续执行后面的cmd1 && cmd2# 只有 2022-10-19 tools #basic #Linux
GDB基础用法 1.基础配置1.1 源码调试安装cgdb图形化外壳,支持源码级断点 1sudo apt-get install cgdb 修改cgdb配置文件 CGDB Manual 0.8.0 12345vim ~/.cgdb/cgdbrcfile <cgdbrc>: # 设置源码指针高亮 set arrowstyle = highlight 演示如下:cgdb upx.out 2022-10-19 tools #basic #gdb