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

第一次做逆向

题目来源:ctf.show

1、下载附件,发现一个exe和一个txt文件

看看病毒加没加壳,发现没加那就直接放IDA

放到IDA找到main主函数,按F5反编译工具就把他还原成类似C语言的代码

然后我们看逻辑,将flag.txt文件的内容进行加密处理,并将结果写入enflag.txt文件,所以上面那两个文件enflag是被加密过的

 继续看这段代码,输入的是Str,输入Str这个值要干什么不知道,进去看看

发现这是从sub_401A70里面返回,然后进去看看具体做了什么

看不懂就扔豆包里看看代码具体实现什么功能:

  • 输入处理

    • 接收用户输入的字符串 Str(例如密码或 flag)。
    • 获取 Str 的长度,用于后续循环处理。
  • 加密转换

    • 异或操作:对输入字符串 Str 的每个字符与固定值 0x1F(十进制 31)进行异或运算。
    • 累加修改:将异或结果累加到另一个字符串 Str1 的对应位置上(Str1[i] += Str[i] ^ 0x1F)。
  • 结果验证

    • 将处理后的 Str1 与预设的目标字符串 "DH~mqqvqxB^||zll@Jq~jkwpmvez{" 进行比较。
    • 若匹配成功,输出正确信息(如 Correct!);否则输出错误信息(Error!)。

所以黄色的那段字符串就是密钥,我们写个脚本给他解回去

出来这么一段字符串,然后我们得返回去看他之后有干了什么

 其实看到这就能猜出来是个加密操作了,str是密钥,v13是一开始写入flag.txt里的内容,v12是将v13加密之后写入enflag.txt的内容,v15和v14都没有用,我们继续点进去看

发现返回sub_4014E0这个函数,对应着刚才的值a1,a4,a5

 看黄色那段,用到的函数就有sub_4010EB这个函数

看这段,RC4加密,前三段强特征(可以搜一下RC4加密)

知道是RC4加密我们拿厨师解一下

拿到flag

http://www.lryc.cn/news/2378253.html

相关文章:

  • 【Linux网络】传输层协议TCP
  • AAAI-2025 | 中科院无人机导航新突破!FELA:基于细粒度对齐的无人机视觉对话导航
  • 排序算法之基础排序:冒泡,选择,插入排序详解
  • Linux常用命令42——tar压缩和解压缩文件
  • 网络协议分析 实验七 FTP、HTTP、DHCP
  • HTML 表格与div深度解析区别及常见误区
  • Linux 系统中设置开机启动脚本
  • linux-进程信号的产生
  • 内容中台重构企业知识管理路径
  • ubuntu22.04卸载vscode
  • AGI大模型(19):下载模型到本地之ModelScope(魔搭社区)
  • 基于Spring Boot+Layui构建企业级电子招投标系统实战指南
  • Kali安装详细图文安装教程(文章内附有镜像文件连接提供下载)
  • 2.4GHz无线芯片核心技术解析与典型应用
  • ai agent(智能体)开发 python高级应用4:什么是代理,如何设置squid代理服务器,让crawl4ai 0.6.3 用上代理,获取到数据平权
  • 技术融资:概念与形式、步骤与案例、挑战与应对、发展趋势
  • Chrome代理IP配置教程常见方式附问题解答
  • 微信小程序 密码框改为text后不可见,需要点击一下
  • LLM笔记(六)线性代数
  • Linux——UDP/TCP协议理论
  • Go语言爬虫系列教程(一) 爬虫基础入门
  • PromptIDE提示词开发工具支持定向优化啦
  • 多返回值(Multiple Return Values)- 《Go语言实战指南》
  • 致远OA人事标准模块功能简介【附应用包百度网盘下载地址,官方售价4W】
  • Python-简单网络编程 I
  • 鸿蒙北向应用开发: deveco5.0 创建开源鸿蒙项目
  • 数据库故障排查指南:从入门到精通
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
  • 基于基金净值百分位的交易策略
  • 2025蓝桥杯JAVA编程题练习Day8