50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
#!/bin/python
|
|
|
|
import sys, getopt, os
|
|
|
|
def main(argv):
|
|
try:
|
|
opts, args = getopt.getopt(argv,"hc1:c2:c3:",["comp1=","comp2=","comp3="])
|
|
except getopt.GetoptError:
|
|
print ('test.py -i <inputfile> -a <address> -p <port>')
|
|
sys.exit(2)
|
|
for opt, arg in opts:
|
|
if opt == '-h':
|
|
print ('test.py -i <inputfile> -a <address> -p <port>')
|
|
sys.exit()
|
|
elif opt in ("-c1","--comp1"):
|
|
comp1 = str(arg)
|
|
elif opt in ("-c2","--comp2"):
|
|
comp2 = str(arg)
|
|
elif opt in ("-c3","--comp3"):
|
|
comp3 = str(arg)
|
|
|
|
|
|
|
|
|
|
>>> a = "a133efb38766"
|
|
>>> b = "a0a1a2a3a5a7"
|
|
>>> a.encode().hex()
|
|
'613133336566623338373636'
|
|
>>> bytes1 =
|
|
|
|
|
|
>>> bytes2 = bytes.fromhex( b.encode("utf-8").hex())
|
|
>>> xored = bytes( b1 ^ b2 for b1,b2 in zip(bytes1,bytes2))
|
|
>>> xored.hex()
|
|
'000152020454030059025701'
|
|
|
|
>>> for c,d in zip(bytes1,bytes2):
|
|
... e.append( ( c ^ d ) )
|
|
...
|
|
>>> e
|
|
bytearray(b'\x00\x01R\x02\x04T\x03\x00Y\x02W\x01')
|
|
>>> e.hex()
|
|
'000152020454030059025701'
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv[1:])
|
|
|
|
|