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

攻防世界--->点燃我

做题笔记。

下载 查壳

32ida打开。

先看main函数:

(自己改已知的函数名--->不再赘述)

跟进sub_4011C0:

在已知密文的情况下,直接逆向还原去得到input的值。

C脚本:

#include <stdio.h>
#include <string.h>int main() {unsigned char a[] ={13,  19,  23,  17,   2,   1,  32,  29,  12,   2,25,  47,  23,  43,  36,  31,  30,  22,   9,  15,21,  39,  19,  38,  10,  47,  30,  26,  45,  12,34,   4};char b[25] = "GONDPHyGjPEKruv{{pj]X@rF";char c[25] = " ";char flag[25] = " ";for (size_t i = 0; i <strlen(b); i++){c[i] = b[i] ^ a[i];flag[i] = (c[i] - 72) ^ 0x55;}for (int i = 0; i < strlen(flag); i++){if (flag[i]>='a'&& flag[i]<='z'){flag[i] -= 32;}else if(flag[i]>='A' && flag[i]<='Z'){flag[i] += 32;}}printf("EIS{%s}", flag);return 0;
}

Python:

a = [13, 19, 23, 17, 2, 1, 32, 29, 12, 2, 25, 47, 23, 43, 36, 31, 30, 22, 9, 15, 21, 39, 19, 38, 10, 47, 30, 26, 45, 12, 34, 4]
b = "GONDPHyGjPEKruv{{pj]X@rF"c = [chr(ord(b[i]) ^ a[i]) for i in range(len(b))]
flag = [chr(((ord(c[i]) - 72) ^ 0x55)) for i in range(len(c))]def adjust_char(char):if 'a' <= char <= 'z':return chr(ord(char) - 32)elif 'A' <= char <= 'Z':return chr(ord(char) + 32)else:return charflag = "".join([adjust_char(char) for char in flag])print(f"EIS{{{flag}}}")

EIS{wadx_tdgk_aihc_ihkn_pjlm}


http://www.mrgr.cn/news/22755.html

相关文章:

  • 为何在106短信群发前需完成实名认证?
  • 大模型RAG实战|构建知识库:文档和网页的加载、转换、索引与存储
  • 操作word 以及pdf 记录以及踩坑总结
  • TD综合教程——噪波球和正交线性脉冲(附思路和工程文件)
  • m4v是什么格式?m4v转mp4方法(2024最新)
  • 学习Linux第二天
  • [C++]五、数组
  • 十年后的web渗透(网络安全)前景如何?你想知道的都在这里
  • 网络编程项目(速递项目)
  • C语言代码练习
  • Aigtek:功率放大器一般由什么组成
  • 孟德尔随机化的术语理解
  • 网络编程(学习)2024.9.4
  • 打造专业级PPT:用Python-pptx精准编辑图表属性
  • 【Python】PyPandoc:批量文件格式转换
  • 9月9日听IoT讲座
  • stack,queue的模拟实现,deque的模拟实现和小知识点的杂糅
  • PID控制算法(二)
  • 【脊线图】:附Origin详细画图流程
  • 优化销售流程,领先市场趋势!企元数智赠送小程序合规分销系统!