找回密码
 立即注册
查看: 30027|回复: 86

郁金香驱动编程+驱动逆向+驱动保护教程

    [复制链接]
  • TA的每日心情

    2024-9-15 00:57
  • 签到天数: 700 天

    连续签到: 1 天

    [LV.9]妙领天机

    1308

    主题

    320

    回帖

    4987

    积分

    至尊会员

    架设小能手

    积分
    4987

    最佳新人灌水之王突出贡献男神勋章

    发表于 2018-12-18 23:57:47 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×


    一、基础篇--简单驱动模型
    1.1DDK及VC6.0/7.0/9.0的安装
       1.1.1 安装VC++6.0 -1课
       1.1.2 安装VS2003-VC++7.0-2课
       1.1.2 安装VS2008-VC++9.0-3课
       1.1.3 安装VC助手-4课
       1.1.5 安装DDK-5课
    1.2驱动开发VC环境安装配置
    1.2.1 VC6环境编译驱动-6课
         A、VC6驱动编译配置
         B、VC6集成环境下编译驱动
    1.2.2 VS2003环境编译驱动-7课
         A、VC7驱动编译配置
         B、VC7集成环境下编译驱动
    1.2.3 VS2008环境编译驱动-8课
         A、VC9驱动编译配置
         B、VC9集成环境下编译驱动
    1.3NT式驱动
    1.3.1编写一个名为DDK_HelloWorld简单的驱动-9课
          A、VC6集成环境下书写代码
              驱动入口函数DriverEntry
              入口函数参数DriverObject和RegistryPath
          B、书写SOURCES文件
          C、书写makefile文件
          D、用DDK-Build环境编译
    1.3.2为DDK_HelloWorld添加卸载例程-10课
          A、输出调试信息-KdPrint
          B、认识PDRIVER_OBJECT结构
          C、注册驱动卸载例程
          D、卸载例程回调函数构建
          E、查看驱动调试信息
    1.3.3 用工具过驱动保护(确定学习方向)-11课
          A、用户层至内核的隐秘通道
          B、浅谈过保护原理
          C、实战过XX游戏驱动保护,让OD,CE正常附加调试
          D、小结
    1.3.4为DDK_HelloWorld添加设备例程-12课
          A、相关内核API介绍
          B、重要数据结构驱动对象DRIVER_OBJECT
          C、重要数据结构设备对象DEVICE_OBJECT
          D、添加创建设备的例程
          E、用工具查看驱动及驱动设备
    1.3.5VM+windbg安装 13课
          A、安装VM虚拟机
          B、在VM里安装操作系统
          C、安装windbg
          D、windbg和VM的相关配置
          E、启用windbg双机调试
    1.3.6实战用windbg调试自己驱动DDK_HelloWorld -14课
          A、用户层调试和内核调试区别
          B、如何下断跟踪
          C、F10步过和F11步进
          D、查看寄存器相关信息
          E、源代码调试与机器码调试
    1.3.7DDK_HelloWorld卸载例程细化-15课
          A、再看DEVICE_OBJECT结构
          B、删除符号链接
          C、删除设备
          D、测试卸载例程
    1.3.8为DDK_HelloWorld添加默认派遣例程-16课
          A、初识IRP
          B、一个简单的IRP处理函数
          C、IRP.IoStatus结构
          D、IoCompleteRequest函数
    1.4 编写自己的驱动过游戏保护(以11课分析为例)
       1.4.1需要具备的理论知识-17课
           A、了解SSDT结构
           B、由SSDT索引号获取当前函数地址        
           C、如何获取索引号
           D、获取起源地址-判断SSDT是否被HOOK
            E、如何向内核地址写入自己代码     
    1.4.2读出SSDT表当前函数地址-18课
            A、引用KeServiceDescriptorTable表
            B、通过ServiceTableBase+偏移读出当前函数地址
            C、用windbg测试读取的值
    1.4.3读出原函数地址-19课
            A、集成上一课代码至GetNt_CurAddr函数
            B、MmGetSystemRoutineAddress
              C、书写GetNt_OldAddr函数
              D、测试结果
    1.4.4JMP地址转换公式推导-20课
           A、JMP地址转换公式推导
           B、计算实际地址函数RealJmp_Addr
           C、测试
    1.5绕过SSDT驱动保护-21课
           A、去掉页面保护
           B、写入In Line HOOK代码
           C、用OD附加测试效果
           D、反HOOK代码
    1.6NT式驱动的安装-22课
         A、OpenSCManager
         B、CreateService
         C、OpenService
         D、StartService
          E、CloseServiceHandle
          F、集成到loadNTDriver函数
    1.7NT式驱动的卸载-23课
       A、卸载驱动流程
       B、内核函数DeleteService
       C、内核函数ControlService
       D、构建UnLoadSys函数
       E、测试并查看调试信息
    1.8 驱动代码中C和C++代码区别-24课
      A、函数调用约定
      B、C和C++编译方式
      C、用C++方式编译驱动
      D、C代码升级至C++
      E、优化21课的代码
    1.9、再谈VC环境配置-25课
    A、编译选项C/C++ Project Option
    B、链接选项Link Project Option
    C、测试所编译驱动
    二、中级篇
    2.1、手动加载NT式驱动(非工具)-26课
    A、注册表
    B、手动运行驱动
    C、手动停止驱动
    2.2、应用程序与驱动交互访问(缓冲模式)
    2.2.1、数据交换原理-27课
      A、用户层传入数据
      B、驱动层接收数据
      C、驱动层回传数据级用户层
    2.2.2、实战EXE和SYS通信-28课
    A、用户层传入数据EXE部分代码
    B、驱动层接收数据并处理SYS部分代码
    C、驱动层返回数据至用户层
    D、用户层获得处理结果
    2.3、应用程序与驱动交互访问(直接模式)-29课
    A、用户层传入数据EXE部分代码
    B、驱动层接收数据并处理SYS部分代码
    C、驱动层返回数据至用户层
    D、用户层获得处理结果
    E、预编译指令#pragma #ifndef #endif
    2.4、应用程序与驱动交互访问(其它模式)-30课
    A、用户层传入数据EXE部分代码
    B、驱动层接收数据并处理SYS部分代码
    C、驱动层返回数据至用户层
    D、用户层获得处理结果
    E、驱动中的异常处理
    2.5、再谈SSDT HOOK驱动保护原理-31课
    A、初识内核进程相关结构
    B、内核函数PsGetCurrentProcess
    C、进程保护原理
    D、实例测试
    2.6、自写驱动保护XX进程-32课
    A、HOOK SSDT
    B、构建自己的内核函数
    C、构建Hook和UnHook函数
    D、修改EXE和SYS对应源代码(实现所谓保护)
    E、测试效果
    2.7、驱动中的内存管理-33课
    A、 物理内存
    B、 虚拟内存
    C、 Ring0地址和Ring3地址
    D、 驱动程序和进程的关系
    E、 分页和非分页内存
    F、 分配内核内存
    2.8、内存管理相关内核API-34课
    A、RtlCopyMemory,RtlCopyBytes和RtlMoveMemory
    C、RtlZeroMemory和RtlFillMemory
    D、RtlEqualMemory
    E、ExAllocatePool和 ExFreePool
    F、重载new和delete操作符
    2.9.1在认识链表结构exe部分-35课
    A、链表结构
    B、链表的初始化
    C、在链表中插入数据(结点)
    D、链表的遍历
    2.9.2在驱动中使用链表sys部分-36课
    A、链表结构
    B、链表的初始化
    C、在链表中插入数据(结点)
    D、链表数据的删除
    E、链表的遍历
    2.A.1驱动下的异常处理-37课
    A、返回状态值
    B、检查内存的可用性
    C、异常处理try-except
    D、异常处理try-finally
    E、断言
    2.A.2内核模式下的字串操作-38课
    A、ASCII字符串和UNICODE字符串
    B、ANSI_STRING字符串和UNICODE_STRING字符串
    C、字符串的初始化与销毁
    D、字符串复制,比较,(大小写,整数和字串)相互转换
    E、ANSI_STRING字符串和UNICODE_STRING字符串相互转换
    2.A.3内核模式下的文件操作-39课
    A、文件的创建
    B、文件的打开
    C、获取和修改文件属性
    D、写文件和读文件
    三、进阶篇(进程保护,RootKit)
    3.1应用层勾子
    3.1.1 IAT表-40课
        A、初识IAT
        B、IAT表相关结构
        C、读出IAT项
        D、编写代码测试分析   
        E、HOOK IAT
        F、测试分析
    3.1.2 应用层勾子InLine HOOK-41课
        A、InLine HOOK 原理分析
        B、InLine HOOK 代码编写
        C、InLine HOOK 代码测试
    3.2内核勾子
    3.2.2 Shadow SSDT-42课
       A、Shadow SSDT表基址
       B、Shadow SSDT表结构
       C、Shadow SSDT HOOK
    3.2.3 绕过所有用户层HOOK-43课
       A、分析API函数原理
       B、自写API函数
       C、SYSENTER指令
       D、硬编码_emit
       E、模拟FindWindow函数
    3.2.4 驱动InLine HOOK实例-44课
       A、分析等HOOK函数参数
       B、选取HOOK地址
       C、构建HOOK 代码
       D、实现HOOK
       E、测试效果
    3.2.5 认识 IDT表-45课
       A、反断点的一些原理
       B、认识IDT表
       C、IDT表相关结构
       D、读出IDT表-sidt指令
      E、测试
    3.2.6 IDT HOOK-46课
       A、实例演示
       B、替换IDT处理函数
       D、IDT HOOK 代码书写
       D、测试效果
    四、高级篇--驱动逆向(实例分析)
      4.1 XX游戏驱动保护分析(实例A)
       4.1.1、XX游戏驱动保护分析(实例A)-47课
        A、保护情况分析
         B、猜测相关原理
         C、过保护让CE能查找到数据的相关分析
         D、过保护让CE能修改数据的相关分析
       4.1.2 、XX游戏过保护分析(实例B)-48课
         A、分析游戏进程保护
         B、分析游戏数据读取保护
         C、分析游戏数据写入保护
    4.2、 XX游戏驱动保护代码书写
        4.2.1 XX游戏驱动保护代码书写-49课
         A、定位特征码函数FindCode_Address构建
         B、定位NtOpenThread
         C、定位NtOpenProcess
         D、定位NtReadVirtualMemory
         E、定位NtWriteVirtualMemory
         F、CALL与JMP指令的区别
         G、构建相应的替换函数
        4.2.2 XX游戏驱动保护代码书写-50课
         A、恢复NtOpenThread
         B、恢复NtOpenProcess函数   
         C、恢复NtReadVirtualMemory 让CE可读
         D、恢复NtWriteVirtualMemory让CE可写
         E、Ret指令详解
         F、Hook代码编写并测试
      五、附加课程(不会实时更新)
        5.1 过XX游戏保护实例
           A、1394hub保护(游戏A)
           B、necheck保护(游戏B)



    游客,如果您要查看本帖隐藏内容请回复



    楼主热帖
    [!luckypost!]: 柠檬 在网吧通宵,花了 5 金钱. !lucky_goodrank! / !lucky_badrank!
  • TA的每日心情
    擦汗
    2019-8-30 19:53
  • 签到天数: 464 天

    连续签到: 5 天

    [LV.9]妙领天机

    1

    主题

    3069

    回帖

    3069

    积分

    声名显赫

    积分
    3069
    发表于 2019-4-9 20:54:35 | 显示全部楼层
    LZ是天才,坚定完毕
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-8-30 17:27
  • 签到天数: 473 天

    连续签到: 2 天

    [LV.9]妙领天机

    8

    主题

    3051

    回帖

    3067

    积分

    声名显赫

    积分
    3067
    发表于 2019-4-10 02:03:27 | 显示全部楼层
    围观 围观 沙发在哪里!!!
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-8-30 11:30
  • 签到天数: 481 天

    连续签到: 1 天

    [LV.9]妙领天机

    0

    主题

    3064

    回帖

    3059

    积分

    声名显赫

    积分
    3059
    发表于 2019-4-11 09:38:56 | 显示全部楼层
    顶顶更健康
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-30 06:43
  • 签到天数: 479 天

    连续签到: 1 天

    [LV.9]妙领天机

    14

    主题

    3048

    回帖

    3074

    积分

    声名显赫

    积分
    3074
    发表于 2019-4-11 14:13:28 | 显示全部楼层
    鼎力支持!!
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-8-30 05:11
  • 签到天数: 462 天

    连续签到: 1 天

    [LV.9]妙领天机

    1

    主题

    2977

    回帖

    2979

    积分

    声名显赫

    积分
    2979
    发表于 2019-4-11 17:13:46 | 显示全部楼层
    顶顶更健康
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-8-30 20:16
  • 签到天数: 475 天

    连续签到: 1 天

    [LV.9]妙领天机

    0

    主题

    3046

    回帖

    3039

    积分

    声名显赫

    积分
    3039
    发表于 2019-4-13 08:38:19 | 显示全部楼层
    珍爱生命,果断回帖。
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2019-8-30 09:23
  • 签到天数: 471 天

    连续签到: 2 天

    [LV.9]妙领天机

    1

    主题

    3006

    回帖

    2998

    积分

    声名显赫

    积分
    2998
    发表于 2019-4-16 11:55:48 | 显示全部楼层
    围观 围观 沙发在哪里!!!
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-8-30 12:25
  • 签到天数: 476 天

    连续签到: 1 天

    [LV.9]妙领天机

    9

    主题

    3031

    回帖

    3048

    积分

    声名显赫

    积分
    3048
    发表于 2019-4-17 08:09:02 | 显示全部楼层
    没人回帖。。。我来个吧
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-8-30 13:21
  • 签到天数: 478 天

    连续签到: 4 天

    [LV.9]妙领天机

    3

    主题

    2953

    回帖

    2960

    积分

    声名显赫

    积分
    2960
    发表于 2019-4-19 05:48:47 | 显示全部楼层
    支持,赞一个
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|任逍遥

    GMT+8, 2024-11-21 17:06 , Processed in 0.062213 second(s), 47 queries .

    Powered by 任逍遥 X3.5

    Copyright © 2001-2024, Rxiaoyao Cloud.

    快速回复 返回顶部 返回列表