File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 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 )
You can’t perform that action at this time.
0 commit comments