第一次做逆向

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

相关推荐
ch6231 小时前
《AI 辅助编程实战:从零跑通一个 Excel 报表生成脚本的踩坑与复盘》
人工智能·python
import_random2 小时前
[python]conda和pip(区别和联系2)
python
Aurorar0rua2 小时前
CS50 x 2024 Notes Python - 01
开发语言·python·学习方法
用户6602676118792 小时前
备注接口返回成功,数据库却没变:怎样限定一次修复的范围?
python
Dumbness2 小时前
用 Python + UI Automation 读写微信 PC 版:一个群消息自动回复程序的实现与踩坑
python
艺杯羹2 小时前
Windows跨平台编码地雷全解:从GBK静默崩溃到内核级原子写入防御
人工智能·python·桌面客户端
用户8356290780512 小时前
使用 Python 在 Excel 中识别并高亮重复数据与唯一数据
后端·python
CCblandy2 小时前
Agent 工具调用怎么编排?本机实测:并行只到 2.63 倍,慢的先发省 30ms,CPU 活加 worker 无效
人工智能·后端·python·性能优化
用户8356290780513 小时前
使用 Python 在 Excel 中查找、替换数据并高亮显示
后端·python
GPU实战笔记3 小时前
PyCharm 接云 GPU:远端项目连接与远程解释器别混为一谈
python·pycharm·ssh·远程开发·云gpu