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

第一次做逆向

题目来源: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

相关文章:

  • LLaMA-Factory:环境准备
  • 【全解析】EN18031标准下的SSM安全存储机制
  • 小刚说C语言刷题—1700请输出所有的2位数中,含有数字2的整数
  • ubuntu22.04卸载vscode
  • C#实现访问远程硬盘(附源码)
  • 技术剖析|线性代数之特征值分解,支撑AI算法的数学原理
  • 在MYSQL中导入cookbook.sql文件
  • Chrome代理IP配置教程常见方式附问题解答
  • Android 中使用通知(Kotlin 版)
  • 若依框架Consul微服务版本
  • AI 笔记 -基于retinaface的FPN上采样替换为CARAFE
  • Vue2项目中使用videojs播放mp4视频
  • 如何在win11上 运行arm虚拟机
  • Gensim 是一个专为 Python 设计的开源库
  • 苹果新一代车载系统CarPlay Ultra来袭,全屏接管+ChatGPT助力,智能驾驶要“起飞”
  • k8s灰度发布
  • MinIO 开源的分布式文件服务器
  • 测试工程师如何学会Kubernetes(k8s)容器知识
  • 如何与“不安”和平共处?
  • 基于MATLAB的人脸识别,实现PCA降维,用PCA特征进行SVM训练
  • 机器人为啥热衷“搞体育”,经济日报:是向加速融入日常生活发起的冲锋
  • 上海市税务局:收到对刘某某存在涉税问题的举报,正依法依规办理
  • 湃书单|澎湃新闻编辑们在读的14本书:后工作时代
  • 最高人民法院、中国证监会联合发布《关于严格公正执法司法 服务保障资本市场高质量发展的指导意见》
  • 国防部:中方愿与俄方不断增强两军关系良好发展势头
  • 伊朗最高领袖顾问:伊朗愿承诺永不制造核武,换取美解除制裁