第二道re

题目来源:天狩CTF竞赛平台 Lihua's for

题目提示说是for循环,不管了干吧

先看加没加壳,没有,直接无脑IDA+F5

代码功能概述

程序会要求用户输入一个 flag,然后将输入的每个字符与索引值进行异或运算,并将结果与预定义的数据(unk_403040)进行比较。如果所有字符都匹配,则输出 "good~",否则输出 "error!"。

cpp 复制代码
 _main();
  qmemcpy(a, &unk_403040, sizeof(a));
  // 从地址0x403040复制 42 字节数据到数组a中,这是预定义的目标数据。

  puts("input flag");
  scanf("%s", flag);
  // 提示用户输入 flag,并读取字符串到flag数组中。

  puts(flag);
  for ( i = 0; i <= 41; ++i )
    b[i] = i ^ flag[i];
  // 对输入的每个字符进行处理:将字符与它的索引位置进行异或运算,结果存入数组b。
  for ( i_0 = 0; i_0 <= 41; ++i_0 )
  {
    if ( a[i_0] != b[i_0] )
    {
      good = 0;
      break;
    }
    good = 1;
  }
  if ( good == 1 )
    printf("good~");
  else
    printf("error!");
  return 0;
}
  /* 逐个比较异或结果b与预定义数据a:
  如果有任何不匹配,将good设为 0 并跳出循环。
  只有当所有字符都匹配时,good才会保持为 1 */

点进去&unk_403040这个值里面,发现有字符串

红框框就是我们要找的数据,下面还有,一共是42个,我们把它们的十六进制提取出来

把这些十六进制写成一个列表,对它们进行异或运算:

python 复制代码
a = [0x66,0x6D,
     0x63,0x64,0x7F,0x64,
     0x32,0x36,0x6A,0x6C,
     0x3E,0x3D,0x39,0x20,
     0x6F,0x3A,0x20,0x77,
     0x3F,0x27,0x25,0x27,
     0x22,0x3A,0x7A,0x2E,
     0x78,0x7A,0x31,0x2F,
     0x29,0x29,0x16,0x40,
     0x44,0x45,0x12,0x47,
     0x47,0x41,0x1A,0x54]
c = ""
b = 0
for i in a:
    c += chr(b ^ i)
    b += 1
print(c)

运行就出来flag了

bash 复制代码
flag{a41be465-a50f-4124-b7ba-2766aff6baf2}
相关推荐
万粉变现经纪人2 小时前
如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘tokenizers’ 问题
python·selenium·测试工具·scrapy·beautifulsoup·fastapi·pip
编程武士4 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
我的xiaodoujiao4 小时前
Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium
开发语言·python·测试工具
傻啦嘿哟7 小时前
Python SQLite模块:轻量级数据库的实战指南
数据库·python·sqlite
Q_Q5110082857 小时前
python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
spring boot·python·django·flask·uni-app·node.js·php
XueminXu7 小时前
Python读取MongoDB的JSON字典和列表对象转为字符串
python·mongodb·json·pymongo·mongoclient·isinstance·json.dumps
techdashen7 小时前
12分钟讲解Python核心理念
开发语言·python
jie*7 小时前
小杰机器学习(nine)——支持向量机
人工智能·python·机器学习·支持向量机·回归·聚类·sklearn
闭着眼睛学算法7 小时前
【华为OD机考正在更新】2025年双机位A卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】
java·c语言·javascript·c++·python·算法·华为od
郝学胜-神的一滴7 小时前
谨慎地迭代函数所收到的参数 (Effective Python 第31条)
开发语言·python·程序人生·软件工程