攻防世界-RE-ReverseMe-120(主要是对Base64再深入熟悉一下)

前言

今天随机做了三题,但是感觉都是简单题,基本完成了pediy18-10,但是最后的shellcode执行上遇到了一点问题没有解决。其中有一道题,跟国赛中遇到的一题,让我很深的认识到base64加密算法的重要性。

分析

在IDA中打开,查看main函数,从最后的strcmp可以猜到是输入一个字符串,然后处理一下再与已知明文对比。
攻防世界-RE-ReverseMe-120(主要是对Base64再深入熟悉一下)_第1张图片
虽然有很多垃圾指令,但是通过动态调试可以知道哪些操作是有用的。动态调试得知关键代码在此
攻防世界-RE-ReverseMe-120(主要是对Base64再深入熟悉一下)_第2张图片
这里本来不熟悉,一查得知是base64解密。不得不拍拍脑袋。结合main函数里最后的处理,将you_know_how_to_remove_junk_code与0x25进行异或之后,再进行base64加密即可得到flag。
这里关键是想要个人总结一下对base64特征的识别。

总结

base64正向加密,每三个字节处理变成四个字节,生成一个长字节,再从这个长字节中查四次表生成对应的四个字符。反过来就是先将4个字符进行查表转化成四个字节,然后再四变三。具体的细节就不讨论了,特征应该是如此。对于base系列加密解密,查表与字节变换是核心,非常简单,以后应该留心不能再识别不出来了。

明日计划

  1. 攻防世界继续
  2. 接触Pediy18-11

你可能感兴趣的:(学习记录,逆向工程)