【置顶】【编程】开发笔记
日常开发遇到的一些坑,记录一下挺有意思的 多态的概念 和继承不同的是,他是根据“动作”的不同进行的分类。 在c中想要有一个数组存放既有int类型又有string类型,类似python中的{123, "AAA", "BBB", 456},但是c数组中只能存在一个类型,所以不可能。 但是我们可以定义一个type类型,int和string是他的子类,由多态的概念,可以创建一个 type* a[0x10]这样的数组,将int和string类型放在里面,其中需要的是父类引用。虽然在c++中我们可以直接传入对象的地址到数组中即可。 多态允许我们使用统一的接口来操作不同的对象,而具体执行哪个操作,则由对象自身的实际类型来决定。 多态存在的三个必要条件 继承:必须存在继承关系。 重写:子类必须对父类的方法进行重写(Override)。 父类引用指向子类对象:这是实现多态的关键代码形式。 123456789101112131415161718192021222324252627282930313233343536373839404...
windows内核驱动 12-内核hook-1.5
前一篇写了 inline hook和ssdt两种方式,但是相关的的某些东西没讲清楚。 windows rookit防护-Kernel Hook 1.5 前一篇写了 inline hook和ssdt两种方式,但是相关的的某些东西没讲清楚。 TL,DR:介绍驱动加载的方法,PatchGuard简介,如何在测试中关闭/开启KVAS保护(Shadow SSDT中的KiSystemCall64Shadow相关),然后测试ssdt/shadow ssdt hook方法,最后内容是Shadow SSDT枚举。 Ring3 加载一个sys文件 首先有一个hello world的驱动,尝试使用命令行加载他(使用管理员权限) 12345sc create <使用的名称> type= kernel start= demand binPath="/??/<驱动文件路径,这里应该用的是描述符格式>"sc start <使用的名称>sc stop <使用的名称>sc delete <使用的名称> sc是Service C...
windows内核驱动 11-内核hook-1
之前的文章 【逆向】MinHook框架代码解读简述了在用户模式下最简单的hook原理和一种框架。但是在内核当中使用hook遵循一样的原理,但是需要在部分细节上进行修改。 TL,DR:讲了内核中使用inline hook和ssdt表这两种比较基础的方式 windows rookit防护-Kernel Hook 1 基础 inline Hook 这里再次简述: 找到函数的地址 保存前n条合法的汇编指令 覆盖前n跳指令为一段跳到我们hook_func的跳板代码 在保存旧有n条指令的区域加上返回到后续地址的跳板代码,确保原始函数能被调用 所以在内核当中我们尝试依旧这样做(这里我开了测试模式,关闭了内核隔离,而且调试器开着的,暂时不需要担心patchguard。在现代windows上肯定是不行的) 那么在内核中如何找到要调用的函数呢? 在内核变成中可以使用MmGetSystemRoutineAddress获得内核函数的地址 12345678910111213141516171819202122232425262728#include <ntifs.h>#includ...
windows内核驱动 10-对抗进程回调保护与注册表回调保护
越来越感觉科技树点歪了 注册表回调保护对抗 可以得到所有回调的cookie信息,从而进行对抗。 通过MmGetSystenRoutineAddross找到CmUnRegisterCallback的位置,解析保存的回调函数链表做patch。 找到全局保存的当前注册表的回调值,直接清空。 对象回调保护对抗 可以得到所有回调的handle信息,从而进行对抗。 通过MmGetSystenRoutineAddross找到ObUnRegisterCallbacks的位置,解析保存的回调函数链表到回调函数做patch。 从这里 1obReg.ObjectType = PsProcessType; //注册进程的回调 解析_OBJECT_TYPE的CallbackList 123456789101112+0x000 TypeList : _LIST_ENTRY+0x010 Name : _UNICODE_STRING+0x020 DefaultObject : Ptr64 Void+0x028 Index ...
windows内核驱动 9-进程回调保护与注册表回调保护
又开始学内核编程 注册表回调保护 使用系统API CmRegisterCallback 12345NTSTATUS CmRegisterCallback( [in] PEX_CALLBACK_FUNCTION Function, [in, optional] PVOID Context, [out] PLARGE_INTEGER Cookie); 指向LARGE_INTEGER变量的指针,该变量接收标识回调例程的值。 注销回调例程时,请将此值作为 Cookie 参数传递给 CmUnRegisterCallback 1[in] Function 指向要注册的 RegistryCallback 例程的指针。 1[in, optional] Context 配置管理器将作为 CallbackContext 参数传递给 RegistryCallback 例程的驱动程序定义值 1[out] Cookie 指向LARGE_INTEGER变量的指针,该变量接收标识回调例程的值。 注销回调例程时,请...
【逆向】AI如何辅助逆向工程
公众号:https://mp.weixin.qq.com/s/HuZfvvlZbM5ImOR_IoB0fw 工欲善其事必先利其器,大预言模型LLM快速发展的今天已经诞生了众多工具,从ChatGPT -> AutoGPT -> Agent -> MCP -> Skill,并且从众多CTF竞赛中已经体现出了AI的强大生产力。本篇文章将简述如何通过常用逆向工程软件,使用AI进行赋能。 或许我们的公众号会有更多你感兴趣的内容 Part I. 何为AI AI本质上是一个方程式(很粗暴的讲法) f(x)=a0+a1x+a2x2+...+anxn=∑i=0naixif(x) = a_0+a_1x+a_2x^2+...+a_nx^n = \sum_{i=0}^{n} a_ix^i f(x)=a0+a1x+a2x2+...+anxn=i=0∑naixi 其中的 xxx 可以是一个向量,不仅仅是一个数字,其中 nnn 可以理解为ai模型参数的个数。通过样本的训练我们就可以得到数列 ai{a_i}ai 的值,这样输入后就能根据公式直接得到结果了。 大语言模型...
【CTF】2026 VNCTF Re 复现与WriteUp
好久没打CTF了,得快三年了吧。有一道安卓逆向就不写了,12月重装系统后没有环境 1. ez_maze 最短路径即为flag MFC程序,常规IDA 一眼壳,上动态调试,还好是签到题,假设没有反调试 快速定位 直接运行到程序开始,定位字符串 下个断点,然后dump 然后IDA 发现验证算法的方向是反着来的。可以翻过去看看迷宫生成算法,其实在附件没更新之前的版本更好观察一点,但是直接在内存里面看更快些。 部分操作迷宫可能直接走死,没有到这个判断,跟一下rcx就行了的值,然后看rcx+0x260 还原迷宫 123456789from collections import dequetest = [0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,...
【免杀】天堂之门
如何在32位程序塞入64位代码从而绕过hook拦截 公众号:https://mp.weixin.qq.com/s/DljrsqfemEZcblCyVYNDsQ 这里是两段汇编代码 12345678910111213141516171819section .data msg db "Hello, World!", 10 len equ $ - msgsection .text global _start_start: ; ssize_t write(int fd, const void *buf, size_t count) mov eax, 4 ; sys_write mov ebx, 1 ; stdout mov ecx, msg mov edx, len int 0x80 ; void exit(int status) mov eax, 1 ; sys_exit xor ebx, ebx int 0x80 使用int 0x8...
【实战】很坏很坏的默认配置策略
腾讯云默认云服务器SSH配置引发的“血案” 长话短说就是博主以为腾讯云默认root不能ssh登录,所以就设置了简单的密码,因为博主旧云服务器就是这样的(话说大多数Linux默认都是这样的吧,我还记得以前开kali的ssh得修改配置让root登录),之后自然而然地就被干了。 起因 腾讯云告警 top/htop发现不常见软件,这里截图丢了一张 时间线 11-14 15: 30 腾讯云告警 11-14 12:52 恶意文件写入 11-13 购买云服务器 日志审计 SSH 按照时间线 攻击从2025-11-14T12:46:58.464021+08:00进行ssh爆破 攻击者IP:142.93.111.208 从root用户登陆进入的???我记得旧服务器里面root用户不能远程登陆,这里应该也不能吧 不管了,先修改密码 然后我尝试使用root登录,发现登录成功??? 看看配置:sudo vi /etc/ssh/sshd_config ???腾讯云允许root用户远程登陆是开启的 设置为no然后重启 顺着这个漏洞发现存在多条被爆破成功的日志 这里关于Ubuntu的...
CPU Meltdown 漏洞与论文
公众号:https://mp.weixin.qq.com/s/VsGaZ7LqFkziJRpxp0rEBQ 很经典一篇同时具有实践价值和学术研究价值的文章,原文名称:Meltdown: Reading Kernel Memory from User Space [1]。提前预告:由于没有找到合适的CPU所以复现是失败的 或许我们的公众号会有更多你感兴趣的内容 [复现]CPU Meltdown 漏洞与论文 很经典一篇同时具有实践价值和学术研究价值的文章,原文名称:Meltdown: Reading Kernel Memory from User Space [1]。提前预告:由于没有找到合适的CPU所以复现是失败的 摘要 写过论文都知道这部分就是对文章大概的描述,很关键的是这句 “Meltdown exploits side effects of out-of-order execution on modern processors to read arbitrary kernel-memory locations including personal data...







