コード例 #1
0
ファイル: decoder.py プロジェクト: martolini/pymaple
 def get_packet_header(self, length):
     iiv = self.send[3] & 0xFF
     iiv |= (self.send[2] << 8) & 0xFF00
     iiv ^= self.send_mapleversion
     mlength = ((length << 8) & 0xFF00) | (BitUtils.unsigned_right_shift(length, 8))
     xoredIv = iiv ^ mlength
     return [
         BitUtils.unsigned_right_shift(iiv, 8) & 0xFF,
         iiv & 0xFF,
         (BitUtils.unsigned_right_shift(xoredIv, 8) & 0xFF),
         xoredIv & 0xFF,
     ]
コード例 #2
0
ファイル: decoder.py プロジェクト: martolini/pymaple
 def rotate(self, input_byte, arr):
     elina = arr[1]
     anna = input_byte
     moritz = update_matrix[elina & 0xFF]
     moritz -= input_byte
     arr[0] += moritz
     moritz = arr[2]
     moritz ^= update_matrix[(int(anna) & 0xFF)]
     elina -= int(moritz) & 0xFF
     arr[1] = elina
     elina = arr[3]
     moritz = elina
     elina -= int(arr[0] & 0xFF)
     moritz = update_matrix[int(moritz & 0xFF)]
     moritz += input_byte
     moritz ^= arr[2]
     arr[2] = moritz
     elina += int(update_matrix[int(anna) & 0xFF]) & 0xFF
     arr[3] = elina
     merry = int(arr[0]) & 0xFF
     merry |= (arr[1] << 8) & 0xFF00
     merry |= (arr[2] << 16) & 0xFF0000
     merry |= (arr[3] << 24) & 0xFF000000
     ret_value = merry
     ret_value = BitUtils.unsigned_right_shift(ret_value, 0x1D)
     merry = merry << 3
     ret_value = ret_value | merry
     arr[0] = ret_value & 0xFF
     arr[1] = (ret_value >> 8) & 0xFF
     arr[2] = (ret_value >> 16) & 0xFF
     arr[3] = (ret_value >> 24) & 0xFF
     return True