启航杯rewp
.rainbow
一、rainbow
1>查壳拖入ida
查看伪代码
点击跟进hide-flag。
2>分析代码
点开 xor_encrypt发现是简单的异或,分析得出flag异或后得到encryped-flag。
打开output文件。
3>写脚本
发现是十六进制字符串,写代码把它转换成字节再进行异或即可得到flag。
二、小明的note
1>查壳拖入ida
upx -d脱壳,进入主函数查看伪代码。
2>分析伪代码
进入decryped_flag,发现是dest的异或,又是异或!并且v6又是十六进制字符,要转化为字节。
a1是dest,即长度便是dest的长度
往前看发现unk_2010值赋给了dest,查看unk_2010。
3>写脚本
三、checker
查壳32位ida分析,跟进check_flag,跟进encrypt flag,发现又是异或。
再查看encrypted_flag
写脚本
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BarkStarry!