Skip to content

Commit 2b157f6

Browse files
committed
Create xor_file.py
1 parent 219ee85 commit 2b157f6

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

xor_file.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#/bin/python
2+
# -*- coding: utf-8 -*-
3+
# xor file w/ byte array
4+
import sys
5+
6+
class xor():
7+
8+
def xor(self, orginal_file, new_file, xor_var):
9+
l = len(xor_var)
10+
data = bytearray(open(orginal_file, 'rb').read())
11+
result = bytearray((
12+
(data[i] ^ xor_var[i % l]) for i in range(0,len(data))
13+
))
14+
localFile = open(new_file, 'w')
15+
localFile.write(result)
16+
localFile.close()
17+
18+
def hexToByte(self, hexStr):
19+
bytes = []
20+
hexStr = ''.join( hexStr.split(" ") )
21+
for i in range(0, len(hexStr), 2):
22+
bytes.append( chr( int (hexStr[i:i+2], 16 ) ) )
23+
return bytes
24+
25+
26+
if __name__ == '__main__':
27+
try:
28+
transform = xor()
29+
orginal_file = sys.argv[1]
30+
new_file = sys.argv[2]
31+
bytes = transform.hexToByte(sys.argv[3])
32+
xor_var = bytearray(bytes)
33+
transform.xor(orginal_file, new_file, xor_var)
34+
except IndexError:
35+
print('Usage: xor.py <input_file> <output_file> <"XOR hex bytes">')
36+
sys.exit(1)

0 commit comments

Comments
 (0)