Brief C Programs of the Bombs

这是一个关于炸弹的简短的 C 代码,了解思路即可哈!

参考资料

反汇编思路及过程:拆解二进制炸弹详解

phase_1 C语言代码

string input;
cin >> input;string answer = "Let's begin now!";
if (input == answer)return;
elseexplode_bomb();

phase_2 C语言代码

//假设 ID_num 为 11 位
int input[6];
for (int i = 0; i < 6; ++i)cin >> a[i];//爆炸点
if (a[0] != 1)explode_bomb();for (int i = 0; i < 5; ++i) {int ID = ID_num[10 - i];if (a[i] * ID != a[i + 1])explode_bomb();
}

phase_3 C语言代码

int a[2];
char c;
cin >> a[0] >> c >> a[1];int ID = 输入ID的最后一位
char c0;
int b;
switch (a[0]) {case 0 : {c0 = 'q';b = 777;if (ID * a[1] != b)explode_bomb();break;}case 1 : {c0 = 'b';b = 214;if (ID * a[1] != b)explode_bomb();break;}case 2 : {c0 = 'b';b = 755;if (ID * a[1] != b)explode_bomb();break;}case 3 : {c0 = 'k';b = 0;if (ID * a[1] != b)explode_bomb();break;}case 4 : {c0 = 'o';b = 228;if (ID * a[1] != b)explode_bomb();break;}case 5 : {c0 = 't';b = 513;if (ID * a[1] != b)explode_bomb();break;}case 6 : {c0 = 'v';b = 780;if (ID * a[1] != b)explode_bomb();break;}case 7 : {c0 = 'b';b = 824;if (ID * a[1] != b)explode_bomb();break;}default:explode_bomb();}if (c != c0)explode_bomb();

phase_4 C语言代码

int ID = 输入学号最后一位
int fun4(int x)
{if (x < 2)return 1;return fun4(x - 1) + fun4(x - 2);
}int x;
cin >> x;if (ID 为奇数) {if (fun4(x) != 8)explode_bomb();
}
else {if (fun4(x) != 13)explode_bomb();
}

phase_5 C语言代码

char S[16] = "isrveawhobpnutfg";
char answer[6] = "giants";char input[6];
cin >> input;char a[6];
for (int i = 0; i < 6; ++i) {int pos = str[i] & 15;a[i] = S[pos];
}for (int i = 0; i < 6; ++i) {if (a[i] != answer[i])explode_bomb();
}

phase_6 C语言代码


int a[6];
for (int i = 0;i < 6;i++)cin>>a[i];for (int i = 0;i < 6;i++) {if (!(i > 0 && i < 7) explode_bomb();for (int j = i + 1;j < 6;j++)if (a[i] == a[j]) explode_bomb();
}
chain c = {0x0fd, 0x2d5, 0x12d, 0x3e5, 0x0d4, 0x1b0};
chainNode res[6];
for (int i = 0;i < 6;i++) {chainNode *node = c.firstNode;for (int j = 1;j < a[i];j++)node = node->next;res[i] = node;
}chainNode *node = res[0];
for (int i = 1;i < 6;i++) {node->next = res[i];node = res[i];
}
node->next = null;
if (ID & 1) {node = c.firstNode;for (int i = 1;i < 6;i++)if (node->element < node->next->element)explode_bomb();
}
else {node = c.firstNode;for (int i = 1;i < 6;i++)if (node->element > node->next->element)explode_bomb();
}

隐藏炸弹的代码过段时间再进行补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言快速排序

快速排序是对冒泡法排序的一种改进。 快速排序算法 的基本思想是&#xff1a;将所要进行排序的数分为左右两个部分&#xff0c;其中一部分的所有数据都比另外一 部分的数据小&#xff0c;然后将所分得的两部分数据进行同样的划分&#xff0c;重复执行以上的划分操作&#xff0…

机器学习入门(1)之基本概念简介

目录 一、机器学习概述 1.1 什么是机器学习&#xff1f; 1.2 为什么需要机器学习&#xff1f; 1.3 机器学习应用场景 1.4 机器学习的一般流程 1.5 典型的机器学习过程​ 二、机器学习的基本术语 三.假设空间与版本空间 四、归纳偏好 1.哪种更好 2..假设的选择原则 …

山东大学 2020级计算机系统原理——拆解二进制炸弹

写在前面 第一次拿到这个实验还是有点慌&#xff01;之前没见过&#xff0c;不过还是慢慢做过来了。 这是个需要耐心的过程&#xff0c;请一定静下心来哦&#xff01; 环境及配置 环境&#xff1a;Ubuntu 20.04 GDB 调试工具 可参考配置&#xff1a;GDB调试工具配置&#…

机器学习入门(2)之模型评估与选择

目录 一、误差与拟合 1. 泛化误差与经验误差 2. 损失函数与训练误差 3. 过拟合与欠拟合 4. 过拟合的另一种现象&#xff1a;数据泄露 二、评估方法 1. 留出法 2. 交叉验证法&#xff08;留一法&#xff09; 3. 自助法 4. 调参与最终模型 三、性能度量 1. 混淆矩阵 …

pytorch MNIST 手写数字识别 + 使用自己的测试集 + 数据增强后再训练

文章目录1. MNIST 手写数字识别2. 聚焦数据集扩充后的模型训练3. pytorch 手写数字识别基本实现3.1完整代码及 MNIST 测试集测试结果3.1.1代码3.1.2 MNIST 测试集测试结果3.2 使用自己的图片进行测试3.2.1 测试图片预处理代码3.2.2 测试图片结果4. 数据增强4.1 手动读取 MNIST …

python基础(13)之数组

目录 数组 一、访问数组的元素 二、数组的长度 三、修改数组 四、数组的其它操作 数组 Python 没有对数组的内置支持&#xff0c;但可以使用Python 列表代替。 例如&#xff1a; ben ["笨小孩1", "笨小孩2", "笨小孩3"]一、访问数组的元…

C语言归并排序(合并排序)

归并排序也称合并排序&#xff0c;其算法思想是将待排序序列分为两部分&#xff0c;依次对分得的两个部分再次使用归并排序&#xff0c;之后再对其进行合并。仅从算法思想上了解归并排序会觉得很抽象&#xff0c;接下来就以对序列A[0], A[l]…, A[n-1]进行升序排列来进行解说&a…

python基础(14)之 类和对象

目录 Python类和对象 一、创建类 二、创建对象 三、init() 函数 四、对象方法 五、自参数 六、对象及其属性更改 七、pass语句 Python类和对象 Python 类/对象。Python 是一种面向对象的编程语言。Python 中的几乎所有东西都是一个对象&#xff0c;有它的属性和方法。…

C语言顺序查找

顺序査找是一种简单的査找算法&#xff0c;其实现方法是从序列的起始元素开始&#xff0c;逐个将序列中的元素与所要查找的元素进行比较&#xff0c;如果序列中有元素与所要查找的元素相等&#xff0c;那么査找成功&#xff0c;如果査找到序列的最后一个元素都不存在一个元素与…

python基础(15)之 继承

目录 Python继承 一、创建父类 二、创建子类 三、添加 init() 函数 四、使用 super() 函数 五、添加属性 六、添加方法 Python继承 继承允许我们定义一个从另一个类继承所有方法和属性的类。父类是被继承的类&#xff0c;也称为基类。子类是从另一个类继承的类&#xff…

C语言二分查找(折半查找)

二分査找也称折半査找&#xff0c;其优点是查找速度快&#xff0c;缺点是要求所要査找的数据必须是有序序列。该算法的基本思想是将所要査找的序列的中间位置的数据与所要査找的元素进行比较&#xff0c;如果相等&#xff0c;则表示査找成功&#xff0c;否则将以该位置为基准将…

python基础(16)之 日期

目录 Python日期 一、日期输入输出 二、创建日期对象 三、strftime() 方法 Python日期 Python 中的日期不是它自己的数据类型&#xff0c;但我们可以导入一个名为的模块datetime来处理日期作为日期对象。 一、日期输入输出 导入 datetime 模块并显示当前日期&#xff1a;…

C语言函数的概念

函数的使用 函数在使用时必须带上括号&#xff0c;有必要的话还要传递参数&#xff0c;函数的执行结果也可以赋值给其它变量。例如&#xff0c;strcmp() 是一个用来比较字符串大小的函数。 示例 #include <stdio.h> #include <string.h> int main(){char str1[]…

python基础(17)之 JSON

Python JSON JSON 是一种用于存储和交换数据的语法。JSON 是文本&#xff0c;用 JavaScript 对象表示法编写。 Python 有一个名为 的内置包json&#xff0c;可用于处理 JSON 数据。 导入 json 模块&#xff1a; import json一.从 JSON 转换为 Python 如果您有 JSON 字符串&am…

C语言自定义函数

函数是一段可以重复使用的代码&#xff0c;用来独立地完成某个功能&#xff0c;它可以接收用户传递的数据&#xff0c;也可以不接收。接收用户数据的函数在定义时要指明参数&#xff0c;不接收用户数据的不需要指明&#xff0c;根据这一点可以将函数分为有参函数和无参函数。 …

python基础(18)之 异常处理

目录 异常处理 一、异常处理 二、else搭配 三、finally语句 四、引发异常 异常处理 try块可让您测试代码块的错误。except块可让您处理错误。finally无论 try- 和 except 块的结果如何&#xff0c;该块都允许您执行代码。 一、异常处理 例如该try块将产生异常&#xff0…

C语言形参和实参的区别

形参&#xff08;形式参数&#xff09; 在函数定义中出现的参数可以看做是一个占位符&#xff0c;它没有数据&#xff0c;只能等到函数被调用时接收传递进来的数据&#xff0c;所以称为形式参数&#xff0c;简称形参。 实参&#xff08;实际参数&#xff09; 函数被调用时给…

python基础(19)之 输入输出

目录 用户输入 一、格式化输入输出 二、格式化字符串字面值 三、字符串 format() 方法 四、手动格式化字符串 五、旧式字符串格式化方法 用户输入 实在太简单了&#xff0c;就是使用一个input(),将输入后的值传递给另一个变量&#xff0c;相当于动态赋值、 例如&#xff…

C语言函数返回值详解

函数的返回值是指函数被调用之后&#xff0c;执行函数体中的代码所得到的结果&#xff0c;这个结果通过 return 语句返回。 return 语句的一般形式为&#xff1a; return 表达式;或者&#xff1a; return (表达式);有没有( )都是正确的&#xff0c;为了简明&#xff0c;一般…

机器学习之线性回归(python)

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法&#xff08;least square method&#xff09;求解&#xff1a; 4. 评估回归模型 四、sklearn中…