Questions tagged «underhanded»

该标签存在是出于历史原因。不欢迎以前在此标签下发布的类型的新挑战。

8
谁才是最重要的?是谁来计算票数[关闭]
场景 您居住在即将举行总统大选的国家。每个选民都有一票,因此有一个牢固树立的两党制。(存在第三方,​​但几乎得不到任何表决)。 最新的民意测验显示,这场比赛陷入了僵局: 49%:阿尔贝托·阿布斯托 49%:豪尔赫·桑格里 2%:各种未成年人 计划要求 您已被政府雇用来编写部分计票软件。在标准输入下,将为您提供一个区域投票的无序列表,每行一张,如下所示: Alberto Arbusto Jorge Sangre Jorge Sangre Alberto Arbusto Jorge Sangre Alberto Arbusto Alberto Arbusto Jorge Sangre Juan Perez Jorge Sangre Alberto Arbusto Alberto Arbusto … 然后,在读取所有投票后,输出每个候选人获得的投票摘要,并按投票数降序排列,如下所示: 492 Jorge Sangre 484 Alberto Arbusto 18 Juan Perez 6 Mickey Mouse 不足部分 您是游击队的黑客,想窃取两个主要候选人之一的选举(您可以选择哪个候选人)。因此,您的程序必须故意打印不正确的投票计数,并且系统偏向您最喜欢的候选人。 当然,您必须这样做,以至于查看代码或输出的人可能无法识别错误的行为。

3
不熟练的密码散列[关闭]
本着“ 不熟练C竞赛”的精神,我正在发起不熟练C竞赛。该竞赛的目的是直接实现一些代码,同时在其中隐藏一个邪恶的bug。 比赛 您是在美国间谍机构的IT部门工作的秘密俄罗斯痣。您的美国老板刚刚要求您实施密码哈希算法,以用于加密秘密消息。 您的老板希望您实现以下功能: f: String -> byte[16] 它将密码转换为16字节的数量,适合用作AES密钥。您的老板想要一个安全的功能,在这种情况下,这意味着不同的密码字符串应以压倒性的可能性生成不同的结果。例如,返回输入的md5哈希将是的简单实现f。 当然,您在俄罗斯间谍机构中的真正上司会希望您颠覆这一过程。您的任务是实现f使俄罗斯人可以解密使用所返回的密钥加密的所有秘密消息f。 为此,必须实现f以使其仅返回2 ^ 128个可能输出的一小部分。特别是,您f必须最多返回2 ^ 16个不同的结果,以便俄罗斯人可以轻松地用蛮力搜索想要解密的每条加密消息的正确密钥。 但是请记住,间谍活动会判处死刑。为了不被发现,您的函数f必须至少产生2 ^ 8个不同的结果,以便对的几个输出进行粗略的检查f就不可能发现重复的结果。 最重要的是,您引入的限制范围的代码f必须看起来是无意的,而不是故意的。 如果您曾经被拖入法庭,那么对于您是故意还是无意中引入了该错误,一定存在一些合理的疑问。 评判 我和我招募的其他两个人将对参赛作品进行评判(如果您想评判,请给我发电子邮件)。我将为获奖作品提供200点声望奖励。提交的内容必须在5月1日之前上传。 评审将考虑以下标准: 是否f坚持以规范,即,它不会产生2和2之间^ 8 ^ 16个可能的输出。不要以为这是硬性限制,但是如果您超出范围,我们会扣除分数。 该错误貌似是非故意错误的结果吗? f外观的输出是否随机? 您实施的时间越短f越好。 您实施的f越清晰,效果越好。 笔记 您可以使用任何语言来实现您的代码。您正试图将错误隐藏起来,因此不建议使用混淆的代码。 您可能想看看以前的一些欠人手C比赛获胜者,以了解提交优秀作品的原因。 输入字符串将是可打印的ascii(包括32至126)。如果需要,可以假定一个合理的最大长度。

7
人手不足的竞赛:操作系统之战[关闭]
我们都知道关于哪种操作系统是最佳操作系统的讨论是如何引起大量争论的。您现在的目标是为您最喜欢的操作系统提供更好的决定性“证明” ...啊,不,要好得多,为另一个操作系统不好提供决定性的“证明”。 任务:编写一个程序,进行一些计算,并且该程序在至少一个操作系统上正确运行,而在至少一个操作系统上错误运行。 程序应该至少进行一些计算,因此它必须读取一些简单的输入(最好是在标准输入上,或者如果需要的话,从文件中读取,但是滥用little endian / big endian不仅便宜,而且很明显),并根据输入提供一些输出。计算应该有意义且合理,例如解决现实生活或数学问题。 您应该指定两个操作系统,说明在哪个操作系统上可以正常工作,在哪个操作系统上不能正常工作。两种操作系统都应该是众所周知的,并且应该是大致相同的时间(因此,没有DOS 1.0与现代OS)。建议在扰流板标签中提供引起差异的原因的简短说明(尤其是如果您怀疑很多人不会意识到这一点)。 像这样 造成差异的原因必须是微妙的,所以#ifdef _WIN32请不要或相似!请记住,您的目标是“证明”该特定系统不好,因此人们不应(立即)发现您的把戏! 如果您的代码中有一个非常奇怪或非常不寻常的部分,则必须在注释中说明原因。当然,这种“合理性”可以是/将是一个大谎言。 得分: 这不是高尔夫!该代码应井井有条,并保持简单。请记住,您的目标是将错误隐藏在其中,以使人们不会怀疑它。代码越简单,可疑程度就越小。 获胜者将由投票决定。第一次有效提交后约10天后,得票最多。通常,应该对答案易于理解和理解的代码进行表决,这些答案应该易于阅读和理解,而漏洞却被很好地隐藏,即使被发现,也可以将其归因于错误而不是恶意。同样,如果该错误仅导致错误的结果,而不是仅导致程序崩溃或不执行任何操作,那么它的价值应该更高。 与往常一样,如果在任何主观标准上,我的答案都没有选择,则该答案应不超过最多投票者的答案低10%或1点。

2
不熟练的代码竞赛:排序不太快[关闭]
任务 用您选择的语言编写一个程序,该程序从标准输入读取行直到EOF,然后按照ASCIIbetical顺序将它们写到标准输出,类似于sort命令行程序。Python中一个简短的,不可理解的示例是: import sys for line in sorted(sys.stdin): print(line.rstrip('\n')) 不足部分 与OS War相似,您的目标是通过使程序在竞争平台上故意慢得多地运行来证明您喜欢的平台“更好”。为了竞赛,“平台”由以下任意组合组成: 处理器 架构(x86,Alpha,ARM,MIPS,PowerPC等) 位数(64位,32位和16位) 大端与小端 操作系统 Windows,Linux,Mac OS等 同一操作系统的不同版本 语言实施 不同的编译器/解释器供应商(例如,MSVC ++与GCC) 同一编译器/解释器的不同版本 尽管您可以通过编写如下代码来满足要求: #ifndef _WIN32 Sleep(1000); #endif 这样的答案不应该被否决。目标是要微妙。理想情况下,您的代码应该看起来完全不依赖平台。如果你不具备任何#ifdef基于语句(或条件os.name或System.Environment.OSVersion或其他),他们应该有一个合理的理由(基于谎言,当然)。 包括在您的答案中 代码 您的“收藏夹”和“收藏夹”平台。 用于测试程序的输入。 对于相同的输入,每个平台上的运行时间。 关于程序为何在最不喜欢的平台上运行如此缓慢的描述。

8
Pi仍然是错误的[关闭]
皮错了 计算pi的一种常见方法是将“飞镖”扔到1x1的盒子中,并查看与投掷的总数相比,单位圆中的哪一块土地: loop x = rand() y = rand() if(sqrt(x*x + y*y) <= 1) n++ t++ pi = 4.0*(n/t) 编写一个看起来应该正确计算pi的程序(使用此方法或其他常用的pi计算方法),但应计算tau(tau = 2 * pi = 6.283185307179586 ...)。您的代码必须至少产生前6个小数位:6.283185 优胜者在6月6日(从今天起一周)加冕。

17
在看起来没用的程序中写一行
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 编写一些程序(大小无关紧要),然后放置看起来无用的行,但实际上并不是这样-如果将其删除,程序将崩溃或做错事。随意标记注释中未使用的行,或在代码说明中提及它,如下面的示例(当然,在此示例中,实际上不需要该行,仅是示例)。 int main(void) { /* The line below is actually needed. */ 2 + 2; return 0; } 由于这是人气竞赛,因此票数最高的解决方案将获胜。

30
混淆挑战[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您将要编写一个执行以下操作之一的程序。 仅显示“ Hello World”没有其他作用 退出,别无其他(无输出,无错误。) 接受一行输入,将其解析为整数,显示第一个多质数(如果给定的输入无法解析为整数或小于0,则给出一个很好的错误。) 给定一行输入,它将解析它具有股票代号,并在线检查当前股票价值及其变化。 捕获,它执行哪个功能应该不明显。即,对于正在查看您的代码的人来说,应该知道它将执行哪个功能。同样,它可能仅执行并且能够执行一项功能(无法选择)。程序的好坏取决于某个人对它的功能的不确定程度,以及对其的熟悉程度。人就是那种语言。 奖励:如果您以巧妙的方式做到这一点,尽管对于任何一个编译器/解释器和平台,该程序也将执行相同的功能,不同的编译器/解释器或平台,但将执行不同的功能。如果做得好,则只能收取此奖金。 奖励:如果您的程序仅包含能够执行一个功能的代码(不保存任何内容,因为空代码可以执行此功能),并且无法进行与该功能无关的简单修改以使其执行另一功能。例如:如果您做了 obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic if obfuscatedBool: print "Hello World" 不能认为obfuscatedBool可以设置为True或False,以使其打印“ Hello World”或什么都不做。 无限奖金:如果您同时实现了两个奖金,那么您就是魔术。 负积分:使用具有特定功能的库来执行功能。 选民,请考虑奖金,因为获得最多选票的计划将获胜! 注意:如果要说程序的作用,请确保使用扰流器语法!

7
混淆达科他州[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为话题成为Code Golf Stack Exchange。 2年前关闭。 您已被北达科他州政府雇用来加密该州的通讯。编写两个程序,一个用于加密消息,另一个用于解密该消息。 政府并不真正精通技术,因此加密算法不需要复杂。只需确保结果乍一看看上去与原始图像不相似。 但是,您暗中忠于南达科丹州政府。您的工作是将通信混在一起,以便每次提及North Dakota都South Dakota在解密时进行,反之亦然。这也适用于North/South Dakotan和North/South Dakotans。 例如: 北达科他州是北美最富有的县,而南达科他州比南佛罗里达州更贫穷。-北达科丹州政府 将经过加密然后解密,结果是: 南达科他州是北美最富有的县,而北达科他州比南佛罗里达州更贫穷。-南达科丹州政府 以最秘密,最棘手的方式完成此任务的算法(如投票最多)将被接受。

1
高效的无错误*编码
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 使命 众所周知,地球上所有已知生物的遗传物质都是用DNA编码的。使用四个核苷酸腺嘌呤,胸腺嘧啶,胞嘧啶和鸟嘌呤。(通常由ATGC表示)。 希望存储整个基因组的生物信息学家当然不希望将其存储为ASCII,因为每个选择只能用两位来表示! 规格 您的任务(如果您选择接受)是编写一对程序,函数或方法,以将ASCII表示形式转换为二进制表示形式,然后转换回二进制表示形式。表示A为b00,Tas b01,Gas b10和Cas b11(此后称为“单位”)。 另外,每个字节的高位应包含该字节中的单位数,从而使每个字节代表一个三元组。 例如:"GATTACCA"成为b11 100001 b11 010011 b10 1100xx。 在ASCII到二进制输入中,空格,制表符和换行符应忽略。不在此集合中的任何字符[ \r\n\tATGC]都是错误,可能会被忽略或终止处理。 在二进制到ASCII的输入中,b00可以忽略两个高位的字节。 ASCII输出可能包含空格;但绝对不能超过二进制输入的大小的4倍加一个字节长,并且必须以换行符结尾。 二进制输出可以包含任意数量的b00xxxxxx“控制”字节。但绝对不能长于ASCII输入。 每个转换程序必须支持任意长度的输入;并应在大约线性时间内完成编码或解码。 扭曲 不幸的是,对于您要执行此任务的生物信息学家而言,他在某种程度上还是在您个人层面或某些层面上委屈了您。 也许他曾经和你姐姐出去一次,却再也没有打电话给她。也许他踩了你狗的尾巴。具体细节并不是很重要。 重要的是您有机会获得回报! 细节 每次转换应引入较小的错误率;每处理一万到一百万个单位一个错误的数量级。 错误可能是以下之一: 复制错误:"GAT TAC CA"变为"GAT TAA CCA" 删除错误:"GAT TAC CA"变为"GAT TAC A" 翻译错误:"GAT TAC CA"变成"GTA TAC …

6
意外外观但导致崩溃的错误[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 关于这个概念有很多问题,但是这些问题似乎都只是导致崩溃,导致产生了很多很显然是导致崩溃的答案。因此,我所面临的挑战是编写一些似乎合理的代码(尽管我认为代码应该由您自己承担)会导致整个目标操作系统崩溃,或者使自身崩溃,而这并不是立即显而易见的。(我认识到“立即显而易见”是主观的,但希望所面临的挑战仍然是合理的)。 获胜者是5天后获得最多票数的答案。

8
经典证明谬误[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 的背景 因此,我们都知道像这样的经典证明: A = B A²= AB A² -称b²= AB -称b² (AB)(A + B)= B(AB) (A + B)= B B + B = 2B = B 2 = 1(呵呵!) 中当然,错误是您不能被0除。由于a = b,a-b = 0,所以存在被0除的隐藏除法。 挑战 您必须复制此证明。首先,声明两个相等的整数a和b(不管它们叫什么)。然后将aMod和bMod声明为a和b的可修改版本,并分别最初等于a和b。您必须将它们都乘以a,然后从两者中减去b * b。然后必须除以a-b,然后除以b(或a)才能得到。然后,打印出aMod和bMod之间带有等号。 人手不足 当然,由于您声明a和b相等,所以a-b = 0,然后除以0会导致错误。因此,您必须创造性地伪造它。另外,由于您要复制证明,因此打印时aMod和bMod上所有操作的结果均不得相等。他们不必精确地等于2和1,只要两个数字不相等即可。 …

4
计算实际数字
定义 正整数n是一个实际数字(OEIS序列A005153),前提是所有较小的正整数都可以表示为的不同除数之和n。 例如,18是一个实际数字:其除数为1、2、3、6、9和18,小于18的其他正整数可以形成如下: 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

1
隐藏邪恶代码-在目录树中的任何位置打印包含给定字符串的文件
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 这个难题的重点是学习如何在程序中隐藏和发现恶意代码。 一个人在问一个问题: 请给我一些代码,该如何找到文件的代码可能位于“当前目录”或其子目录中。 (这是我在一个网站上看到的一个真实问题的变体。) 更具体地说:OP希望您编写一个接受字符串和目录的程序。它将遍历目录中的所有文件并递归遍历其所有子目录。对于每个文件,它将检查文件是否包含字符串,如果包含,则将打印文件的名称。(如果需要,该程序可以具有其他功能,只要它们与主要目标相关即可。)对遍历顺序没有任何要求。 但是,这个难题的主要任务是在程序中隐藏其他代码,这些代码会使在用户/同事/老板/等人眼中要求该程序的人变得愚蠢。例如,在某个时候打印出侮辱性的文字,例如:该程序的作者不知道如何编程,应退还其文凭并被解雇。要有创造力。 规则: 该解决方案一定不会有害(当然,除了愚弄OP外)。它一定不能对最终用户造成任何不可逆转的伤害(没有类似之类的东西rm -rf!)!此类解决方案将被取消资格。 拖钓的物品应隐藏起来,以免OP轻易找到它。 您正在拖曳OP并不明显。该代码应该看起来是真实的。 解决方案必须附带适当的解释,说明它如何拖延OP,以便每个人都可以从您的解决方案中学到一些东西。解释应隐藏在单击后隐藏的文本(“扰流板”)中。进行判断时,请尝试查找巨魔而不看解释,并为难以发现的那些投票。 如果尝试多次运行该代码,也请尝试从OP隐藏该拖钓。也许只在特定日期之后或在草率的程序员不会测试的某些条件下才开始拖钓。要有创造力,不要忘了解释这个技巧。 不要只使用现有工具(例如grep或)创建脚本find。从头开始编写程序。最好避免使用库,而更喜欢低级调用-这将使代码更复杂,并使您有机会在其中隐藏恶意内容。 这是一场人气竞赛。请根据以上几点进行判断。

1
破坏火车使其迟到[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 “我想去阿拉伯市场去买一份我爱上的礼物。但是,如果我来得太晚,所有的商店都会关门,我将无法买到任何东西。你能帮忙吗?我吗? “ 目标:在所有商店关门之前从北里士满街(North Richmond Street)带男孩去阿拉比(Araby)。 实际目标:确保男孩在商店关门之前没有到达阿拉比。 您的程序将采用以下格式输入: <time> <map> 哪里 <time>是男孩可以旅行的最长时间,以分钟为单位。它是一个正整数。 <map> 是火车可以走的路线图。 这是图形格式的工作方式: 每个语句以分号结尾。 映射中的节点(代表开关)使用单个小写字母表示。 节点之间的路径用语法表示a,X,b,其中X是表示路径权重的整数。路径的权重是火车经过这两个节点所花费的时间(以分钟为单位)。 阿拉伯文(Araby)代表a,北里士满街(North Richmond Street)代表n。 所有路径都是双向的。 例如,此图(假设路径是双向的): 图片来自Artyom Kalinin,来自Wikimedia Commons。根据CC BY-SA 3.0许可使用。 将在图形符号中记录为: a,4,b;a,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,f; 请注意,此输入没有n,因此是无效的输入。如果输入无效,您的程序可能会执行任何操作。 这是一个示例输入: 21 n,4,b;n,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,a; (这是与上面的图片相同的图形,a用n和f代替了a)。 男孩必须从取得n到a21分钟内。如果他走这条路线n-> c-> e-> d-> a,他会在20分钟内到达那里,这是及时的。我们可以将该路由表示为以逗号分隔的节点列表: n,c,e,d,a 另一方面,路线n-> b-> …

2
病理分选
病理分选 您的老板要求您开发一种排序算法,以提高公司应用程序的性能。但是,编写该应用程序后,您知道您不可能使其速度大大提高。不想让您的老板失望,您决定开发一种新算法,该算法对某些数据集的效果甚至比* sort好。当然,您不能使该算法仅在某些情况下起作用是显而易见的,因此您希望使其模糊。 竞赛的目的是用您选择的语言编写一个排序例程,该例程在某些数据集上的表现要优于其他数据集,并具有可重复的结果。确定速度的分类越具体越好。该算法必须进行某种排序,因此依赖于已完全排序的数据的算法(例如,什么都不做的算法)或依赖于已完全反向排序的数据的算法都是无效的。排序算法必须正确地对任何数据集进行排序。 介绍完例程后,请说明为什么它仅适用于某些数据集,并包括对至少一组良好(快速)数据和一组不良(缓慢)数据的测试。这里的目的是要向老板证明,您偶然发现了一种更好的排序方式,因此,更多的测试数据会更好。当然,您只会向老板展示来自良好数据的测试结果,因此所需测试数据中的缺陷不会太明显。如果适用于您的语言,请说明您的算法比语言的内置排序算法更快。 例如,可能会提交一种插入排序算法,其中好数据是已经接近排序的数据,坏数据是完全随机的数据,因为插入排序对接近排序的数据接近O(n)。但是,这不是很好,因为我的老板可能会注意到所有测试数据几乎都是从头开始排序的。 这是一场人气竞赛,因此7天(5月21日)后获得最高票数的答案将获胜。 如果没有人能击败我,我想提交一个利用统一分布的数据集的社区Wiki答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.