绕过某监考客户端检测
本帖最后由 JamesHoi 于 2022-7-5 03:41 编辑【文章首发于我的博客[文章](https://jameshoi.github.io/2022/06/30/invigilate/)】
# 绕过某监考客户端检测
现在的开发人员安全意识还是薄弱,用c#写的还就加了一点点混淆。本文章分两部分,一是开启软件时的校验,二是绕过软件检测系统。**重点强调!!!本文章只限于交流逆向技术用途,请不要利用本文章做违反学校条例行为!!**
## 文件校验
在加载的时候按暂停,很容易能找到检查软件版本的位置
很明显是验证版本
跟下去之后很容易找到校验位置,应该是一个任务组,运行其中一个任务
一直跟下去,能找到这个线程组的线程函数,可以看到有校验的函数。补充一句,软件是若校验本地exe和dll与校验码不一致则重新下载
这里不再阐述如何修改,直接修改c# IL为Nop即可,上图最后有个needRestart,意思是更新软件重启,可见需要直接return,满足那个if条件。
修改后变这样,用dnspy保存即可
## 检测系统
当开着有通讯软件时会报错,显示要求关闭,甚至会发现是虚拟机,远程桌面等。
当显示提示的时候dnspy点暂停,很容易能找到相关位置
都叫monitorSystem了,明显A是检测函数,nop掉即可
## 继续分析
前面两部分其实已经够了,这里再分析一下流程,先获取了学生信息,videoMnager打开摄像头,连接一个鼠标按下的event
下图a函数应该是截图,查看电脑当前屏幕,有机会上传,另外那个B函数有机会是上传系统环境进程,这里调试不了,可能需要实际考试才能进入这个函数。
## 结果
可以看到打开qq,甚至是虚拟机的情况下都能正常运行。这里没有继续分析监考客户端是否有其他监控过程,所以就算你一意孤行打算作弊,也请你也自行斟酌带来的风险和后果。有时间研究逆向破解监考客户端,不如多花些时间学习!
我去年买了各表 发表于 2022-7-5 13:28
我想请问下你monitorSystem是哪里看到的? 在信息框暂停后那张图片里面没看见有monitorSystem啊
信息框暂停后一直跳出就到monitorSystem.A函数的调用地方了 这不是oms监考吗 观建不知道这个是什么东西来着! 我的原则是,能破坏的就先破坏掉 最后一张图马赛克没打上,导致你上一张图马赛克等于没打 无止境的学啊 无止境的学啊 可以啊!写的挺好{:301_997:} 本帖最后由 JamesHoi 于 2022-7-5 03:43 编辑
cyxnzb 发表于 2022-7-4 21:59
最后一张图马赛克没打上,导致你上一张图马赛克等于没打
确实,疏忽了 看来还得加强