51HOOK-软件安全培训课程[完结]
- 1-c c++逆向基础课
- 1_01进制
- 2_02数据的宽度
- 3_03逻辑运算
- 4_04第一个C程序
- 5_05数据类型与变量
- 6_006整型变量的存储
- 7_07浮点数补充
- 8_08字符类型
- 9_09运算符
- 10_10类型转换
- 11_11控制语句if
- 12_12if-else更新
- 13_13if-else if-else多选择结构
- 14_14switch语句
- 15_15for循环
- 16_16while循环
- 17_17goto语句
- 18_18猜数字游戏
- 19_19数组1
- 20_20数组2
- 21_21二维数组
- 22_22char数组和字符串文本最终
- 23_23字符串链接
- 24_24字符串比较
- 25_25字符串查找
- 26_26字符串API实现修改后
- 27_27指针1
- 28_28指针2修改后
- 29_29指针3
- 30_30指针与字符串
- 31_31指针与数组
- 32_32常量指针与指针常量
- 33_关于指针常量常量指针叫法的补充
- 34_33函数修改
- 35_34函数传参改
- 36_35内存分配
- 37_36函数指针与指针函数sj
- 38_37变量的作用域及生命周期
- 39_38函数递归调用
- 40_39参数数量可变的函数
- 41_40main函数及命令行参数获取
- 42_41结构体定义与使用
- 43_42结构体的定义与使用2
- 44_43结构体中的指针与数组
- 45_44结构体浅拷贝深拷贝
- 46_45结构体长度计算
- 47_46单向链表的定义
- 48_47单向链表的增删改查
- 49_48单向循环链表
- 50_49双向链表
- 51_50树的定义
- 52_51二叉数的创建与遍历
- 53_52二叉排序树
- 54_53联合体
- 55_54枚举类型
- 56_55位运算
- 57_56宏定义与应用
- 58_57条件编译
- 59_58文件操作
- 60_59文件读写
- 61_60按照行读写文件fgets、fputs
- 62_61初识C++
- 63_62C++命名空间
- 64_63USING声明及USING编译指令
- 65_64C++对C语言的增强与扩展
- 66_65C++对C语言的增强与扩展2
- 67_66引用
- 68_67C++引用2
- 69_68类的声明,定义与应用
- 70_69C++this指针
- 71_70C++构造析构函数
- 72_71C++构造析构函数2
- 73_72继承
- 74_73访问权限
- 75_74C++new-delete关键字
- 76_75拷贝构造函数
- 77_76静态
- 78_77虚继承
- 79_78友元
- 80_79运算符重载
- 81_80运算符重载2
- 82_81虚函数
- 83_82虚函数内存模型
- 84_83模板
- 85_84异常处理
- 86_85STL01
- 87_86STL2
- 88_87windows编程-从控制台到窗口程序
- 89_88windows编程-字符串处理
- 90_89windows编程-第一个窗口程序
- 91_90windows编程-消息处理
- 92_91windows编程-窗口控件
- 93_92窗口操作函数的使用
- 94_93资源操作1
- 95_94资源操作2
- 96_95控件的使用
- 97_96图片控件、下拉框控件
- 98_97滑块、进度条控件
- 99_98List Control
- 100_99List Contorl2
- 101_100动态链接库
- 102_101初识MFC
- 103_102消息反射
- 104_103单选多选框控件
- 105_104时钟控件
- 106_105tab控件
- 107_106listContrl
- 108_107树、工具栏、状态栏
- 109_108认识进程线程
- 110_109进程相关操作
- 111_110文件操作
- 112_111进程间通信
- 113_112线程
- 114_113线程2
- 115_114线程同步-临界区、互斥体
- 116_115游戏限制多开原理
- 117_116异步IO
- 118_117异步IO2
- 119_118网络编程1
- 120_119网络编程-多人聊天功能
- 121_120IOCP
- 122_121初识汇编
- 123_122内存读写
- 124_123运算指令
- 125_124寻址方式,lea指令
- 126_125堆栈
- 127_126堆栈操作
- 128_127标志寄存器
- 129_128基础指令
- 130_129JCC指令
- 131_130call retn指令
- 132_131MVOS、STOS指令
- 133_132函数调用堆栈图
- 134_133函数调用约定
- 135_134if-else分析
- 136_135switch语句逆向分析
- 137_136MOVZX,MOVSX指令;循环语句分析
- 138_137逆向练习
- 139_138X64程序逆向分析
- 140_139逆向练习3
- 141_140内联汇编
- 142_141C++类对象逆向分析
- 143_142虚函数逆向分析
- 144_143PE文件解析-DOS头解析
- 145_144PE文件解析-PE头解析
- 146_145PE文件解析-可选PE头
- 147_146PE解析-区段头(区段表)
- 148_147PE文件解析-导出表
- 149_148PE文件解析-导入表解析1
- 150_149PE文件解析-导入表解析2
- 151_150PE文件解析-重定位表
- 152_1511TLS反调试
- 153_152内存管理-堆
- 154_153虚拟内存管理
- 155_154限制多开的另一种思路-共享内存
- 156_155dll注入
- 157_156消息HOOK
- 158_157IAT HOOK
- 159_158 inline hook
- 160_159游戏外挂基础-课前准备
- 161_160游戏外挂基础-通过hook实现无敌功能
- 162_161游戏外挂基础-无敌功能代码编写
- 163_162游戏外挂基础-游戏内存搜索技巧
- 164_163游戏外挂基础-自动施法自动加血功能-1
- 165_163游戏外挂基础-自动施法自动加血功能-2
- 166_164游戏外挂基础-自动补药代码编写
- 167_165游戏外挂基础-将外挂窗口注入到游戏进程
- 168_166游戏外挂基础-注入方式实现无敌功能
- 169_167软件漏洞-初识漏洞
- 171_169软件漏洞-跳板指令定位shellcode
- 170_168软件漏洞-hello shellcode
- 172_170软件漏洞-使用 TEB PEB查找核心模块
- 173_171软件漏洞-优化shellcode
- 174_172软件漏洞-shellcode调试
- 175_173软件漏洞-shellcode瘦身
- 176_174软件漏洞-实现后门程序(上)
- 177_175软件漏洞-实现后门程序(下)
- 178_176软件漏洞-shellcode加解密
- 179_178壳-壳的原理
- 180_179壳-将shellcode写入到PE文件
- 181_180壳-添加壳代码的几种方式
- 182_181加壳01
- 183_182加壳02
- 184_183加壳03
- 185_184加壳-修复重定位表
- 186_185加壳-加密导入表
- 187_186加壳-移动导入表代码实现
- 188_187壳项目-重定位表终极之战
- 189_188脱壳-UPX脱壳原理
- 190_189脱壳-修复加密IAT
- 191_190脱壳-偷梁换柱修复IAT
- 192_191脱壳-脱壳脚本编写
- 193_192脱壳-SEH
- 194_193脱壳-自定义异常处理器并添加调试器检测
- 195_194脱壳-带反调试的壳
- 196_195脱壳-断点原理
- 197_196VEH
- 198_197VEH HOOK
- 199_198浅析VMprotect虚拟化架构
- 200_199代码膨胀与变异原理
- 201_200反调试-过CRC校验,虚拟机检测
- 202_201如何关闭其他进程句柄
- 2-R3反调试专题
- 01异常过滤器
- 02反调试1
- 03反调试2
- 04反调试3-硬件断点反调试
- 05反调试4-检测调试对象
- 06反调试5
- 07反调试6-CRC检测
- 08反调试-过CRC校验,虚拟机检测
- 09反调试-调试器原理
- 11反调试-过Strong OD代码实现
- 12反调试11
- 13反调试12-通过程序子窗口特点检测
- 14关闭其他进程句柄
- 15反调试-系统调用
- 38.网络游戏编程1
- 1.游戏环境搭建
- 2.搜索血值来源
- 3.通过发包函数找功能call
- 4.分析喊话call参数来源
- 5.线程发包讲解
- 6.使用背包物品call
- 7.人物背包分析
- 8.遍历背包
- 9.数据结构分析-list
- 10.数据结构分析-vector
- 39.网络游戏编程2
- 1.数据结构分析-二叉树
- 2.周围对象分析
- 3.周围对象分析2
- 4.周围对象集合基址查找
- 5.遍历周围对象1
- 6.自动打怪、dll调试
- 7.自动攻击分析
- 8.技能栏技能分析
- 9.技能列表分析1
- 10.技能列表分析2
- 40.网络游戏编程3
- 1.人物武学技能基址查找
- 2.实现技能遍历功能
- 3.对象阵营分析
- 4.周围对象类型分析代码实现
- 5.怪物血量分析
- 6.技能CD分析1
- 7.判断技能冷却call参数分析
- 8.自动打怪逻辑实现1
- 9.自动打怪2-挂接游戏主线程.
- 10.自动打怪3-功能调用
- 41.网络游戏编程4
- 1.自动打怪4-选取最近目标
- 2.自动打怪5-选取最近目标
- 3.自动打怪6-筛选出怪物
- 4.自动打怪7-使用技能自动攻击
- 5.自动寻路
- 6.自动寻路代码实现-数据管理
- 7.掉落物品分析1
- 8.物品掉落分析2
- 9.掉落物品分析3-哈希表结构
- 10.遍历掉落物品
- 42.网络游戏编程5
- 1.任务列表分析
- 2.任务列表遍历
- 3.可接任务列表分析
- 4.可接任务列表2
- 5.可接任务列表遍历
- 6.接受任务分析1
- 7.跳过NPC对话接受任务分析
- 8.自动更新基址1
- 9.自动更新基址2
- 10.istringstream补充
- 43.网络游戏编程6
- 1.自动更新基址3
- 多余目录
- 44.反调试专题1
- 1.过滤器异常
- 2.反调试1
- 3.反调试2
- 4.反调试3-硬件断点反调试
- 5.反调试4-检测调试对象
- 6.反调试5
- 7.反调试6-CRC检测
- 8.反调试7-过CRC校验,虚拟机检测
- 9.反调试8-调试器原理
- 10.反调试9-过掉Strong Od反反附加
- 45.反调试专题2
- 1.反调试10-过Strong OD代码实现
- 2.反调试11-环境检测,TF标志位
- 3.反调试12-通过程序子窗口特点检测
- 4.关闭其他进程句柄
- 多余目录
- 46.windows内核开发1
- 1.双机调试环境搭建.
- 2.段寄存器
- 3.段描述符
- 4.段描述符解析
- 5.权限级别
- 6.提权实验
- 7.调用门
- 8.中断门
- 9.陷阱门
- 10.任务段
- 47.windows内核开发2
- 1.任务门
- 2.分页机制-环境配置
- 3.101012分页
- 4.页属性
- 5.作业讲解
- 6.101012分页内存管理
- 7.29912分页
- 8.18TLB
- 9.控制寄存器
- 48.windows内核开发3
- 1.第一个驱动程序
- 2.UnicodeString的使用
- 3.内存分配
- 4.链表LIST_ENTRY
- 5.二叉查找树
- 6.文件操作
- 7.文件操作2
- 8.作业讲解
- 9.注册表操作
- 10.注册表操作2
- 49.windows内核开发4
- 1.应用层与驱动层之间的通信1
- 2.应用层与驱动层之间的通信2
- 3.应用层与驱动层通信3
- 4.数据交互方式1
- 5.DeviceIoControl实现直接读写2
- 6.API调用过程
- 7.快速系统调用
- 8.SSDT
- 9.SSDT HOOK
- 10.动态获取调用号-解析ntdll导出表
- 50.windows内核开发5
- 1.动态获取调用号2
- 2.wow64进程
- 3.进程结构体及进程保护
- 4.内核中遍历进程
- 5.断链隐藏进程
- 6.线程结构
- 7.驱动遍历与隐藏
- 8.进程与线程的枚举
- 9.KPCR
- 10.线程切换
- 51.windows内核开发6
- 1.线程主动切换
- 2.线程被动切换
- 3.进程挂靠
- 4.内核中线程相关操作
- 5.全局句柄表
- 6.私有句柄表
- 7.作业讲解
- 8.句柄降权实现反调试
- 9.过掉句柄降权保护
- 10.作业讲解
- 52.windows内核开发7
- 1.APC
- 2.APC注入
- 3.APC队列插入过程分析
- 4.内核APC插入操作
- 5.内核层插入用户模式APC
- 6.DPC
- 53.驱动读写项目
- 1.驱动读写项目1-三环与驱动另类通信方式
- 3.驱动读写2-注册回调
- 4.驱动读写3-完善r3与r0之间的通信
- 5.驱动读写4-卸载通信
- 6.驱动读写5-驱动层读取进程内存
- 7.驱动读写6-修改cr3读取内存
- 8.驱动读写7-MDL方式访问内存
- 9.驱动读写8-驱动读取内存测试
- 10.驱动读写9-获取应用层加载的模块
- 54.驱动读写项目2
- 1.驱动读写10-作业讲解
- 2.驱动读写11-win10下r3与r0的另类通信方式
- 3.驱动读写12-查找指定内核模块
- 4.驱动读写13-特征码搜索
- 5.驱动读写14-特征码搜索2
- 6.驱动读写15-蓝屏处理
- 7.驱动读写16-代码实现驱动加载
- 8.驱动读写17-驱动名称随机
- 9.驱动读写18-内存属性查询
- 10.驱动读写19-作业讲解
- 55.驱动读写项目3
- 1.驱动读写20-注册回调实现进程保护
- 2.驱动读写21-修改进程对象头实现进程保护
- 3.驱动读写22-隐藏回调保护
- 4.驱动读写23-0环线程劫持1
- 5.驱动读写24-线程劫持2
- 6.驱动读写25-进程、线程、模块检测
- 56.X64网游实战
- 1.屏蔽玩家功能分析
- 2.周围对象分析1
- 3.周围对象分析2
- 4.对象数组结构分析
- 5.选中最近的怪物
- 6.自动选怪代码实现
- 7.普通攻击call
- 8.地面物品分析
- 9.地面物品类型区分
- 10.自动寻路
- 56.X64网游实战2
- 1.屏蔽玩家功能分析
- 2.周围对象分析1
- 3.周围对象分析2
- 4.对象数组结构分析
- 5.选中最近的怪物
- 6.自动选怪代码实现
- 7.普通攻击call
- 8.地面物品分析
- 9.地面物品类型区分
- 10.自动寻路
- 58.X64网游实战3
- 1.自动寻路代码实现
- 2.按键call分析
- 3.走路call分析1
- 4.走路call2-CE搜索基址技巧
- 5.另一种方式分析走路call
- 6.已接任务列表分析
- 7.NPC对话call
- 8.喊话call分析
- 9.天人合一分析
- 10.技能数组分析
- 59.X64内核基础
- 2.x64下的系统段
- 1.X64段寄存器
- 3.64位调用门提权
- 4.32应用使用调用门
- 5.64位页表
- 6.win7下的页表基址
- 7.win10下的页表基址
- 8.通过页表基址修改页属性
- 9.作业讲解
- 10.X64SSDT
- 60.X64内核基础2
- 1.x64SSDT表遍历
- 2.X64下SSDT HOOK
- 3.win1064位全局句柄表解析
- 61.VT基础
- 1.VT技术简介
- 2.VT开启流程-环境检测
- 3.VT开启流程-初始化工作
- 4.VT开启流程-VMCS区域
- 5.VT开启流程-填充VMCS
- 6.VT开启流程-作业讲解
- 7.VT开启流程-作业讲解
- 8.VT开启流程-Rip Rsp内容补充
- 9.VT开启流程-完善Guest区域
- 10.VT开启流程-HOST区域
- 62.VT基础2
- 1.VT开启流程-VMCS控制区
- 2.VT开启流程-vmentry,vmexit
- 3.VT开启流程-handler
- 4.VT开启流程-事件处
- 5.VT开启流程-CPUID处理
- 6.VT开启流程-关闭VT
- 7.VT开启流程-VT启动测试
- 8.VT开启bug处理
- 9.MSR寄存器拦截
- 10.MSR寄存器拦截代码实现
- 63.VT基础3
- 1.MSR寄存器拦截扫尾
- EPT
- EPT初始化
- EPT实现无痕HOOK1
- EPT实现无痕HOOK2
- EPT实现无痕HOOK3
- 开启EPT
- 开启EPT检测