import struct
class FileConvert(object):
''' test python file'''
def __init__(self):
self.aa = 0
self.bb = 0
def convertPcapToHex(self,debugFlg=0):
infile = open("test.pcap",'rb')
outfile = open("testRslt.txt",'w')
a = int(0)
while True:
a = int(0)
a = infile.read(4)
#print(type(a))
#print(len(a))
dataSaveNum = len(a)
if not a:
break
if(len(a) == 4):
pass
elif(len(a) != 0):
loopTime = 4 - len(a)
while (loopTime > 0):
loopTime = loopTime - 1
a = a + b'\x00'
z = struct.unpack('i',a)
unNeg = z[0] & 0xFFFFFFFF #负数的验证
if(dataSaveNum == 4):
outfile.write("%08x"%unNeg)
dataSaveNum = 0
while(dataSaveNum > 0):
saveData = unNeg&0xFF
#保留单个字节
#outfile.write("%08x"%unNeg)
unNeg = unNeg >> 8
dataSaveNum = dataSaveNum - 1
outfile.write("%02x"%saveData)
if(debugFlg == 1):
outfile.write("\n")
infile.close()
outfile.close()
def convertHexToPcap(self):
infile = open("testRslt.txt",'r')
outfile = open("another.pcap",'wb')
#for a in infile.read():
while True:
a = infile.read(8)
#print(type(a))
#print(b);
if not a:
break
if(len(a)!= 0):
#16进制转换10进制数
b=int(a,16)
covertValue = struct.pack("L",b)
outfile.write(covertValue)
#outfile.write("%s"%a)
#outfile.write("\n")
infile.close()
outfile.close()
if __name__ == '__main__':
fileCvrt = FileConvert()
fileCvrt.convertPcapToHex()
fileCvrt.convertHexToPcap()