mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-12-13 18:21:51 +00:00
Remove accessNestedPropertyReverse
Obfuscation is useless in an open source game.
This commit is contained in:
parent
04e96e0d68
commit
a3d82cc46a
@ -2,21 +2,20 @@
|
|||||||
import { Application } from "../application";
|
import { Application } from "../application";
|
||||||
/* typehints:end */
|
/* typehints:end */
|
||||||
|
|
||||||
import { sha1, CRC_PREFIX, computeCrc } from "./sensitive_utils.encrypt";
|
|
||||||
import { createLogger } from "./logging";
|
|
||||||
import { FILE_NOT_FOUND } from "../platform/storage";
|
import { FILE_NOT_FOUND } from "../platform/storage";
|
||||||
import { accessNestedPropertyReverse } from "./utils";
|
import { compressObject, decompressObject } from "../savegame/savegame_compressor";
|
||||||
|
import { asyncCompressor, compressionPrefix } from "./async_compression";
|
||||||
import { IS_DEBUG, globalConfig } from "./config";
|
import { IS_DEBUG, globalConfig } from "./config";
|
||||||
import { ExplainedResult } from "./explained_result";
|
import { ExplainedResult } from "./explained_result";
|
||||||
import { decompressX64, compressX64 } from "./lzstring";
|
import { createLogger } from "./logging";
|
||||||
import { asyncCompressor, compressionPrefix } from "./async_compression";
|
import { compressX64, decompressX64 } from "./lzstring";
|
||||||
import { compressObject, decompressObject } from "../savegame/savegame_compressor";
|
import { CRC_PREFIX, computeCrc, sha1 } from "./sensitive_utils.encrypt";
|
||||||
|
|
||||||
import debounce from "debounce-promise";
|
import debounce from "debounce-promise";
|
||||||
|
|
||||||
const logger = createLogger("read_write_proxy");
|
const logger = createLogger("read_write_proxy");
|
||||||
|
|
||||||
const salt = accessNestedPropertyReverse(globalConfig, ["file", "info"]);
|
const salt = globalConfig.info.file;
|
||||||
|
|
||||||
// Helper which only writes / reads if verify() works. Also performs migration
|
// Helper which only writes / reads if verify() works. Also performs migration
|
||||||
export class ReadWriteProxy {
|
export class ReadWriteProxy {
|
||||||
|
|||||||
@ -40,19 +40,6 @@ export function randomInt(start, end) {
|
|||||||
return Math.floor(Math.random() * (end - start + 1) + start);
|
return Math.floor(Math.random() * (end - start + 1) + start);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Access an object in a very annoying way, used for obsfuscation.
|
|
||||||
* @param {any} obj
|
|
||||||
* @param {Array<string>} keys
|
|
||||||
*/
|
|
||||||
export function accessNestedPropertyReverse(obj, keys) {
|
|
||||||
let result = obj;
|
|
||||||
for (let i = keys.length - 1; i >= 0; --i) {
|
|
||||||
result = result[keys[i]];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chooses a random entry of an array
|
* Chooses a random entry of an array
|
||||||
* @template T
|
* @template T
|
||||||
@ -406,7 +393,7 @@ export function makeButton(parent, classes = [], innerHTML = "") {
|
|||||||
*/
|
*/
|
||||||
export function removeAllChildren(elem) {
|
export function removeAllChildren(elem) {
|
||||||
if (elem) {
|
if (elem) {
|
||||||
var range = document.createRange();
|
const range = document.createRange();
|
||||||
range.selectNodeContents(elem);
|
range.selectNodeContents(elem);
|
||||||
range.deleteContents();
|
range.deleteContents();
|
||||||
}
|
}
|
||||||
@ -618,7 +605,7 @@ export function fillInLinkIntoTranslation(translation, link) {
|
|||||||
* @param {string} text
|
* @param {string} text
|
||||||
*/
|
*/
|
||||||
export function generateFileDownload(filename, text) {
|
export function generateFileDownload(filename, text) {
|
||||||
var element = document.createElement("a");
|
const element = document.createElement("a");
|
||||||
element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text));
|
element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text));
|
||||||
element.setAttribute("download", filename);
|
element.setAttribute("download", filename);
|
||||||
|
|
||||||
@ -634,7 +621,7 @@ export function generateFileDownload(filename, text) {
|
|||||||
* @param {string} acceptedType
|
* @param {string} acceptedType
|
||||||
*/
|
*/
|
||||||
export function startFileChoose(acceptedType = ".bin") {
|
export function startFileChoose(acceptedType = ".bin") {
|
||||||
var input = document.createElement("input");
|
const input = document.createElement("input");
|
||||||
input.type = "file";
|
input.type = "file";
|
||||||
input.accept = acceptedType;
|
input.accept = acceptedType;
|
||||||
|
|
||||||
|
|||||||
@ -3,16 +3,6 @@ import { compressX64 } from "../core/lzstring";
|
|||||||
import { computeCrc } from "../core/sensitive_utils.encrypt";
|
import { computeCrc } from "../core/sensitive_utils.encrypt";
|
||||||
import { compressObject } from "../savegame/savegame_compressor";
|
import { compressObject } from "../savegame/savegame_compressor";
|
||||||
|
|
||||||
function accessNestedPropertyReverse(obj, keys) {
|
|
||||||
let result = obj;
|
|
||||||
for (let i = keys.length - 1; i >= 0; --i) {
|
|
||||||
result = result[keys[i]];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
const salt = accessNestedPropertyReverse(globalConfig, ["file", "info"]);
|
|
||||||
|
|
||||||
self.addEventListener("message", event => {
|
self.addEventListener("message", event => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const { jobId, job, data } = event.data;
|
const { jobId, job, data } = event.data;
|
||||||
@ -32,7 +22,7 @@ function performJob(job, data) {
|
|||||||
const optimized = compressObject(data.obj);
|
const optimized = compressObject(data.obj);
|
||||||
const stringified = JSON.stringify(optimized);
|
const stringified = JSON.stringify(optimized);
|
||||||
|
|
||||||
const checksum = computeCrc(stringified + salt);
|
const checksum = computeCrc(stringified + globalConfig.info.file);
|
||||||
return data.compressionPrefix + compressX64(checksum + stringified);
|
return data.compressionPrefix + compressX64(checksum + stringified);
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user