2021-01-31

本文介绍了如何通过分析程序代码和使用逆向工程工具解决一个CTF挑战。涉及的步骤包括使用exeinfope和IDA分析二进制文件,查找关键函数sub_4110BE,识别base64加密字符串,并编写Python脚本来解密得到flag。文章适合对逆向工程和网络安全感兴趣的读者。
摘要由CSDN通过智能技术生成

bugku love

地址 https://ctf.bugku.com/challenges#love

打开后,用exeinfope查一下

在这里插入图片描述

用IDA打开,直接搜索字符串_main,看伪代码。

在这里插入图片描述
看起来比较好理解,将输入的字符串放进str,将str的长度放进v0.str通过sub_4110BE函数之后得到v1.v1再通过strncpy复制到dest中去。dest字符串数组对应编号的字符转化为ascii码,加上对应的数组下标转化为字符,然后和str2做对比,成功则得到flag。str2应该是是先放好的数组

在这里插入图片描述
先看一下sub_4110BE点进去,有点复杂,看不到。再看一下它引用了那些字符,发现一段base64加密的字符串。
在这里插入图片描述
其实看字符串窗口发现有这样字符串的话,这道题目基本都会涉及到base64
接下来就是写脚本`


import base64
 
s ="e3nifIH9b_C@n@dH"
 
flag =""
 
for i in range(len(s)):
 
flag += chr(ord(s[i])- i)
 
flag = base64.b64decode(flag)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值