-
-
未解决
复杂表达式位异或加密算法的解密算法
-
发表于:
2020-11-23 03:40
1936
-
最近遇到了一个文件,采用了复杂表达式位异或加密算法,伪代码如下
int encode(char data ,int length)
{
//申请虚拟内存,加密后存放到lpAddress
lpAddress= mollac(length);
//开始逐位递增进行位异或运算
do
{
(BYTE )lpAddress = (((BYTE )(data) ^ ((BYTE )data + 0x12) ^ 0x13) + 0x14) ^ 0x15;
data++;
length--;
}while(length);
//写出文件代码略
}
简化后表达式如下
((data ^(data+0x12)^0x13)+0x14)^0x15
解密算法逐层去括号,最终会得到:
1 ((data ^(data+0x12)^0x13)+0x14)^0x15
2 (data ^(data+0x12)^0x13)+0x14
3 data ^(data+0x12)^0x13
4 data ^(*data+0x12)
基础知识不牢,请问下一步该如何解密呢?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)