逆向学习DAY2

本文介绍了在逆向工程中遇到的Base64解密问题,通过分析程序的字节码和函数行为,确定了解密方法。在T4.exe中,先对字符串进行异或,再进行Base64解密。而在T5.exe中,Base64字典发生了变化,需要使用之前解密的字典进行替换,以完成解密。总结了解密过程和Base64编码的四个步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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编码对照表获得对应的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值