JiYuTrainer:极域电子教室反控制系统深度解析与实战指南
JiYuTrainer:极域电子教室反控制系统深度解析与实战指南
【免费下载链接】JiYuTrainer极域电子教室防控制软件, StudenMain.exe 破解项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer
JiYuTrainer是一款针对极域电子教室(Mythware)控制系统的开源反制工具,通过创新的Windows内核驱动与用户态钩子技术,实现对教学控制软件的精准破解。该项目采用C++开发,集成了驱动层、钩子层、UI层和核心逻辑层四层架构,为系统管理员和开发者提供了深入理解Windows系统编程和反控制技术的绝佳案例。
技术挑战:极域电子教室控制机制分析
极域电子教室作为广泛应用的课堂管理软件,通过多层次技术实现对客户端电脑的全面控制。其核心技术挑战主要体现在以下四个方面:
进程保护与监控机制
StudentMain.exe作为极域客户端核心进程,采用驱动级保护技术防止被终止。该进程通过TDFileFilter.sys和TDNetFilter.sys等内核驱动实现文件系统过滤和网络监控,普通用户权限无法直接干预。
屏幕广播控制技术
教师端通过全屏广播技术完全接管学生端显示输出,窗口置顶、屏幕锁定等机制使得学生无法进行任何操作。这种技术基于Windows GDI和DirectX图形接口,对窗口消息进行深度拦截。
网络与设备访问限制
通过内核级过滤驱动限制USB设备访问和网络通信,防止学生绕过控制进行外部数据传输。这种驱动级限制使得传统应用层解决方案难以奏效。
反注入与自我保护
StudentMain.exe具备反DLL注入保护,监控进程内存空间异常,检测到外部注入尝试时会触发自我保护机制,甚至导致系统蓝屏。
创新架构:四层协同破解方案设计
JiYuTrainer采用模块化设计,通过四个层次协同工作,构建完整的反控制系统。
驱动层:内核级权限控制
驱动模块位于JiYuTrainerDriver目录,通过Windows内核驱动实现系统级操作权限。核心文件Driver.c实现了设备对象创建和IRP处理机制:
NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegPath) { // 创建设备对象 NTSTATUS ntStatus = IoCreateDevice( pDriverObject, 0, &DeviceObjectName, FILE_DEVICE_UNKNOWN, FILE_DEVICE_SECURE_OPEN, FALSE, &deviceObject); // 注册IRP处理函数 pDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = IOControlDispatch; // 初始化进程监控和保护 KxPsMonitorInit(); KxInitProtectProcess(); }驱动层提供的关键功能包括:
- 进程控制:通过内核API直接操作进程对象
- 文件过滤驱动卸载:移除极域的限制驱动
- 系统调用拦截:Hook关键SSDT函数防止监控
钩子层:API拦截与窗口控制
位于JiYuTrainerHooks目录的钩子模块基于mhook库实现,通过修改目标进程的导入地址表(IAT)实现API拦截:
// 窗口过程钩子实现 WNDPROC jiYuWndProc; WNDPROC jiYuTDDeskWndProc; list<HWND> jiYuWnds; // 关键API拦截点 MHOOK_TRAMPOLINE trampoline_CreateWindowExW; MHOOK_TRAMPOLINE trampoline_SetWindowPos; MHOOK_TRAMPOLINE trampoline_ShowWindow;钩子层主要拦截以下API:
- 窗口创建:CreateWindowExW,修改窗口样式和位置
- 窗口显示:ShowWindow,控制全屏广播显示状态
- 窗口定位:SetWindowPos,防止窗口置顶
- 消息处理:窗口过程钩子,过滤控制消息
用户界面层:现代化交互体验
JiYuTrainerUI采用Sciter引擎构建HTML/CSS/JavaScript界面,实现原生应用性能与Web开发灵活性的完美结合。界面设计遵循以下原则:
- 状态可视化:实时显示StudentMain.exe进程状态
- 一键操作:简化破解流程,降低使用门槛
- 配置管理:提供高级设置选项,支持自定义破解策略
如图显示,主界面采用绿色主题设计,中央状态指示器明确显示"已控制极域电子教室 已为您解锁极域电子教室"的状态信息,底部五个功能按钮提供完整的操作控制。
核心逻辑层:业务流程调度
TrainerWorker类作为业务核心,位于JiYuTrainer目录,负责协调各模块工作:
class TrainerWorker { public: virtual DWORD GetStudentMainPid() { return 0; } virtual bool KillProcess(DWORD pid, bool force){ return false; } virtual bool Rerun(bool autoWork = false) { return false; } virtual bool Inject() { return false; } };核心功能包括:
- 进程定位:遍历系统进程查找StudentMain.exe
- DLL注入:远程线程注入JiYuTrainerHooks.dll
- 状态管理:监控破解状态并更新UI
- 错误处理:异常恢复和重试机制
技术实现:关键功能深度解析
进程定位与监控机制
JiYuTrainer通过遍历系统进程列表精准定位目标进程,支持多种极域版本路径识别:
bool TrainerWorkerInternal::LocateStudentMain(DWORD *outFirstPid) { // 遍历进程查找StudentMain.exe if (p->ImageName.Length && StrEqual(p->ImageName.Buffer, L"StudentMain.exe")) { _StudentMainPid = (DWORD)p->ProcessId; return true; } }支持的路径包括:
- C:\Program Files\Mythware\极域课堂管理系统软件V6.0 2016 豪华版\
- C:\Program Files (x86)\Mythware\e-Learning Class\
- C:\e-Learning Class\
远程DLL注入技术
通过CreateRemoteThread和VirtualAllocEx实现安全注入:
bool TrainerWorkerInternal::InjectDll(DWORD pid, LPCWSTR dllPath) { // 打开目标进程 HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); // 在目标进程中分配内存 LPVOID pRemoteMemory = VirtualAllocEx(hProcess, NULL, wcslen(dllPath) * 2 + 2, MEM_COMMIT, PAGE_READWRITE); // 写入DLL路径 WriteProcessMemory(hProcess, pRemoteMemory, dllPath, wcslen(dllPath) * 2 + 2, NULL); // 创建远程线程执行LoadLibrary HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryW, pRemoteMemory, 0, NULL); }窗口控制与屏幕广播破解
通过API钩子技术将全屏广播转换为窗口模式:
// 拦截SetWindowPos函数 BOOL WINAPI Hooked_SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags) { // 检测极域广播窗口 if (IsJiYuBroadcastWindow(hWnd)) { // 修改窗口样式,取消全屏 uFlags &= ~SWP_NOSIZE; cx = 800; // 设置窗口大小 cy = 600; hWndInsertAfter = HWND_NOTOPMOST; // 取消置顶 } // 调用原始函数 return Original_SetWindowPos(hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags); }内核驱动通信机制
用户态程序通过DeviceIoControl与驱动层通信:
// 用户态调用驱动功能 bool SendControlToDriver(DWORD controlCode, LPVOID inputBuffer, DWORD inputSize) { HANDLE hDevice = CreateFile(L"\\\\.\\JKRK", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); DWORD bytesReturned; DeviceIoControl(hDevice, controlCode, inputBuffer, inputSize, NULL, 0, &bytesReturned, NULL); CloseHandle(hDevice); return true; }实践应用:三步实现极域电子教室破解
第一步:环境准备与驱动加载
在受限环境下运行JiYuTrainer需要先解除U盘访问限制:
如图显示,通过管理员权限的CMD执行以下命令:
sc stop TDFileFilter sc delete TDFileFilter这两个命令分别停止和删除极域的文件过滤驱动,解除U盘访问限制。对于网络限制,JiYuTrainer可自动卸载TDNetFilter.sys驱动,或使用PCHunter等工具手动卸载。
第二步:进程控制与DLL注入
运行JiYuTrainer.exe后,软件自动执行以下操作:
- 进程扫描:遍历系统进程,定位StudentMain.exe
- 驱动加载:加载JiYuTrainerDriver.sys内核驱动
- DLL注入:将JiYuTrainerHooks.dll注入目标进程
- API拦截:Hook关键Windows API函数
软件界面实时显示破解状态:
- 红色状态:未检测到极域进程
- 黄色状态:检测到进程但未破解
- 绿色状态:成功破解并解锁控制
第三步:功能验证与高级配置
破解成功后,用户可进行以下验证:
- 屏幕广播测试:教师端发起全屏广播时,学生端显示为窗口模式
- 控制权限测试:尝试鼠标键盘操作,确认不受限制
- 网络访问测试:验证网络连接正常
- 文件传输测试:确认U盘和网络文件传输功能
高级配置选项包括:
- 反监视模式:防止教师端屏幕监控
- 防控制模式:阻止远程控制命令
- 进程保护:防止StudentMain.exe被重新启动
- 自定义窗口大小:调整广播窗口尺寸
技术亮点与创新价值
零依赖绿色部署
JiYuTrainer采用MemoryModule技术在内存中加载依赖DLL,无需安装运行库:
// 内存模块加载实现 HMEMORYMODULE hModule = MemoryLoadLibrary(data, size); if (hModule) { // 获取导出函数 FARPROC proc = MemoryGetProcAddress(hModule, "ExportFunction"); // 执行功能 proc(); }这种技术使得软件可以打包为单个可执行文件,简化部署过程。
智能进程识别与保护
软件支持多种极域版本自动识别,并采用进程PID过滤机制防止误操作:
bool TrainerWorkerInternal::CheckPidFilterd(DWORD pid) { // 检查PID是否在过滤列表中 for (auto& item : incorrectStudentMainPids) { if (item.pid == pid) return item.checked; } return false; }安全退出与清理机制
程序退出时自动卸载注入的DLL,恢复系统原状:
bool TrainerWorkerInternal::UnInject() { if (_StudentMainPid > 4) return UnInjectDll(_StudentMainPid, L"JiYuTrainerHooks.dll"); return true; }编译构建与二次开发指南
开发环境要求
- 开发工具:Visual Studio 2019(推荐)
- Windows SDK:Windows 10 SDK或更高版本
- WDK:Windows Driver Kit 8或更高版本(驱动编译)
- 平台:x86架构(兼容32位系统)
项目结构解析
JiYuTrainer/ ├── JiYuTrainer/ # 主程序核心逻辑 ├── JiYuTrainerDriver/ # 内核驱动模块 ├── JiYuTrainerHooks/ # API钩子模块 ├── JiYuTrainerUI/ # 用户界面模块 └── JiYuTrainerUpdater/ # 自动更新模块构建步骤详解
- 解决方案配置:使用VS2019打开JiYuTrainer.sln
- 平台选择:设置为Release x86配置
- 生成顺序:先编译主程序,驱动模块已有预编译版本
- 输出文件:在Release目录获取JiYuTrainer.exe
第三方库集成
项目集成了多个优秀开源库:
- mhook:API钩子实现,位于JiYuTrainerHooks/mhook-lib/
- curl:网络通信功能,用于自动更新
- MemoryModule:内存模块加载技术
- XZip-XUnZip:压缩解压缩功能
常见问题排查与解决方案
问题一:杀毒软件误报
由于JiYuTrainer涉及进程注入和驱动加载,部分杀毒软件可能误报为病毒。
解决方案:
- 将JiYuTrainer.exe添加到杀毒软件白名单
- 使用Windows Defender排除项功能
- 临时关闭实时防护功能
问题二:驱动加载失败
在部分系统上可能遇到驱动签名问题导致加载失败。
解决方案:
- 开启测试模式:
bcdedit /set testsigning on - 重启系统进入测试模式
- 使用签名工具对驱动进行签名
问题三:注入失败
StudentMain.exe可能具备反注入保护机制。
解决方案:
- 确保以管理员权限运行
- 尝试先终止StudentMain.exe再重新启动
- 使用Process Explorer检查进程保护状态
问题四:窗口控制失效
某些极域版本可能使用不同的窗口类名。
解决方案:
- 更新JiYuTrainerHooks.cpp中的窗口检测逻辑
- 使用Spy++工具分析极域窗口属性
- 调整窗口钩子过滤条件
扩展开发与定制化指南
添加新的API钩子
在JiYuTrainerHooks.cpp中添加新的钩子函数:
// 1. 声明原始函数指针 typedef BOOL (WINAPI *Original_FunctionType)(/*参数*/); Original_FunctionType Original_Function = NULL; // 2. 实现钩子函数 BOOL WINAPI Hooked_Function(/*参数*/) { // 自定义处理逻辑 if (/*条件判断*/) { // 修改行为 } // 调用原始函数 return Original_Function(/*参数*/); } // 3. 安装钩子 void InstallHook() { Original_Function = (Original_FunctionType) GetProcAddress(GetModuleHandle(L"user32.dll"), "FunctionName"); Mhook_SetHook((PVOID*)&Original_Function, Hooked_Function); }自定义UI界面
修改JiYuTrainerUI目录中的HTML/CSS文件:
<!-- MainWindow.html示例 --> <div class="status-panel"> <div class="status-icon">case CTL_NEW_FUNCTION: { // 解析输入参数 NEW_FUNCTION_PARAM* param = (NEW_FUNCTION_PARAM*)InputData; // 实现新功能逻辑 Status = ImplementNewFunction(param); // 返回结果 _memcpy(OutputData, &result, sizeof(result)); Informaiton = OutputDataLength; break; }技术伦理与合规使用建议
作为技术研究工具,JiYuTrainer的使用应遵循以下原则:
- 教育目的:仅限于教学环境中的技术学习和研究
- 合法授权:在获得授权的测试环境中使用
- 尊重版权:遵守软件许可协议和相关法律法规
- 技术交流:用于Windows系统编程技术交流和学习
总结与展望
JiYuTrainer项目展示了Windows系统编程的多个关键技术领域:
技术价值总结
- 内核驱动开发:通过WDK实现系统级控制功能
- 用户态钩子技术:基于mhook的API拦截与修改
- 进程间通信:用户态与内核态的高效数据交换
- 远程线程注入:安全稳定的DLL注入技术
- 混合界面开发:Sciter引擎的现代化UI实现
学习意义
对于Windows系统开发者,JiYuTrainer提供了以下学习价值:
- 深入理解Windows内核机制
- 掌握驱动开发与通信技术
- 学习进程注入与保护策略
- 实践API钩子与拦截技术
- 了解反监控与反控制原理
未来发展方向
项目可在以下方向继续完善:
- 支持更多版本:扩展对极域新版本的支持
- 增强兼容性:优化对不同Windows版本的兼容
- 改进UI体验:提供更丰富的配置选项
- 开源社区:建立更完善的开发文档和社区支持
通过研究JiYuTrainer的源代码,开发者可以深入掌握Windows系统底层编程技术,为开发类似系统工具提供宝贵的技术参考和实践经验。项目采用MIT开源协议,鼓励技术学习和二次开发,为Windows系统安全领域贡献了重要的技术案例。
【免费下载链接】JiYuTrainer极域电子教室防控制软件, StudenMain.exe 破解项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
