diff --git a/myRamses.py b/myRamses.py index fd93c77..cb0d6cd 100644 --- a/myRamses.py +++ b/myRamses.py @@ -453,43 +453,40 @@ class RamsesFactory(object): '''去除遮罩 0x64 0x65 0x66 0x67''' ret = b'' flag = False - sign = [100,101,102,103] + sign = [ b'\x64', b'\x65', b'\x66', b'\x67' ] buf = byt - blen = len(buf) + blen = len(buf) for i in range(blen): - # print(f" {i} == {buf[i]}") - if flag == False and buf[i] == 64: - if buf[i+1] in sign: - i-=1 + if flag == False and buf[i:i+1] == b'\x40' : + if buf[i+1:i+2] in sign: flag = True + else: + ret = ret + buf[i:i+1] continue - if flag == False and buf[i] != 64: + if flag == False and buf[i:i+1] != b'\x40': + ret = ret + buf[i:i+1] continue - if flag == True and buf[i] == 100: - buf = buf[:i-1] + b'\x40' + buf[i:] # buf 拼接法 - # ret = ret + b'\x40' + if flag == True and buf[i:i+1] == b'\x64': + ret = ret + b'\x40' flag = False continue - if flag == True and buf[i] == 101: - buf = buf[:i-1] + b'\x23' + buf[i:] # buf 拼接法 - # ret = ret + b'\x23' + if flag == True and buf[i:i+1] == b'\x65': + ret = ret + b'\x23' flag = False continue - if flag == True and buf[i] == 102: - print( f" {i} 102 -11 ====== {buf[i]}") - buf = buf[:i-1] + b'\x11' + buf[i:] # buf 拼接法 - # ret = ret + b'\x11' + if flag == True and buf[i:i+1] == b'\x66': + ret = ret + b'\x11' flag = False continue - if flag == True and buf[i] == 103: - buf = buf[:i-1] + b'\x13' + buf[i:] # buf 拼接法 - # ret = ret + b'\x13' + if flag == True and buf[i:i+1] == b'\x67': + ret = ret + b'\x13' flag = False continue # self.data_after_remove_mask = buf - return buf + return ret pass + def decode_ip_buf(self, buf): assert self.typ == RamsesType.SAMIP tmpbuf = buf