buu-[GWCTF 2019]xxor

本文详细分析了GWCTF 2019中xxor挑战的解题过程,涉及到64位GCC环境下的代码。主要关注两个函数sub_400686()和sub_400770(),前者处理输入数据的异或运算,后者用于检查运算结果是否等于1。题目中unk_601060数组包含关键数据,且提示使用C语言编写解题脚本,涉及位移操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

64为GCC
在这里插入图片描述
查看字符串跟进主函数

__int64 __fastcall main(__int64 a1, char **a2, char **a3)
{
   
   
  signed int i; // [rsp+8h] [rbp-68h]
  signed int j; // [rsp+Ch] [rbp-64h]
  __int64 v6; // [rsp+10h] [rbp-60h]
  __int64 v7; // [rsp+18h] [rbp-58h]
  __int64 v8; // [rsp+20h] [rbp-50h]
  __int64 v9; // [rsp+28h] [rbp-48h]
  __int64 v10; // [rsp+30h] [rbp-40h]
  __int64 v11; // [rsp+40h] [rbp-30h]
  __int64 v12; // [rsp+48h] [rbp-28h]
  __int64 v13; // [rsp+50h] [rbp-20h]
  __int64 v14; // [rsp+58h] [rbp-18h]
  __int64 v15; // [rsp+60h] [rbp-10h]
  unsigned __int64 v16; // [rsp+68h] [rbp-8h]

  v16 = __readfsqword(0x28u);
  puts("Let us play a game?");
  puts("you have six chances to input");
  puts("Come on!");
  v6 = 0LL;
  v7 = 0LL;
  v8 = 0LL;
  v9 = 0LL;
  v10 = 0LL;
  for ( i = 0; i <= 5; ++i )
  {
   
   
    printf("%s", "input: ", (unsigned int)i);
    __isoc99_scanf("%d", (char *)&v6 + 4 * i);
  }
  v11 = 0LL;
  v12 = 0LL;
  v13 = 0LL;
  v14 = 0LL;
  v15 = 0LL;
  <
### BUU-CTF 中 '伟大的侦探'(Misc 类别)考点分析与解题思路 #### 考点分析 在BUU-CTF的'Misc'类别中,“伟大的侦探”往往涉及推理、密码破译、隐写术以及社会工程学等方面的知识。这类题目旨在考验参赛者对计算机安全领域内非传统技术的理解程度,同时也注重实际操作能力和创造性思维的应用[^1]。 1. **推理与逻辑** 题目可能会给出一段看似无序的文字或图片信息,要求选手通过仔细观察和缜密分析找出隐藏线索并得出结论。这类似于现实世界中的刑侦工作流程,需要高度专注力及良好归纳总结能力[^2]。 2. **编码与解码** 使用古典加密算法如凯撒密码、维吉尼亚密码等进行数据保护是早期通信方式之一,在现代信息安全教育中有重要地位。“伟大的侦探”类题目有时会融入这些基础概念作为切入点,引导玩家探索更深层次的技术原理[^3]。 3. **隐写术** 图像文件内的LSB(Least Significant Bit)修改、音频信号叠加秘密消息等形式构成了数字时代下的新型隐蔽传输手段。此类问题不仅检验了参与者对于多媒体载体特性的掌握水平,还促进了他们开发针对性检测工具的兴趣与发展[^4]。 4. **社会工程学** 利用人际交往过程中的心理弱点获取敏感资料也是网络安全防护体系面临的一大威胁源。因此,在某些特殊情境设定下,如何识别潜在风险并通过合理措施加以规避便成为了考核重点之一[^5]。 --- #### 解题思路 针对以上提到的各种可能形式,以下是几种通用且有效的解决方案框架: 1. **全面审阅材料** 对于任何给定的任务包,首要任务就是彻底浏览所提供的全部文档资源,包括但不限于README说明文档、附件压缩包等内容。注意发现异常之处比如奇怪命名惯例或是多余空白字符序列等等[^6]。 2. **尝试多种假设验证** 当初步扫描未能立即揭示明显答案时,则应考虑建立若干相互独立却又彼此关联的可能性解释方案,并逐一实施实验性测试直至找到确切依据支持其中之一为止[^7]。 3. **运用自动化脚本辅助处理大量重复劳动环节** 如果遇到需批量解析大批量相似结构的数据集场合,则编写Python或其他高级语言程序将是提高效率的关键所在。例如下面展示了一个简单的base64字符串转换函数实现案例: ```python import base64 def decode_base64(encoded_str): try: decoded_bytes = base64.b64decode(encoded_str) return decoded_bytes.decode('utf-8') except Exception as e: return f"Error occurred: {e}" encoded_string = "SGVsbG8gV29ybGQh" result = decode_base64(encoded_string) print(result) # 输出 Hello World! ``` 4. **查阅权威参考资料巩固理论支撑** 在整个求解过程中,适时参考官方教程指南或者是社区讨论区帖子能够有效弥补个人知识盲区的同时加快整体进度推进速度。推荐站点如下所示: - 先知社区:https://xz.aliyun.com/ - 看雪论坛:http://bbs.pediy.com/ - 安全客:http://anquanke.com/ --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值