第一次做逆向

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

相关推荐
武天旭7 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
视觉小萌新8 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
小小张说故事9 小时前
Python 的 obj.x 到底按什么顺序找?拆开数据描述符、实例字典和 __getattr__ 那条优先级链
python
用户114818678948410 小时前
水印的实现方式逻辑
前端·python
贾公子10 小时前
从单条内容到账号维度——AIGC 风险评分的工程实现
后端·python
木头左11 小时前
【Python】不点浏览器发博客:逆向 CSDN 创作中心接口做 md-publish 技能
python·自动化·api
Tt有了t12 小时前
设计模式速查
java·python·设计模式
deepseek2312 小时前
Python日志拖慢请求?QueueHandler排队、丢失与退出实测
python·性能优化·logging·后端开发·queuehandler
用户912940468484212 小时前
Codex 从零到能交付(05):第一次改代码:生成一个文件清单脚本
python
Dmz丶12 小时前
前端转 AI 100 天 Day 38:Token 管理与成本优化——别让 API 账单爆炸
python