Cracker-Drive 开发文档

全面了解驱动特性、安全规范和使用方法

文档目录

核心特性

全系统兼容
  • Windows 7/10/11 全系统支持
  • 支持32位/64位系统架构
  • 支持AMD/Intel全平台
性能优化
  • 内核级通信加速
  • 多线程并发处理
  • 智能内存管理

安全规范

重要提醒
  • 需以管理员权限运行
  • 禁止修改内核签名
  • 使用前请关闭内核隔离功能
  • 避免在生产环境中直接测试

C++调用示例

C++ 申请内存 · 调用示例
// Cracker-Drive C++ 调用示例
#include "CrackerUserCall.h"

int main()
{
    // 初始化用户调用部分
    printf("[ Cracker ] 开始初始化用户调用部分.\n");
    if (!Cracker_InitUserCall()) {
        printf("[ Cracker ] 用户调用部分初始化失败!\n");
        system("pause");
        return 0;
    }
    printf("[ Cracker ] 初始化用户调用部分成功.\n");

    // 通过SecretKey登录平台
    printf("[ Cracker ] 开始登录平台.\n");
    int CrackerStatus = Cracker_InitAppKey("your_secret_key");
    if (CrackerStatus != 0x0A000001) {
        printf("[ Cracker ] 平台登录失败, 错误代码 %x!\n", CrackerStatus);
        system("pause");
        return 0;
    }
    printf("[ Cracker ] 登录平台成功.\n");

    // 安装驱动
    printf("[ Cracker ] 开始安装驱动\n");
    int AppStatus = Cracker_Install();
    if (AppStatus != 0x0A000001) {
        printf("[ Cracker ] 驱动安装失败, 错误代码 %x!\n", AppStatus);
        system("pause");
        return 0;
    }
    printf("[ Cracker ] 安装驱动成功\n");

    // 设置进程
    printf("[ Cracker ] 开始设置进程\n");
    if (!Cracker_SetProcess(GetCurrentProcessId(), true)) {
        printf("[Cracker] 设置进程失败!\n");
        system("pause");
        return 0;
    }
    printf("[ Cracker ] 设置进程成功\n");

    // 内存操作示例
    int Target = 0; 
    int Src = 0xB8;
    printf("[ Cracker ] 读物理内存\n");
    Cracker_ReadPhysicalMemory((__int64)&Src, &Target, sizeof(int));
    printf("Target -> %x, Src -> %x\n", Target, Src);

    // 更多操作...
    
    printf("[ Cracker ] 演示完毕\n");
    system("pause");
}

易语言调用示例

易语言 申请内存 · 调用示例
.版本 2
.支持库 spec

.程序集 启动
.程序集变量 演示进程名, 文本型
.程序集变量 驱动授权密钥, 文本型

.子程序 _启动子程序, 整数型

驱动授权密钥 = "Key"
演示进程名 = "Dwm.exe"
.如果 (信息框 ("你是否是新手?", #是否钮, "内存操作Demo", ) = #是钮)
    新手操作 ()
.否则
    大佬操作 ()
.如果结束
返回 (0)

.子程序 新手操作
.局部变量 结果_安装驱动, 逻辑型
.局部变量 ProcessID, 整数型
.局部变量 结果_申请地址, 长整数型
.局部变量 结果_写入内存, 逻辑型
.局部变量 结果_读取内存, 字节集
.局部变量 结果_修改保护, 逻辑型
.局部变量 结果_释放内存, 逻辑型

' 第一步:安装驱动
结果_安装驱动 = Drv.驱动_安装驱动 (驱动授权密钥)
.如果 (结果_安装驱动)
    标准输出 (, "[ √ ] 驱动安装成功" + #换行符)
.否则
    标准输出 (, "[ × ] 驱动安装失败" + #换行符)
    标准输入 ()
    结束 ()
.如果结束

' 获取目标进程PID并绑定
ProcessID = 进程_名取ID (演示进程名)
.如果 (ProcessID ≠ 0)
    .如果 (Drv.初始化_设置进程 (ProcessID, 假))
        标准输出 (, "[ √ ] 设置进程成功 PID = " + 到文本 (ProcessID) + #换行符)
    .否则
        标准输出 (, "[ × ] 设置进程失败" + #换行符)
        标准输入 ()
        结束 ()
    .如果结束
.否则
    标准输出 (, "[ × ] 进程PID获取失败" + #换行符)
    标准输入 ()
    结束 ()
.如果结束

' 申请内存
结果_申请地址 = Drv.内存_申请内存 (0, 4096, 位或 (#MEM_COMMIT, #MEM_RESERVE), #PAGE_EXECUTE_READWRITE)
.如果 (结果_申请地址 ≠ 0)
    标准输出 (, "[ √ ] 申请内存成功 地址 = " + 十到十六 (结果_申请地址) + #换行符)
.否则
    标准输出 (, "[ × ] 申请内存失败" + #换行符)
    标准输入 ()
    结束 ()
.如果结束

' 内存读写操作...

' 释放内存
结果_释放内存 = Drv.内存_释放内存 (结果_申请地址, 4096, 位或 (#MEM_COMMIT, #MEM_RESERVE))
.如果 (结果_释放内存)
    标准输出 (, "[ √ ] 释放内存成功" + #换行符)
.否则
    标准输出 (, "[ × ] 释放内存失败" + #换行符)
    标准输入 ()
    结束 ()
.如果结束

标准输入 ()
结束 ()