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)