题目名字叫做开源,然而二者之间并没有什么关系…
一个很简答的C程序题,让你跳过所有的限制条件即可输出key(flag)。
open-source如下:
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { if (
argc!= 4) { printf("what?\n"); exit(1); } unsigned int first = atoi(argv[1]); if
(first != 0xcafe) { printf("you are wrong, sorry.\n"); exit(2); } unsigned int
second= atoi(argv[2]); if (second % 5 == 3 || second % 17 != 8) { printf("ha,
you won't get it!\n"); exit(3);//25 } if (strcmp("h4cky0u", argv[3])) { printf(
"so close, dude!\n"); exit(4); } printf("Brr wrrr grr\n"); unsigned int hash =
first* 31337 + (second % 17) * 11 + strlen(argv[3]) - 1615810207;
//first=0xcafe,(second%17)=8,argv[3]="h4cky0u" printf("Get your key: "); printf(
"%x\n", hash); return 0; }
在原程序上进行一定的修改,得到:
int main() { unsigned int hash = 0xcafe * 31337 + 8 * 11 + 7 - 1615810207;
printf("Get your key: "); printf("%x\n", hash); return 0; }

flag:c0ffee

技术
©2019-2020 Toolsou All rights reserved,
html+css个人简历/网页界面【超详细】Java实现学生信息管理系统java 数组下标 变量_Java基础语法:数组实验四 自动化测试工具-软件测试C++之string的compare用法2022蓝桥杯JavaB组省赛试题docker镜像存储在哪里opencv-python傅里叶变换以及逆变换C语言——qsort函数计算机一级多分,多少分能过一级计算机考试