技术挑战大赛腾讯极客挑战赛第二期:最小的输出自身MD5值的程序

主办方:腾讯安全平台部
  • 开始

    1
    2020/11/13
    17:00
  • 报名

    2
    11/13~11/26
    17:0017:00
  • 比赛

    3
    11/13~11/26
    17:0017:00
  • 结束

    4
    2020/11/26
    17: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","程序无法启动:缺少动态库"。

如果你发现本赛事平台存在安全漏洞,欢迎反馈给赛事管理员,经评估属实我们将向你送出礼品一份。在漏洞修复之前,请勿利用或传播,否则我们将保留追究权利。

扫码关注腾讯云开发者

领取腾讯云代金券