当前位置: 首页 > news >正文

simple-check-100

依旧是三个文件,跟secret-galaxy-300这道题同理,在合适的软件中打开其中之一即可。

按F5后先点进main函数中,感觉跟secret-galaxy-300这道题的main函数差不多,暂时先不管他。

先点开check_key这个函数看一眼。

v3+=那一行没看懂,搜了一下AI ,这一行的意思就是V3是一个数组前五项的和。

整个意思就是如果v3等于后面的那个数,就返回true。

我们再看看函数interesting_function(&v7)

本人看伪代码的能力不太行,使用AI 转化为等价的C语言代码

void decrypt_and_print(unsigned int *a1, const char *flag_data) {
for (int i = 0; i < 7; ++i) {
unsigned int v = a1[i] ^ 0xDEADBEEF;
for (int j = 0; j < 4; ++j) {
char byte = ((char *)&v)[j];
char key = flag_data[4 * i + j];
putchar(byte ^ key);
}
}
}

第一行的就是定义了一个指向没有符号的整数的指针和一个指向字符的指针(只能读,不能修改,常用于字符串常量。)

后面的是一个类似于加密的东西(没太看懂,呜呜呜~)(查了一下AI ,意思就是:倒序取 4 字节,逐字节与密钥异或,逐字节输出明文。)

#include <stdio.h>
int main(int argc, char* argv[]) {
unsigned char flag_data[] = {
220, 23, 191, 91, 212, 10, 210, 27, 125, 218,
167, 149, 181, 50, 16, 246, 28, 101, 83, 83,
103, 186, 234, 110, 120, 34, 114, 211};
char v7[] = {
84, -56, 126, -29, 100, -57, 22, -102, -51, 17,
101, 50, 45, -29, -45, 67, -110, -87, -99, -46,
-26, 109, 44, -45, -74, -67, -2, 106};
unsigned int v2;
unsigned char* v3;
// v11 = -478230444;
// v12 = -1709783196;
// v13 = 845484493;
// v14 = 1137959725;
// v15 = -761419374;
// v16 = -752063002;
// v17 = -74;
// v18 = -67;
// v19 = -2;
// v20 = 106;
// 方法一:类比写
for (int i = 0; i <= 6; ++i) {
v2 = ((v7[4 * i] & 0x000000FF) + ((v7[4 * i + 1] & 0x000000FF) << 8)
+ ((v7[4 * i + 2] & 0x000000FF) << 16) + ((v7[4 * i + 3] & 0x000000FF) <<
24)) ^ 0xDEADBEEF;
v3 = (unsigned char*)&v2;
for (int j = 3; j >= 0; --j) {
printf("%c", *(v3 + j) ^ flag_data[4 * i + j]);
}
}
// 方法二:按位异或,小端字节序,低位在低地址
// for (int i = 0; i <= 6; ++i) {
// printf("%c", v7[4 * i + 3] ^ 0xDE ^ flag_data[4 * i + 3]);
// printf("%c", v7[4 * i + 2] ^ 0xAD ^ flag_data[4 * i + 2]);
// printf("%c", v7[4 * i + 1] ^ 0xBE ^ flag_data[4 * i + 1]);
// printf("%c", v7[4 * i] ^ 0xEF ^ flag_data[4 * i]);
// }
return 0;
}
使用该脚本即可解出

(还剩一下东西,明天再研究,哥们要燃尽了)


文章转载自:

http://o63KwZZm.tqrbL.cn
http://ErDggUhN.tqrbL.cn
http://nbdh46Bi.tqrbL.cn
http://VlCG0DUb.tqrbL.cn
http://e585Yg2H.tqrbL.cn
http://8tt5DIvG.tqrbL.cn
http://CCJX9rWf.tqrbL.cn
http://vQio7eRC.tqrbL.cn
http://1oHtlZ5a.tqrbL.cn
http://HLGWPAMZ.tqrbL.cn
http://D91Ayh5t.tqrbL.cn
http://vw7UL0aj.tqrbL.cn
http://02wywSBv.tqrbL.cn
http://TDIVRAaF.tqrbL.cn
http://p5OJ7Gu4.tqrbL.cn
http://ipdLUjr5.tqrbL.cn
http://e6AWVtOt.tqrbL.cn
http://mAVsh3cY.tqrbL.cn
http://G0aJ6JaG.tqrbL.cn
http://aRo8x5Yr.tqrbL.cn
http://JgKZvLlR.tqrbL.cn
http://M1M4WJdD.tqrbL.cn
http://ZwnQhqPB.tqrbL.cn
http://gK3bk7CC.tqrbL.cn
http://jKZ6LZDW.tqrbL.cn
http://TDtZERSG.tqrbL.cn
http://w5miHLbi.tqrbL.cn
http://EiA4ElKi.tqrbL.cn
http://X4bUMf1K.tqrbL.cn
http://NHdNWBf8.tqrbL.cn
http://www.dtcms.com/a/367537.html

相关文章:

  • 自学嵌入式第三十五天:网络编程-网站
  • 分词器详解(二)
  • Webug3.0通关笔记18 中级进阶第06关 实战练习:DisCuz论坛SQL注入漏洞
  • Docker学习记录
  • springboot配置多数据源(mysql、hive)
  • 机器学习如何精准预测高值
  • 【单片机day03】
  • More Effective C++ 条款28:智能指针
  • 洛谷 P3384 【模板】重链剖分/树链剖分-提高+/省选-
  • Websocket链接如何配置nginx转发规则?
  • Linux网络服务——基础设置
  • bd09转2gs84坐标算法
  • Python可视化93阅兵武器进化
  • 适应新环境:Trae编辑器下的IDEA快捷键定制
  • AgentThink:一种在自动驾驶视觉语言模型中用于工具增强链式思维推理的统一框架
  • 2025年数学建模国赛B题超详细解题思路
  • CSDN 与 掘金 高效学习指南
  • Web基础、HTTP/HTTPS协议与Nginx详解
  • 深度学习篇---MNIST:手写数字数据集
  • 【算法速成课2 | 题单】背包问题
  • RAG学习
  • Netty从0到1系列之Buffer【上】
  • Flutter之riverpod状态管理Widget UI详解
  • 投标委托测试如何选择第三方检测机构?
  • 记录SSL部署,链路不完整问题
  • Unity Standard Shader 解析(五)之ShadowCaster
  • go 初始化组件最佳实践
  • 2025数学建模国赛高教社杯A题思路代码文章助攻
  • deveco 出现hvigor版本与系统版本不匹配
  • (自用)Linux 常用命令自查文档