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

[羊城杯 2020]easyre

下载附件,查壳,无壳ida打开。F5反编译查看源码。

分析源码,输入一个 38 个字符的字符串(flag),然后通过一系列的编码函数来验证这个输入的字符串是否正确。如果输入的字符串通过了所有的编码和比较步骤,程序会输出 "you are right!",否则会输出 "Something wrong. Keep going."。其中还有三次加密。

跟进第一次加密encode_one:

这段代码执行的是对输入数据进行 Base64 编码的操作。

这里是一个ascii码转换,跟进alphabet。

发现一个base64码表,到此第一个加密分析完毕。

第二个加密encode_two:

这段代码执行的是字符串的重新排列操作。函数的目的是从输入参数 a1 中提取特定位置的子字符串,并将它们按照一定的顺序复制到另一个位置 a3。即:

  1. 将输入字符串 a1 的第 26 个字符开始的 13 个字符复制到输出字符串 a3 的开头。

  2. 将 a1 的开头 13 个字符复制到 a3 的第 13 个字符位置开始处。

  3. 将 a1 的第 39 个字符开始的 13 个字符复制到 a3 的第 26 个字符位置开始处。

  4. 将 a1 的第 13 个字符开始的 13 个字符复制到 a3 的第 39 个字符位置开始处。

第三个加密encode_three:

有个+3,应该是右移3,猜测是凯撒密码。

凯撒密码解密:

但是这并不是正确的结果,正确的结果还要对阿拉伯数字-3,因为凯撒加密是对字符进行不断位移替换的,阿拉伯数字的数值并没有变化,而且在凯撒加密的算法中出现了+3,所以要-3才能得出原来的密文

BjYjM2Mjk4NzMR1dIVHs2NzJjY0MTEzM2VhMn0=zQ3NzhhMzhlOD

在进行第二次解密:

这串代码的含义就是替换顺序即:

  1. 将输入字符串 a1 的第 26 个字符开始的 13 个字符复制到输出字符串 a3 的开头。

  2. 将 a1 的开头 13 个字符复制到 a3 的第 13 个字符位置开始处。

  3. 将 a1 的第 39 个字符开始的 13 个字符复制到 a3 的第 26 个字符位置开始处。

  4. 将 a1 的第 13 个字符开始的 13 个字符复制到 a3 的第 39 个字符位置开始处。

所以直接手动进行更改即可:

BjYjM2Mjk4NzM 3
R1dIVHs2NzJjY 1
0MTEzM2VhMn0= 4
zQ3NzhhMzhlOD 2
R1dIVHs2NzJjYzQ3NzhhMzhlODBjYjM2Mjk4NzM0MTEzM2VhMn0=

最后一次解密:就是一个base64解密 

R1dIVHs2NzJjYzQ3NzhhMzhlODBjYjM2Mjk4NzM0MTEzM2VhMn0=

 

 

flag: 

GWHT{672cc4778a38e80cb362987341133ea2}


http://www.kler.cn/a/404259.html

相关文章:

  • pdf文档动态插入文字水印,45度角,旋转倾斜,位于文档中央,多行水印可插入中文
  • 结合第三方模块requests,文件IO、正则表达式,通过函数封装爬虫应用采集数据
  • 99.【C语言】数据结构之二叉树的基本知识
  • vue3:使用插件递归组件
  • 开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现离线推理-性能分析(四)
  • 【C++】栈、队列、双端队列与优先级队列
  • Java基础夯实——2.6 Java中的锁
  • 【Linux网络编程】套接字使用--TCP echo server的实现
  • 【腾讯云产品最佳实践】腾讯云CVM入门技术与实践:通过腾讯云快速构建云上应用
  • Jmeter中的断言(三)
  • 《Vue零基础入门教程》第一课:Vue简介
  • 初识ArkUI
  • SAP BC 记录一次因为HANA服务器内存满的问题
  • 如何选择合适的数据集成工具或平台来实现全域数据的高效整合
  • 机器学习之量子机器学习(Quantum Machine Learning, QML)
  • Lucene数据写入与数据刷盘机制
  • 0基础跟德姆(dom)一起学AI NLP自然语言处理01-自然语言处理入门
  • 实验室管理现代化:Spring Boot技术方案
  • ros2--实时性--preempt-rt
  • 系统安全第十四次作业题目及答案
  • 备赛蓝桥杯--算法题目(1)
  • AWS云服务器:开启高效计算的新纪元
  • YOLOP 多任务算法详解
  • 几种常用的检查网络连通状态的指令
  • 构建自己的框架去做技术选型
  • ChatGPT高级语音模式正在向Web网页端推出!