Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #python2
- function p2(){
- echo -e "from __future__ import print_function\nimport re\nimport collections\nimport unicodedata\n\nclass BitReader:\n\n def __init__(self, bytes):\n self._bits = collections.deque()\n \n for byte in bytes:\n byte = ord(byte)\n for n in xrange(8):\n self._bits.append(bool((byte >> (7-n)) & 1))\n \n def getBit(self):\n return self._bits.popleft()\n \n def getBits(self, num):\n res = 0\n for i in xrange(num):\n res += self.getBit() << num-1-i\n return res\n \n def getByte(self):\n return self.getBits(8)\n \n def __len__(self):\n return len(self._bits)\n \nclass RingList:\n \n def __init__(self, length):\n self.__data__ = collections.deque()\n self.__full__ = False\n self.__max__ = length\n \n def append(self, x):\n if self.__full__:\n self.__data__.popleft()\n self.__data__.append(x)\n if self.size() == self.__max__:\n self.__full__ = True\n \n def get(self):\n return self.__data__\n \n def size(self):\n return len(self.__data__)\n \n def maxsize(self):\n return self.__max__\n \n def __getitem__(self, n):\n if n >= self.size():\n return None\n return self.__data__[n]\n\nfpos=8568\nfend=8788\nfhandle=file('storage/shared/Download/rom-0')\nfhandle.seek(fpos)\nchunk=\"*\"\namount=221\nwhile fpos < fend:\n if fend-fpos < amount:\n amount = amount\n data = fhandle.read(amount)\n fpos += len(data)\n \nreader = BitReader(data)\nresult = ''\n \nwindow = RingList(2048)\n \nwhile True:\n bit = reader.getBit()\n if not bit:\n char = reader.getByte()\n result += chr(char)\n window.append(char)\n else:\n bit = reader.getBit()\n if bit:\n offset = reader.getBits(7)\n if offset == 0:\n break\n else:\n offset = reader.getBits(11)\n \n lenField = reader.getBits(2)\n if lenField < 3:\n lenght = lenField + 2\n else:\n lenField <<= 2\n lenField += reader.getBits(2)\n if lenField < 15:\n lenght = (lenField & 0x0f) + 5\n else:\n lenCounter = 0\n lenField = reader.getBits(4)\n while lenField == 15:\n lenField = reader.getBits(4)\n lenCounter += 1\n lenght = 15*lenCounter + 8 + lenField\n \n for i in xrange(lenght):\n char = window[-offset]\n result += chr(char)\n window.append(char)\n\ndef filter_non_printable(str):\n return ''.join([c for c in str if ord(c) > 31 or ord(c) == 9])\n\ndef regex(path, text):\n match = re.search(path, text)\n if match:\n return match.group()\n else:\n return None\nresult = filter_non_printable(result).decode('unicode_escape').encode('ascii','ignore');\n\nif 'TP-LINK' in result:\n result = ''.join(result.split()).split('TP-LINK', 1)[0] + 'TP-LINK';\n result = result.replace(\"TP-LINK\", \"\")\n result = result[1:]\n\nif 'ZTE' in result:\n result = ''.join(result.split()).split('ZTE', 1)[0] + 'ZTE';\n result = result.replace(\"ZTE\", \"\")\n result = result[1:]\n\nif 'tc160' in result:\n result = ''.join(result.split()).split('tc160', 1)[0] + 'tc160';\n result = result.replace(\"tc160\", \"\")\n result = result[1:]\n \nprint (('Router Password is: {0}').format(result))" > decoder.py && python2 decoder.py
- }
- #python3
- function p3(){
- echo -e "import re\nimport collections\n\nclass BitReader:\n\n def __init__(self, bytes):\n self._bits = collections.deque()\n \n for byte in bytes:\n byte = byte\n for n in range(8):\n self._bits.append(bool((byte >> (7-n)) & 1))\n \n def getBit(self):\n return self._bits.popleft()\n \n def getBits(self, num):\n res = 0\n for i in range(num):\n res += self.getBit() << num-1-i\n return res\n \n def getByte(self):\n return self.getBits(8)\n \n def __len__(self):\n return len(self._bits)\n \nclass RingList:\n \n def __init__(self, length):\n self.__data__ = collections.deque()\n self.__full__ = False\n self.__max__ = length\n \n def append(self, x):\n if self.__full__:\n self.__data__.popleft()\n self.__data__.append(x)\n if self.size() == self.__max__:\n self.__full__ = True\n \n def get(self):\n return self.__data__\n \n def size(self):\n return len(self.__data__)\n \n def maxsize(self):\n return self.__max__\n \n def __getitem__(self, n):\n if n >= self.size():\n return None\n return self.__data__[n]\n\nfpos = 8568\nfend = 8788\nfhandle = open('storage/shared/Download/rom-0', 'rb')\nfhandle.seek(fpos)\nchunk = b\"*\"\namount = 221\nwhile fpos < fend:\n if fend - fpos < amount:\n amount = amount\n data = fhandle.read(amount)\n fpos += len(data)\n \nreader = BitReader(data)\nresult = ''\n \nwindow = RingList(2048)\n \nwhile True:\n bit = reader.getBit()\n if not bit:\n char = reader.getByte()\n result += chr(char)\n window.append(char)\n else:\n bit = reader.getBit()\n if bit:\n offset = reader.getBits(7)\n if offset == 0:\n break\n else:\n offset = reader.getBits(11)\n \n lenField = reader.getBits(2)\n if lenField < 3:\n length = lenField + 2\n else:\n lenField <<= 2\n lenField += reader.getBits(2)\n if lenField < 15:\n length = (lenField & 0x0f) + 5\n else:\n lenCounter = 0\n lenField = reader.getBits(4)\n while lenField == 15:\n lenField = reader.getBits(4)\n lenCounter += 1\n length = 15 * lenCounter + 8 + lenField\n \n for i in range(length):\n char = window[-offset]\n result += chr(char)\n window.append(char)\n\ndef filter_non_printable(string):\n return ''.join([c for c in string if ord(c) > 31 or ord(c) == 9])\n\ndef regex(path, text):\n match = re.search(path, text)\n if match:\n return match.group()\n else:\n return None\n\nresult = filter_non_printable(result).encode('ascii', 'ignore').decode('unicode_escape')\n\nif 'TP-LINK' in result:\n result = ''.join(result.split()).split('TP-LINK', 1)[0] + 'TP-LINK'\n result = result.replace(\"TP-LINK\", \"\")\n result = result[1:]\n\nif 'ZTE' in result:\n result = ''.join(result.split()).split('ZTE', 1)[0] + 'ZTE'\n result = result.replace(\"ZTE\", \"\")\n result = result[1:]\n\nif 'tc160' in result:\n result = ''.join(result.split()).split('tc160', 1)[0] + 'tc160'\n result = result.replace(\"tc160\", \"\")\n result = result[1:]\n \nprint (('Router Password is: {0}').format(result))" > decoder.py && python3 decoder.py
- }
- clear
- echo "# Python Version :"
- echo "# 2"
- echo "# 3"
- read c
- if [[ "$c" = "2" ]]; then
- p2
- fi
- if [[ "$c" = "3" ]]; then
- p3
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement