通常以單一的XOR作為Key,很容易就被發現了。
因此發展另一概念:
1. 以Content的頭或尾作為第一把XOR Key
2. 用這把Key去XOR,產生的OUTPUT作為下一個Byte的Key
PoC Python Code
a = [0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]
key = a[-1]
e = []
for i in range(len(a)):
out = a[i] ^ key
e.append(out)
key = out
print "Encoded Bytes: ", e
d = []
for i in range(len(e)-1, 0, -1):
d.append(e[i] ^ e[i-1])
d.append(e[0] ^ d[0])
d.reverse()
print "Decoded Bytes: ", d
沒有留言:
張貼留言