проблема с распаковкой gzip в node.js (неверная проверка заголовка) - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь расшифровать файл сохранения из игры.У меня уже есть рабочая версия этого в Python, но я не могу сделать это с библиотеками эквивалента в узле.

Это рабочий код Python:

import base64, gzip, os, zlib, struct

data = FileOpen(path) #returns file as ASCII
res = Xor(data,11)
fin = zlib.decompress(base64.b64decode(res.replace('-','+').replace('_','/').encode())[10:],-zlib.MAX_WBITS)
#fin is the decrypted string

Это то, что я пробовал с узлом, но zLib просто выбрасывает «проверку неверного заголовка»:

const fs = require('fs')
const zlib = require('zlib')
const xor = require('xor-crypt')
const { base64encode, base64decode } = require('nodejs-base64')

let data = fs.readFileSync(fPath + save).toString('ascii')

let res = xor(data,11)
let gzipd = Buffer.from(base64decode(res.replace('-','+').replace('_','/')).slice(0, -10))
let fin = zlib.inflateSync(gzipd).toString('utf-8')

проблема, скорее всего, заключается в библиотеке zlib, так как я не могу понять, почему дешифрование xor и base64 будет другим.У меня нет большого опыта работы с декомпрессией.

Вот пример чего-то, что я пытаюсь расшифровать (в ascii):

C?xBJJJJJJJJHTEBqheA::Ndrhlx]lHbYB\\X:DBXJEG92G^]JJJJ

Это означает «Привет, это тест», и когдаЯ расшифровываю его с помощью Python, он работает нормально.Кто-нибудь может понять, как расшифровать его с помощью узла?

...