[长安“战疫”网络安全卫士守护赛]cute_doge

[RE] cute_doge

flag{Ch1na_yyds_cazy}

本题极其简单,关键在于熟练掌握Base64的标志

打开程序康康:
image-20220108174426011

狗子这么可爱,当然是选择相信他了(误
从理论上讲,这样的具有大量引用和动态链接库的程序其核心代码可能真的不在可执行程序里,有时编译器会将具体执行的程序放在可执行程序外。但是这题不一样,这可是可爱的狗子(误)我们通过查壳看到没有障碍之后使用ida 64进行反汇编,同时打开Strings子窗口进行查找:
从系统菜单上看出这个程序应该内置了一个字符串cute_doge,因此我们就去找找这个字符串:

image

不出所料果然在程序内部。接着定位到程序内部查看具体实现。此处双击字符串之后弹出对应的.rdata内容,按下x进行交叉引用查找,从而跳到程序执行段:

image

按下F5试图生成伪代码,有趣的是主办方居然没有任何混淆(似乎这次就没考)

image

注意到上面一个极为显眼的字符串:

  *v42 = QString::fromAscii_helper((QString *)"ZmxhZ3tDaDFuYV95eWRzX2Nhenl9", (const char *)0x1C, v43);

你不禁大喜过望,将这段字符串拖入Base64解密程序即可解出flag

重点就在于对flag文本加密的敏感性。本题优点凑巧,如果改为cazy{...}就没有那么容易看出来了。

posted @ 2022-01-08 21:05  二氢茉莉酮酸甲酯  阅读(39)  评论(0编辑  收藏  举报