UNPKG

frida-il2cpp-bridge-my

Version:

(my:Support IOS)Frida module to dump, manipulate and hijack any IL2CPP application at runtime with a high level of abstraction.

49 lines (48 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Accessor = exports.filterAndMap = void 0; const fastest_levenshtein_1 = require("fastest-levenshtein"); const console_1 = require("./console"); exports.filterAndMap = Symbol(); class Accessor { constructor(keyClashProtection = false) { return new Proxy(this, { set(target, key, value) { if (typeof key == "string") { let name = key; if (keyClashProtection) { let count = 0; while (Reflect.has(target, name)) name = key + "_" + ++count; } Reflect.set(target, name, value); } else { Reflect.set(target, key, value); } return true; }, get(target, key) { if (typeof key != "string" || Reflect.has(target, key)) return Reflect.get(target, key); const closestMatch = fastest_levenshtein_1.closest(key, Object.keys(target)); if (closestMatch) console_1.raise(`Couldn't find property "${key}", did you mean "${closestMatch}"?`); else console_1.raise(`Couldn't find property "${key}"`); } }); } *[Symbol.iterator]() { for (const value of Object.values(this)) yield value; } [exports.filterAndMap](filter, map) { const accessor = new Accessor(); for (const [key, value] of Object.entries(this)) if (filter(value)) accessor[key] = map(value); return accessor; } } exports.Accessor = Accessor;