James Hoi's Blog

绕过某监考客户端检测

Word count: 546Reading time: 1 min
2022/06/30 Share

现在的开发人员安全意识还是薄弱,用c#写的还就加了一点点混淆。本文章分两部分,一是开启软件时的校验,二是绕过软件检测系统。重点强调!!!本文章只限于交流逆向技术用途,不提供成品下载!!

文件校验

在加载的时候按暂停,很容易能找到检查软件版本的位置

image-20220630012927916

很明显是验证版本

image-20220630013849100

跟下去之后很容易找到校验位置,应该是一个任务组,运行其中一个任务

image-20220630014033290

一直跟下去,能找到这个线程组的线程函数,可以看到有校验的函数。补充一句,软件是若校验本地exe和dll与校验码不一致则重新下载

image-20220630015841487

这里不再阐述如何修改,直接修改c# IL为Nop即可,上图最后有个needRestart,意思是更新软件重启,可见需要直接return,满足那个if条件。

image-20220630015943782

修改后变这样,用dnspy保存即可

image-20220630020159471

检测系统

当开着有通讯软件时会报错,显示要求关闭,甚至会发现是虚拟机,远程桌面等。

image-20220630020422779

image-20220630020552928

当显示提示的时候dnspy点暂停,很容易能找到相关位置

image-20220630020805763

都叫monitorSystem了,明显A是检测函数,nop掉即可

image-20220630021037756

继续分析

前面两部分其实已经够了,这里再分析一下流程,先获取了学生信息,videoMnager打开摄像头,连接一个鼠标按下的event

image-20220630025253191

下图a函数应该是截图,查看电脑当前屏幕,有机会上传,另外那个B函数有机会是上传系统环境进程,这里调试不了,可能需要实际考试产能进入这个函数。

image-20220630034935539

结果

可以看到打开qq,甚至是虚拟机的情况下都能正常运行。这里没有继续分析监考客户端是否有其他监控过程,所以就算你一意孤行打算作弊,也请你也自行斟酌带来的风险和后果。有时间研究逆向破解监考客户端,不如多花些时间学习!

image-20220630021423710

image-20220630035357799

CATALOG
  1. 1. 文件校验
  2. 2. 检测系统
  3. 3. 继续分析
  4. 4. 结果