SMP文件的异或XOR

查看 17|回复 0
作者:KeKeBB0609   
坛友发布了一个悬赏,需求是将SMP文件转换MP3,虽然我已给出成品但我觉得还是分享一下方法。
这里仅针对于简单的加密。
由于异或操作是可逆的,那我们可以通过使用相同的密钥来进行异或操作解密数据。
这个是文件内容


image.png (129.69 KB, 下载次数: 0)
下载附件
2024-5-29 11:31 上传

我们可以看到文件头部为CF 4C 51 8B 86 08 62 88
一般MP3格式文件的头部为49 44 33 03 00 00 00 00
看到连续的0了吧49 44 33 03 00 00 00 00
我们先来解释一下异或操作是什么
异或运算是对于二进制进行运算的所以在运算时是对二进制位进行操作
异或操作是对于两个二进制位进行对比,相同则为0,不同则为1
那么我们就得0与未知数X的二进制值对比都等于X,所以,参考正常的MP3文件的头部值有00,我们就可以得出秘钥为86 08 62 88
那么我们就可以根据得到的秘钥进行异或操作
以下是操作方法:
一、将16进制数转换成二进制数:
CF->11001111
4C->01001100
51->01010001
8B->10001011
86->10000110
08->00001000
62->01100010
88->10001000
密文十六进制:CF 4C 51 8B 86 08 62 88->密文二进制:11001111 01001100 01010001 10001011 10000110 00001000 01100010 10001000
秘钥十六进制:86 08 62 88->秘钥二进制:10000110 00001000 01100010 10001000
二:将密文二进制与秘钥二进制进行对比:
密文:CF->11001111
秘钥:86->10000110
通过对比得出[table][tr][td] 十六进制值

操作, 文件

您需要登录后才可以回帖 登录 | 立即注册

返回顶部