bugku——love

 

题目链接:https://ctf.bugku.com/challenges#love

作为一个逆向小白,这道题我觉得有必要记录下,这道题我自己分析了一半,没有完全分析出来(觉得是自己见的题少,没有做题经验,而且需要熟悉下各种加密),参考了网上大佬们的博客。

首先把这个拖进exeinfope中看看有啥重要信息没

bugku——love_第1张图片

从上面得到用c++写的,32位,无壳,符合PE结构,

然后拉进IDA中看看(一键F5)

bugku——love_第2张图片

bugku——love_第3张图片

看主函数,想得到right flag就要Dest数组和Str2数组前v2(就是Dest数组长度)个字符匹配相同,Str2数组点进去可以看到

bugku——love_第4张图片

for循环那一步倒过来也很容易实现

#include
#include
using namespace std;
int main()
{
    char Dest[20]="e3nifIH9b_C@n@dH";
    int len=strlen(str);
    for(int i=0;i

得到Dest之前的样子 

e2lfbDB2ZV95b3V9

重点就是输入的Str怎么转化成Dest

sheft+F12看字符串,会发现base64input和base64

字符'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='

所以转化很有可能运用的是base64加密Str存入Dest,所以网上找在线解密base64即可得到flag

bugku——love_第5张图片

bugku——love_第6张图片

得到flag

flag{i_l0ve_you}

 

你可能感兴趣的:(逆向)