• python读取解析pcap包


    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()
  • 相关阅读:
    NOIP1996 第三题
    vijos P1071
    USACO 2.3
    NOIP2006 第二题(change)
    NOIP2006 第二题
    NOIP2005 第三题
    Building Block 动态规划
    砝码问题 Weight
    装箱问题(Packing DP)
    算法第二章上机实践报告
  • 原文地址:https://www.cnblogs.com/wangyuxing/p/16003488.html
Copyright © 2020-2023  润新知