T4.exe :Base64
发现程序是对str先进行异或,再将str,str1,len(str)传入sub_455A94中, 最后是与base64字符串进行比较,猜测sub_455A94这个函数是base64编码,所以我们要做的就是对这串字符串进行base64解密和异或操作
成功!
更一般性的解法:假如我们不知道那一串是base64编码后的字符串,该怎么办呢?
那只能从sub_455A94这个函数入手了,查看sub_455A94
发现也看不懂,但是我们知道肯定是某种编码或加密,所以我们就要找到编码或加密的字典.
然后我们可以发现off_52900这个变量频繁出现,猜测可能就是相关的字典
进入该变量查看:
发现一长串字符串
拿到网上进行搜索
发现就是base64编码,就可以进行逆向反推了
总结:
T5.exe :Base64字典变了
同上步骤,发现off_52900这个变量发生变化
所以要进行替换,把此时的字符串的字典换成上一题的字典,然后用上一题的脚本进行解密即可
BASE64原理:
具体转换步骤
第1步,将待转换的字符串每三个字节分为一组,每个字节占8bit,那么共有24个二进制位。
第2步,将上面的24个二进制位每6个一组,共分为4组。
第3步,在每组前面添加两个0,每组由6个变为8个二进制位,总共32个二进制位,即四个字节。
第4步,根据Base64编码对照表获得对应的值。