瞄一眼

 找回密码
 立即注册
查看: 2109|回复: 51

[内核驱动] 仿Pchunter之SpyHunter源码

[复制链接]

323

主题

347

帖子

59

积分

管理员

Rank: 12Rank: 12Rank: 12

积分
59
发表于 2019-11-10 10:14:43 | 显示全部楼层 |阅读模式
源码包含加密工具和仿照Pchunter的内核ark扫描工具 全部开源 具体看下图
QQ截图20191110082034.png QQ截图20191110103459.png
QQ截图20191110082350.png QQ截图20191110082403.png
QQ截图20191110100112.png QQ截图20191110100141.png
主要包含以下功能:
NTSTATUS ComVersion(PVOID pInBuffer, ULONG uInSize, PVOID pOutBuffer, ULONG uOutSize, ULONG* dwRet);

typedef NTSTATUS (*pfnFunction)(PVOID pInBuffer, ULONG uInSize, PVOID pOutBuffer, ULONG uOutSize, ULONG* dwRet);

pfnFunction FunctionArray[] = {
        NULL,
        ReadSector,                             // 读取扇区
        SetBackupDriverEvent,                   // 保存r3传进来的同步事件对象
        SetBackupDriverPath,                    // 保存r3传来的备份驱动的路径
        ReadMBR,                                // 读取扇区
        MzfReadFileEx,                          // 读取文件
        WriteMBR,                               // 写入MBR扇区
        MzfWriteFileEx,                         // 写入文件
        MzfCreateFileEx,                        // 创建文件
        Forbids,                                // 禁止创建进程 禁止创建线程 禁止创建文件 禁止切换桌面 禁止关机重启注销 禁止注册表键值创建写入 禁止加载模块 禁止修改系统时间 禁止锁定计算机 禁止加载驱动 r3加载驱动时备份驱动 禁止注入模块 禁止桌面截图
        Powers,                                 // 负责重启等电源的操作
        ModifyKernelMemory,                     // 修改内核内存
        QueryLockedRegistryHandle,              // 访问被锁定的注册表句柄
        SetProcessPid,                          // 保存指定进程的pid和eprocess
        StartOrStopSelfProtect,                 // 开启或者关闭自身保护
        SetFileNormalAttributeDispatch,         // 设置文件属性
        CloseFileHandleDispatch,                // 关闭文件句柄
        QueryFileLockInformationDispatch,       // 查询文件锁定情况
        CreateFileDispatch,                     // 创建文件
        QueryDirectoryFileDispatch,             // 遍历文件对象指定的目录里的文件各种信息
        ComVersion,                             // 本软件版本比较是否是2.0
        KernelQueryVirtualMemory,               // 内核访问进程内存
        ListProcess,                                                        // 枚举进程
        KillProcess,                                                        // 杀进程
        DumpProcess,                                                        // 拷贝进程内存
        ProcessMenu,                                                        // 进程右键菜单,判断进程是否可挂起等
        SuspendOrResumeProcess,                                        // 挂起或者恢复进程运行
        ListProcessModule,                                                // 枚举进程模块
        DumpDllModule,                                                        // 拷贝模块内存
        UnloadDllModule,                                                // 卸载进程模块                                        
        ListProcessThread,                                                // 枚举进程线程
        KillThread,                                                                // 杀线程
        SuspendOrResumeThread,                                        // 挂起或者恢复线程运行
        GetThreadSuspendCount,                                        // 获取线程的挂起计数
        ListProcessHandle,                                                // 枚举进程句柄
        KillHandle,                                                                // 杀句柄
        ListProcessMemory,                                                // 枚举进程内存
        FreeProcessMemory,                                                // 释放内存
        ModifyMemoryProtection,                                        // 更改内存保护属性
        ZeroProcessMemory,                                                // 清零内存
        ListProcessWnds,                                                // 枚举进程窗口
        ListProcessTimers,                                                // 枚举进程定时器
        RemoveTimer,                                                        // 移除定时器
        ModifyTimeOutValue,                                                // 修改定时器超时时间
        ListHotKeys,                                                        // 枚举进程热键
        RemoveHotKey,                                                        // 移除hotkey
        ListProessPrivileges,                                        // 枚举进程权限
        AdjustProcessTokenPrivileges,                        // 调整进程权限
        EnumDrivers,                                                        // 枚举驱动
        EnumerateKey,                           // 枚举指定"\\Registry\\Machine\\SYSTEM\\ControlSet001\\Services"注册表键
        EnumerateKeyValues,                     // 枚举指定"\\Registry\\Machine\\SYSTEM\\ControlSet001\\Services"注册表键值
        DumpDriverMemory,                       // dump驱动内存
        UnloadDriver,                           // 卸载本驱动
        GetAllCallbackNotify,                   // 获取进程 线程 文件 注册表 电源等内核回调
        RemoveCallbackNotify,                   // 删除内核各种回调
        EnumDpcTimer,                           // 遍历dpc定时器
        RemoveDpcTimer,                         // 删除dpc定时器
        EnumIoTimer,                            // 遍历io定时器
        StartOrStopIoTimer,                     // 启动或者停止io定时器
        RemoveIoTimer,                          // 删除io定时器
        EnumWorkerThread,                       // 遍历工作线程
        EnumDebugRegisters,                     // 保存当前drx所有调试寄存器
        GetDirectIoProcess,                     // 保存可以进行io操作的进程 进程对象的io表偏移是否正常
        DisableDirectIo,                        // 禁止进程io操作
        EnumFilterDriver,                       // 遍历过滤驱动
        EnumSsdtHookInfo,                       // 遍历ssdt hook 欢迎加入miao1yan.top群号835875625和755836982
        GetSdtInlineHookAddress,                // 获取ssdt inline hook信息
        EnumShadowSsdtHookInfo,                 // 遍历shadow ssdt hook信息
        RestoreSsdtOrShadowHook,                // 恢复ssdt 或者shadow ssdt hook 信息
        GetFsdDispatch,                         // 获取文件驱动Dispatchs表的hook信息
        GetInlineAddress,                       // 获取inline hook的目标跳转地址
        RestoreDispatchHooks,                   // 恢复文件驱动的Dispatchs表 hook
        GetKbdClassDispatch,                    // 获取键盘驱动的Dispatchs表的hook信息
        GetMouClassDispatch,                    // 获取鼠标驱动的Dispatchs表的hook信息
        GetClasspnpDispatch,                    // 获取usb驱动的Dispatchs表hook信息
        GetAtapiDispatch,                       // 获取硬盘接口Dispatchs表hook信息
        GetAcpiDispatch,                        // 获取电源管理接口Dispatchs表hook信息
        GetTcpipDispatch,                       // 获取网络协议Dispatchs表的hook信息
        EnumIdtHook,                            // 遍历idt hook
        EnumObjectHook,                         // 遍历内核各种对象的hook
        EnumAllObjectTypes,                     // 遍历内核各种对象类型
        GetSelfCreateObjectHookInfo,            // 获取我们自己的对象操作回调表
        EnumKernelEntryHook,                    // 获取内核入口hook信息
        EnumIatEatHook,                         // 获取模块导入 导出表 hook信息
        EnumExportFunctionsPatchs,              // 通过加载备份的模块 和已经模块的导出表函数 比较是否一致 类似crc检测
        EnumSsdtInlineHookInfo,                 // 获取ssdt inline hook的信息
        EnumShadowSsdtInlineHookInfo,           // 获取shadow ssdt inline hook的信息
        EnumModulePatchs,                       // 枚举各种模块代码段是否被修改
        EnumMessageHook,                        // 枚举windows消息hook
        RestoreObjectHook,                      // 恢复对象hook
        RestoreIatEatHook,                      // 恢复导入导出表hook
        RestoreModifiedCode,                    // 恢复被目标被篡改的代码
        RegOpenKey,                             // 注册表键打开
        RegEnumerateValueKey,                   // 枚举注册表键值
        RegEnumerateKey,                        // 枚举注册表键
        RegDeleteKey,                           // 删除注册表键
        RegCreateKey,                           // 创建注册表键
        RegSetValueKey,                         // 写入注册表键值
        RegDeleteValueKey,                      // 删除注册表键值
        RegRenameKey,                           // 修改注册表键
        KernelDeleteFile,                       // 内核删除文件
        Disassmbly,                             // 反汇编
        RecoverRegisters,                       // 恢复调试寄存器
        KernelOpenProcess,                      // 内核打开进程
        KernelReadProcessMemory,                // 内核读取目标进程内存
        KernelWriteProcessMemory,               // 内核写入目标进程内存
        KernelSuspendProcess,                   // 内核暂停进程
        KernelResumeProcess,                    // 内核恢复进程
        KernelVirtualProtectEx,                 // 内核修改页面属性
        EnumPort,                               // 遍历端口
        NULL,
};


解压密码:
游客,如果您要查看本帖隐藏内容请回复

下载链接:
游客,如果您要查看本帖隐藏内容请回复

0

主题

12

帖子

2

积分

韶华一笑间

Rank: 1

积分
2
发表于 2019-11-10 10:18:32 | 显示全部楼层
自己写过不满意 现在看看人界怎么写的

0

主题

3

帖子

1

积分

韶华一笑间

Rank: 1

积分
1
发表于 2019-11-10 10:20:47 | 显示全部楼层
学习学习

0

主题

5

帖子

1

积分

韶华一笑间

Rank: 1

积分
1
发表于 2019-11-10 10:22:19 | 显示全部楼层
看下   谢谢分享

0

主题

22

帖子

5

积分

韶华一笑间

Rank: 1

积分
5
发表于 2019-11-10 12:23:19 | 显示全部楼层
谢谢分享。。

0

主题

10

帖子

2

积分

韶华一笑间

Rank: 1

积分
2
发表于 2019-11-10 12:26:01 | 显示全部楼层
感谢分享,看看

0

主题

21

帖子

3

积分

韶华一笑间

Rank: 1

积分
3
发表于 2019-11-10 13:29:51 | 显示全部楼层
下载学习下  支持 全平台不

0

主题

2

帖子

0

积分

韶华一笑间

Rank: 1

积分
0
发表于 2019-11-10 13:36:34 | 显示全部楼层
周末作业,写了一点功能出来,来看看大佬写的

0

主题

14

帖子

2

积分

韶华一笑间

Rank: 1

积分
2
发表于 2019-11-10 14:45:13 | 显示全部楼层
一直想学ark

0

主题

24

帖子

3

积分

韶华一笑间

Rank: 1

积分
3
发表于 2019-11-10 14:46:25 | 显示全部楼层
好好学习一波
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|瞄眼社区

GMT+8, 2020-7-6 06:20 , Processed in 0.205220 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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