XOR
拖进 ida 64 位,F5 反汇编
发现就是将逐个字符,与前一个字符异或,最终与 global 中的进行比较。
先找到 global 中对应的内容,选中,shift加e提取
'k',0Ch,'w&O.@',11h,'x',0Dh,'Z;U',11h,'p',19h,'F',1Fh,'v"M#D',0Eh,'g',6,'h',0Fh,'G2O',0
然后编写解密脚本
arr1 = [102, 10, 107, 12, 119, 38, 79, 46, 64, 17, 120, 13, 90, 59, 85, 17, 112, 25, 70, 31, 118, 34, 77, 35, 68, 14, 103, 6, 104, 15, 71, 50, 79, 0]
arr2 = [102]
print(len(arr1))
for i in range(1, len(arr1)):
arr2.append(arr1[i] ^ arr1[i - 1])
for i in range(0, len(arr1)):
print(chr(arr2[i]), end='')