mirror of https://github.com/Diazole/dumper.git
Closes #2; Fix TextEncoder error
This commit is contained in:
parent
0f39c674b4
commit
a2bb42c2db
|
@ -1,5 +1,80 @@
|
||||||
const KNOWN_DYNAMIC_FUNC = ['ulns', 'cwkfcplc', 'dnvffnze', 'kgaitijd', 'polorucp'];
|
const KNOWN_DYNAMIC_FUNC = ['ulns', 'cwkfcplc', 'dnvffnze', 'kgaitijd', 'polorucp'];
|
||||||
|
|
||||||
|
function TextEncoder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEncoder.prototype.encode = function (string) {
|
||||||
|
var octets = [];
|
||||||
|
var length = string.length;
|
||||||
|
var i = 0;
|
||||||
|
while (i < length) {
|
||||||
|
var codePoint = string.codePointAt(i);
|
||||||
|
var c = 0;
|
||||||
|
var bits = 0;
|
||||||
|
if (codePoint <= 0x0000007F) {
|
||||||
|
c = 0;
|
||||||
|
bits = 0x00;
|
||||||
|
} else if (codePoint <= 0x000007FF) {
|
||||||
|
c = 6;
|
||||||
|
bits = 0xC0;
|
||||||
|
} else if (codePoint <= 0x0000FFFF) {
|
||||||
|
c = 12;
|
||||||
|
bits = 0xE0;
|
||||||
|
} else if (codePoint <= 0x001FFFFF) {
|
||||||
|
c = 18;
|
||||||
|
bits = 0xF0;
|
||||||
|
}
|
||||||
|
octets.push(bits | (codePoint >> c));
|
||||||
|
c -= 6;
|
||||||
|
while (c >= 0) {
|
||||||
|
octets.push(0x80 | ((codePoint >> c) & 0x3F));
|
||||||
|
c -= 6;
|
||||||
|
}
|
||||||
|
i += codePoint >= 0x10000 ? 2 : 1;
|
||||||
|
}
|
||||||
|
return octets;
|
||||||
|
}
|
||||||
|
|
||||||
|
function TextDecoder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
TextDecoder.prototype.decode = function (octets) {
|
||||||
|
var string = "";
|
||||||
|
var i = 0;
|
||||||
|
while (i < octets.length) {
|
||||||
|
var octet = octets[i];
|
||||||
|
var bytesNeeded = 0;
|
||||||
|
var codePoint = 0;
|
||||||
|
if (octet <= 0x7F) {
|
||||||
|
bytesNeeded = 0;
|
||||||
|
codePoint = octet & 0xFF;
|
||||||
|
} else if (octet <= 0xDF) {
|
||||||
|
bytesNeeded = 1;
|
||||||
|
codePoint = octet & 0x1F;
|
||||||
|
} else if (octet <= 0xEF) {
|
||||||
|
bytesNeeded = 2;
|
||||||
|
codePoint = octet & 0x0F;
|
||||||
|
} else if (octet <= 0xF4) {
|
||||||
|
bytesNeeded = 3;
|
||||||
|
codePoint = octet & 0x07;
|
||||||
|
}
|
||||||
|
if (octets.length - i - bytesNeeded > 0) {
|
||||||
|
var k = 0;
|
||||||
|
while (k < bytesNeeded) {
|
||||||
|
octet = octets[i + k + 1];
|
||||||
|
codePoint = (codePoint << 6) | (octet & 0x3F);
|
||||||
|
k += 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
codePoint = 0xFFFD;
|
||||||
|
bytesNeeded = octets.length - i;
|
||||||
|
}
|
||||||
|
string += String.fromCodePoint(codePoint);
|
||||||
|
i += bytesNeeded + 1;
|
||||||
|
}
|
||||||
|
return string
|
||||||
|
}
|
||||||
|
|
||||||
function containsLib(library){
|
function containsLib(library){
|
||||||
return Process.getModuleByName(library);
|
return Process.getModuleByName(library);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue