逆向_第六题 Love

老方法,定位到printf函数


发现输入20个字符,随便输入,跟踪到这里,遇到一个不明call

F8步过

发现eax返回一个字符串,目测是把我们输入的字符串经过某个算法加密了,继续往下走

遇到个while循环,处理的是加密后的字符串

最后比较一下字符串是否与 e3nifIH9b_C@n@dH 相等,根据执行流程,我们大致画一下流程图

现在用ida看一下大致流程和伪代码

也就是说最后循环处理后的字符串 要等于 e3nifIH9b_C@n@dH 才行。

我们把e3nifIH9b_C@n@dH进行逆向处理一下。

代码如下:

得到结果: e2lfbDB2ZV95b3V9

现在就开始看一下加密函数了,逆了加密函数就得到了flag。

加密函数的伪代码大概是这样子。。我看的脑壳疼,大致写了一段程序 比较复杂,没成功。

用IDA看一下字符串,发现有个base64的提示。其实下面这个字符串也是base64加密算法特征

把 e2lfbDB2ZV95b3V9 base64 解密一下 得到flag :{i_l0ve_you}
提交,提示错误 ,加了个 flag{i_l0ve_you} 以这种格式提交,正确。!