技术挑战大赛腾讯极客挑战赛第二期:最小的输出自身MD5值的程序
开始
12020/11/1317:00报名
211/13~11/2617:0017:00比赛
311/13~11/2617:0017:00结束
42020/11/2617:00
本次的题目非常简单,它“几乎”就是一个Hello World! 没错,你只需要简单的打印自身的MD5就可以了,如果你的输出和md5sum的计算结果一致,那么就可以正确通过评测。
请直接提交你的二进制程序参加比赛,最终我们将按照程序的大小进行排名,程序越小的排名越靠前。如果大小一致,则先提交的排前面。
输出一行,内容为自身的MD5,请用小写十六进制表示。
1.可以提交处理器体系架构为x86-64、arm64或者mips64el的程序,x86-64程序的运行环境是ubuntu,内核是Tkernel 3.10,arm64和mips64el的是debian,内核版本4.19,无网络环境。你可选择其中一个赛道参加,也可以三个赛道均参与。 2.内存限制:64MB, 运行时间限制:1秒。 3.fork, execve 等系统调用已经屏蔽,运行环境中也不存在其他bin程序可调用,因此不要尝试通过调用其他程序实现。 4.动态库仅有几个最基本的库(ld-linux-x86-64.so.2, libc.so.6, libdl.so.2, libgcc_s.so.1, libm.so.6, libstdc++.so.6,或者在arm64平台、mips64el平台中对应的动态链接库),如果依赖其他库函数,请静态链接。 5.请注意程序提交后会随机命名。
1.基于公平性考虑,我们统一只允许上传64位的ELF可执行程序,不能是脚本,也不能是32位程序。 2.请从标准输出打印数据,并且正常退出程序(退出码必须为0)。 3.比赛的分数就是程序大小,分数越小排名越靠前,多次提交以最好成绩为准。 4.上传的程序大小不能超过10MB。 5.本次比赛过程中仅显示排名,分数保密。比赛结束后再公布大家的具体分数与程序。 6.独立完成,请勿抄袭,赛后将进行代码相似性比较(与DEMO代码相似除外)。 7.比赛结束前请不要讨论和分享有关解题思路的内容。 8.运行环境中/proc不可用,请用argv[0]来取代/proc/self/exe来获取自身路径。
9.程序会在chroot之后以一个低权限用户的身份执行,并且使用了系统调用白名单(seccomp)来限制程序的能力以确保安全性和公平性。直接或意外调用白名单外的系统调用是导致“运行时错误”的常见原因之一。此外还限制了程序能够获取的资源(setrlimit),比如内存大小和输出大小,请根据需要合理使用各类资源。
登录后,你可以直接提交程序。提交后,可以在“提交记录”中查看自己的提交结果。倘若正确显示了分数,那么恭喜你,说明评测通过。否则会显示具体的不通过原因,一般以下几种原因是比较常见的: "结果错误(Wrong Answer)","内存使用超限(Memory Limit Exceeded)","运行时间超限(Time Limit Exceeded)","运行时错误(Runtime err)","程序无法启动","退出码不为0","程序无法启动:缺少动态库"。
如果你发现本赛事平台存在安全漏洞,欢迎反馈给赛事管理员,经评估属实我们将向你送出礼品一份。在漏洞修复之前,请勿利用或传播,否则我们将保留追究权利。