基于SIM的vjudge比赛反抄袭工具
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
vjac
.gitignore
LICENSE
README.md

README.md

VJudge-Anti-Cheating

基于SIM的vjudge比赛反抄袭工具,使用C#+dotnet core 2.1编写

原理和行为:使用百度搜索并下载标称,使用SIM工具比较选手程序与标称

编译

  1. 下载并安装.NET Core SDK(Windows,Linux,macOS)
  2. Windows用户可以下载SIM工具并添加到Path,Ubuntu用户可以sudo apt install similarity_tester,其他发行版用户可以自行编译SIM
git clone https://github.com/Duanyll/VJudge-Anti-Cheating
cd VJudge-Anti-Cheating/vjac
dotnet build

运行

命令行参数选项:

参数(*可选) 作用
contest 指定比赛编号
scan_timeout* 两次扫描新提交记录之间间隔多少毫秒,建议不少于30000
action* start(默认选项搜索标称并开始检查)或者clean(清除比赛数据)
similarity_limit* 应该将与标称相似度高于百分之多少视为作弊,默认60
ga* VJudge的一项cookie,默认是GA1.2.905820731.1539859305,可不指定
jaxq VJudge的一项cookie,若不在命令行中指定可以保存在vjac/cookie文件中,该文件优先级更高
sessionid VJudge的一项cookie,可不指定

使用时必须使用VJudge比赛创建者账号,通过Jax.Qcookie登录。检查结果保存在比赛编号/result.md

命令行参数示例:

dotnet run contest=123456 scan_timeout=60000 jaxq=admin|XXXXXXXX

已知问题

  1. 小概率重复的检查结果
  2. 小概率VJudge无法一次性登陆成功,显示发现0道题目