vaggin
натрахал ядро уже, ща профили сдлеаю
Please open Telegram to view this post
VIEW IN TELEGRAM
var IP = "127.0.0.1";
var PORT = 22023;
var SETEP = 0x741084; // InnerNetClient.SetEndpoint
var GETCONN = 0x722214; // AmongUsClient.GetConnectionData
var UDPSEND = 0xE8772C; // UdpConnection.Send
function lg(m) { console.log("[amng] " + m); }
function js(p) {
if (p.isNull()) return "";
var n = Memory.readS32(p.add(16));
if (n <= 0 || n > 64) return "";
return Memory.readUtf16String(p.add(20), n);
}
function redirect(sockaddr) {
if (sockaddr.isNull()) return false;
var fam = Memory.readU16(sockaddr);
if (fam !== 2) return false; // AF_INET only
var p = (Memory.readU8(sockaddr.add(2)) << 8) | Memory.readU8(sockaddr.add(3));
if (p !== 22023 && p !== 22024) return false;
// patch in place: ip + port
Memory.writeU8(sockaddr.add(2), (PORT >> 8) & 255);
Memory.writeU8(sockaddr.add(3), PORT & 255);
var parts = IP.split(".");
for (var i = 0; i < 4; i++) Memory.writeU8(sockaddr.add(4 + i), parseInt(parts[i]));
return true;
}
function hookLibc() {
var libc = Process.findModuleByName("libc.so");
["connect", "sendto", "sendmsg"].forEach(function(n) {
var a = Module.findExportByName("libc.so", n);
if (a === null) return;
Interceptor.attach(a, {
onEnter: function(ac) {
if (n === "connect" && redirect(ac[1])) lg("redirect connect");
if (n === "sendto" && redirect(ac[4])) lg("redirect sendto");
}
});
});
lg("libc hook done");
}
function hookIl2cpp(base) {
var nw = Module.findExportByName("libil2cpp.so", "il2cpp_string_new");
var setep = base.add(SETEP);
Interceptor.attach(setep, {
onEnter: function(ac) {
var old = js(ac[1]);
lg("SetEndpoint " + old + ":" + ac[2].toInt32());
if (nw !== null) {
var ns = Memory.readPointer(Memory.readPointer(nw));
var f = new NativeFunction(nw, "pointer", ["pointer"]);
var s = f(Memory.allocUtf8String(IP));
this.context.x1 = s;
this.context.x2 = ptr(PORT);
}
}
});
Interceptor.attach(base.add(GETCONN), {
onLeave: function(rv) {
lg("GetConnectionData ret=" + rv);
}
});
Interceptor.attach(base.add(UDPSEND), {
onEnter: function(ac) { lg("UdpConnection.Send"); }
});
lg("il2cpp hooks at " + base);
}
function boot() {
lg("boot " + IP + ":" + PORT);
hookLibc();
var b = Module.findBaseAddress("libil2cpp.so");
if (b !== null) {
hookIl2cpp(b);
return;
}
var t = setInterval(function() {
var q = Module.findBaseAddress("libil2cpp.so");
if (q !== null) { clearInterval(t); hookIl2cpp(q); }
}, 500);
}
setImmediate(boot);
frida script 16.7.19 \ among us v2020.9.9
vaggin
сливать исходный код noomiclone?
хотя мне там ещё чуть чуть дописать прожект надо