async function main() {
function getFunc(_0x3bc812, _0x530fbf, _0x3826f3, _0x5766aa) {
let _0x270e51 = Module.findExportByName(_0x3bc812, _0x530fbf);
return new NativeFunction(_0x270e51, _0x3826f3, _0x5766aa);
}
var malloc = getFunc("libc.so", "malloc", "pointer", ["int"])
function createTString(str)
{
var str_pointer = malloc(4)
var str_struct = malloc(str.length + 8)
str_pointer.writePointer(str_struct)
str_struct.writeInt(str.length)
ptr(parseInt(str_struct) + 4).writeInt(1)
ptr(parseInt(str_struct) + 8).writeUtf8String(str)
return str_pointer
}
function readTString(str)
{
if(!str.isNull()){
if(parseInt(str) != 0){
var pstr = str.readPointer()
if(!pstr.isNull()){
var strlen = pstr.readInt()
if(strlen > 0){
var strStart = parseInt(pstr) + 8
return ptr(strStart).readCString(strlen)
}
}
}
}
}
let chatTxt = createTString(" ");
let _0x17df51 = false;
let _0x388c11 = false;
let _0x54b591 = false;
let _0x227bf3 = false;
let _0x472c5c = false;
let _0x2b3bb5 = false;
let _0x83d9c = false;
let freeMounts = false;
let showAdm = false;
let _0x3a39bf = null;
let _0x58cc0e = null;
let _0x185793 = null;
let _0x3728c0 = false;
let _0x240299 = false;
let _0x58a400 = "off";
let _0x427a48 = "off";
let _0x48a23f = ["bow_walk"];
const _0x51b522 = ["body_castleguard.png", "body_farmer.png", "newbody19.png", "newbody10.png", "body_shadow.png", "classiciphone_mattbody1.png", "newbody15.png", "newbody6.png", "classiciphone_mattbody3.png", "dc8bit_body0.png", "rainspearbody-fixed.png", "newbody20.png", "newbody1.png", "newbody2.png", "newbody3.png", "newbody4.png", "newbody5.png", "newbody6.png", "newbody7.png", "newbody8.png", "newbody9.png", "newbody10.png", "newbody11.png", "newbody12.png", "newbody13.png", "newbody14.png", "newbody15.png", "newbody16.png", "newbody17.png", "newbody18.png", "newbody19.png", "newbody20.png", "newbody21.png", "newbody22.png", "newbody23.png"];
async function _0x40fede() {
var _0x11a75f = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN9TGraalVar11setVarValueERK7TString"), "void", ["pointer", "pointer"]);
_0x3a39bf = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN16TGUIScriptLoader14showMessageBoxERK7TStringS2_b"), "void", ["pointer", "pointer", "bool"]);
let _0x157c9b = createTString("bombs=99");
Interceptor.attach(Module.findExportByName("libqplay.so", "_ZN12TServerLevel8isOnWallEddb"), {
'cobj': null,
'onEnter': function (_0x5b5d7a) {
this.cobj = _0x5b5d7a[0];
},
'onLeave': function (_0x5339ed) {
if (_0x388c11) {
_0x5339ed.replace(0);
}
}
});
Interceptor.attach(Module.findExportByName("libqplay.so", "_ZN7TPlayer13getBombsCountEv"), {
'onEnter': function (_0x2f051c) {
if (_0x17df51) {
_0x11a75f(_0x2f051c[0], _0x157c9b);
}
_0x58cc0e = _0x2f051c[0];
}
});
let _0x19930b = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN7TPlayer5setHPEd"), "int", ["pointer", "double"]);
let _0x1b55e9 = 0;
let _0x18403b = null;
Interceptor.replace(Module.findExportByName("libqplay.so", "_ZN7TPlayer5setHPEd"), new NativeCallback((_0xa9ff0e, _0x339715) => {
if (_0x339715 != 3 && _0x58a400 == 'x2') {
_0x1b55e9 = _0x1b55e9 + 1;
if (_0x1b55e9 == 2) {
console.log("CONFUSER X2 handled");
_0x1b55e9 = 0;
if (_0x18403b != null) {
_0x4b361b(_0x18403b, 48, _0x49f4c4);
}
return 0;
}
}
if (_0x339715 != 3 && _0x58a400 == 'x3') {
_0x1b55e9 = _0x1b55e9 + 1;
if (_0x1b55e9 == 3) {
_0x1b55e9 = 0;
console.log("CONFUSER X3 handled");
if (_0x18403b != null) {
_0x4b361b(_0x18403b, 48, _0x49f4c4);
}
return 0;
}
}
return _0x19930b(_0xa9ff0e, _0x339715);
}, "int", ["pointer", "double"]));
let _0xe0dac9 = createTString(" clientside,-Games,notification,\"\"\"Personal uploads is disabled with this command try another custom.\"\",5,\"\"\"\",\"\"\"\",\"\"\"\"\"");
Interceptor.attach(Module.findExportByName("libqplay.so", "_ZN7TPlayer7setChatERK7TStringb"), {
'onEnter': function (_0x433970) {
let _0x1f7cca = false;
let msg = readTString(_0x433970[1]);
if (msg == undefined) {
return;
}
if (msg == '#') {
isIdentified();
}
if (_0x227bf3 == true) {
if (msg.includes('=')) {
if (msg.startsWith("ani=")) {
msg = msg.replace(".gani", '');
_0x48a23f.forEach(_0x380ffc => {
while (msg.includes(_0x380ffc)) {
msg = msg.replace(_0x380ffc, '');
}
});
}
_0x433970[1] = chatTxt;
if (msg.startsWith("head=") || msg.startsWith("body=")) {
_0x1f7cca = true;
if (msg.includes("personal")) {
if (_0x18403b != null) {
_0x4b361b(_0x18403b, 48, _0xe0dac9);
}
}
}
if (_0x1f7cca == false) {
_0x11a75f(_0x433970[0], createTString(msg));
}
}
}
}
});
let _0x1ab2be = createTString("hearts=3");
let _0x4285c = false;
let _0x1bf4d4 = 10;
Interceptor.attach(Module.findExportByName("libqplay.so", "_ZN7TPlayer4drawEPS_"), {
'onEnter': function (args) {
if (_0x54b591) {
_0x11a75f(args[0], _0x1ab2be);
}
_0x1bf4d4 = _0x1bf4d4 - 0.016;
if (_0x4285c == false && _0x1bf4d4 <= 0) {
_0x4285c = true;
}
if (_0x83d9c) {
_0x11a75f(args[0], _0x1759dd);
}
if (_0x185793 != null) {
_0x11a75f(args[0], _0x185793);
_0x185793 = null;
}
}
});
let _0x40c31c = false;
let _0x4b361b = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN7TClient22processIncomingPackageEiRK7TString"), "void", ["pointer", "int", "pointer"]);
Interceptor.replace(Module.findExportByName("libqplay.so", "_ZN7TClient22processIncomingPackageEiRK7TString"), new NativeCallback((_0x12fbcb, _0x4a8294, _0x32b84c) => {
if (_0x4a8294 == 48) {
_0x18403b = _0x12fbcb;
let _0x31600f = readTString(_0x32b84c);
if (_0x31600f && _0x31600f.includes("account=pc:45026852")) {
_0x32b84c = createTString(" clientside,-Games,profile,\"account=pc:45026852,ap=60,arrows=0,baddykillpoints=0,baddykills=0,baddystreak=0,birthday=--,bombs=18,canenterguildhouse=0,canenterplayerhouse=0,cansummon=0,charbody=body2.png,\"\"charcolors=black,black,black,black,black\"\",charhat=hat110.png,charhead=head330.png,charshield=shield150.png,charsword=sword1.png,country=0,ctfwins=0,deaths=0,eventwins=0,gender=female,idling=0,inmyhouse=0,isadmin=1,isonline=0,kills=0,killstreak=0,\"\"maritaldata=married,pc:45026852,Graal3022502,0,0,0,0,\"\"\"\"iidle,2,60,0,0,head330.png,body18.png,hat91.png,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",shield150.png,sword1.png,black,black,black,black,black\"\"\"\",\"\"\"\"iidle,2,49,0,0,head658.png,body17.png,hat44.png,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",avalonteamshield.png,glenn-heartsword1.png,red,red,red,red,red\"\"\"\"\"\",money=300000,\"\"nick=Lagger (Spar Angel 2008)\"\",\"\"offlinetime=was on 13928d ago\"\",\"\"onlinetime=2 h 53 m\"\",onlinevisibility=invis,ontag=0,paused=0,profileanimation=0,profilelanguage=0,sparlosses=0,sparstats=0-0,sparstreak=0,sparwins=214,spouseaccount=Graal3022502,spouseap=49,\"\"spousenick=[Youtuber] Chucky (los parranderos)\"\",\"\"statusmessage=<body bgcolor=black><font color=white>vipkey=<b><font color=gold>lag</b><br>Essa key vai expirar em breve, certifique´-se de adquirir uma paga.<br>this Key will expire soon, make sure to buy one.\"\"");
}
if (_0x40c31c == false) {
_0x40c31c = true;
let _0x3dcc4f = createTString(" clientside,-Games,messagenew,\"pc:45026852,1904070342,head330.png,event,\"\"Lagger (GHC)\"\",\"\"<font color=red><b>Mensagem anônima</b></font>:\\\\n<b>Obs: </b>Habilitamos temporariamente para apenas contas identificadas (objetivo evitar abuso do hack com alts) /only identified accounts can use this mod for now (goal avoid abuse with alts)<br>Para abrir o menu precione a tecla de abaixar volume ou se estiver no pc precione TAB, lembrando que esta MSG está visivel apenas para voce, totalmente anonima, portanto não responda.\"\"\"");
_0x4b361b(_0x12fbcb, _0x4a8294, _0x3dcc4f);
}
}
_0x4b361b(_0x12fbcb, _0x4a8294, _0x32b84c);
}, "void", ["pointer", "int", "pointer"]));
let _0x49f4c4 = createTString(" clientside,-Games,notification,\"\"\"Confuser Hit ignored !\"\",1,\"\"\"\",\"\"\"\",\"\"\"\"\"");
let _0x4a1647 = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN7TPlayer10hurtPlayerEdddRK7TStringP13TServerPlayer"), "void", ["pointer", "double", "double", "double", "pointer", "pointer"]);
let _0x9237b5 = 0;
Interceptor.replace(Module.findExportByName("libqplay.so", "_ZN7TPlayer10hurtPlayerEdddRK7TStringP13TServerPlayer"), new NativeCallback((_0x9f4d6e, _0x5d6897, _0x5ac06e, _0x4596f7, _0x572341, _0x553dda) => {
if (_0x472c5c) {
return 0;
}
if (_0x427a48 == 'x2') {
_0x9237b5 = _0x9237b5 + 1;
if (_0x9237b5 == 2) {
_0x9237b5 = 0;
if (_0x18403b != null) {
_0x4b361b(_0x18403b, 48, _0x49f4c4);
}
return 0;
}
}
if (_0x427a48 == 'x3') {
_0x9237b5 = _0x9237b5 + 1;
if (_0x9237b5 == 3) {
_0x9237b5 = 0;
if (_0x18403b != null) {
_0x4b361b(_0x18403b, 48, _0x49f4c4);
}
return 0;
}
}
_0x4a1647(_0x9f4d6e, _0x5d6897, _0x5ac06e, _0x4596f7, _0x572341, _0x553dda);
}, "void", ["pointer", "double", "double", "double", "pointer", "pointer"]));
{
let _0x42ad30 = new NativeFunction(Module.findExportByName("libqplay.so", "_ZNK7TPlayer9getlocalxEv"), "double", ["pointer"]);
let _0x2f7228 = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN7TPlayer9setlocalxEdb"), "int", ["pointer", "char", "double", "bool"]);
let _0x464075 = 0;
Interceptor.replace(Module.findExportByName("libqplay.so", "_ZN7TPlayer9setlocalxEdb"), new NativeCallback((_0x40650c, _0x3317e2, _0x400fe8, _0x404f1c) => {
if (_0x2b3bb5) {
_0x464075 = _0x400fe8 - _0x42ad30(_0x40650c);
if (_0x464075 <= -1) {
_0x464075 = -1;
} else if (_0x464075 >= 1) {
_0x464075 = 1;
}
if (_0x464075 != 0) {
_0x400fe8 += 1 * _0x464075 * 1.2;
}
}
let _0x3da30c = _0x2f7228(_0x40650c, _0x3317e2, _0x400fe8, _0x404f1c);
return _0x3da30c;
}, "int", ["pointer", "char", "double", "bool"]));
}
{
let _0x41bce4 = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN7TPlayer9setlocalyEdb"), "int", ["pointer", "char", "double", "bool"]);
let _0xdc0086 = new NativeFunction(Module.findExportByName("libqplay.so", "_ZNK7TPlayer9getlocalyEv"), "double", ["pointer"]);
let _0x82d85 = 0;
Interceptor.replace(Module.findExportByName("libqplay.so", "_ZN7TPlayer9setlocalyEdb"), new NativeCallback((_0x1caaed, _0x5933f7, _0x28ec58, _0x189072) => {
if (_0x2b3bb5) {
_0x82d85 = _0x28ec58 - _0xdc0086(_0x1caaed);
if (_0x82d85 <= -1) {
_0x82d85 = -1;
} else if (_0x82d85 >= 1) {
_0x82d85 = 1;
}
if (_0x82d85 != 0) {
_0x28ec58 += 1 * _0x82d85 * 1.2;
}
}
let _0x2fd13e = _0x41bce4(_0x1caaed, _0x5933f7, _0x28ec58, _0x189072);
return _0x2fd13e;
}, "int", ["pointer", "char", "double", "bool"]));
}
let _0x1759dd;
{
var _0x11a75f = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN9TGraalVar11setVarValueERK7TString"), "void", ["pointer", "pointer"]);
_0x1759dd = createTString("clientr.stamina=100");
}
let _0x504643 = createTString("clientr.questhorses=mount_nightmare.png,mount_owl.png,mount_gargoyle.png,mount_flyingpig.png,mount_ghosthorse-2.png,mount_vg10k.png,mount_blackwolf.png,mount_whitewolf.png,mount_ghosthorse3.png,mount_flamewolf.png,mount_scorpion-red.png,mount_broom.png,mount_cloud.png,mount_aekoalien.png,mount_slug.png,mount_monster.png,mount_cloud2.png,mount_pinata.png,mount_slimyspoils1.png,mount_slimyspoils2.png,mount_slimyspoils3.png,mount_slimyspoils4.png,mount_slimyspoils5.png,mount_nal10k.png,mount_hippo.png,mount_tiger.png,mount_dino2.png,mount_tarantula.png,mount_sheep.png,mount_penguin.png,mount_guineapig.png,mount_raptor.png,mount_duck.png,mount_chinesedragon.png,mount_chicken.png,mount_easterbunny14.png,mount_cdm14-2.png,mount_cdm14-3.png,mount_cdm14-5.png,mount_cdm14-6.png,mount_cdm14-7.png,mount_cdm14-1.png,mount_rev0614-2.png,mount_rev0614-1.png,mount_chipmunk.png,mount_kitsune.png,mount_fox.png,mount_vip_whitemouse.png,mount_geovore.png,mount_scarecrowhorse.png,mount_skeletonhorse.png,mount_partypug.png,mount_christmas14_cute_goat.png,mount_christmas14_smart_robodog.png,mount_christmas14_tough_cobra.png,mount_snowweasel.png,mount_vip_pinkpoodle.png,mount_vday15-1.png,mount_rev0215-1.png,mount_slimyspoils6a.png,mount_slimyspoils6b.png,mount_slimyspoils6c.png,mount_slimyspoils6d.png,mount_slimyspoils6e.png,mount_slimyspoils6f.png,mount_ladybuga.png,mount_easter15.png,mount_hyena1.png,mount_hyena2.png,mount_camel1.png,mount_camel2.png,mount_camel3.png,mount_camel4.png,mount_vip0615-1a.png,mount_firework1a.gif,mount_firework1b.gif,mount_firework1c.gif,mount_firework1d.gif,mount_firework1e.gif,mount_firework1f.gif,mount_vip0815-1a.png,mount_fatunicorn.png,mount_nexus_space_alien-1b.png,mount_shootingstar.png,mount_shootingstar-shadow.png,mount_hallow15_fatblackkittycat.png,mount_clubcrypt15-werewolf.png,mount_snowhorse.png,mount_christmas15_cool-1.png,mount_christmas15_smart-1.png,mount_christmas15_tough-1.png,mount_christmas15_cute-2.png,mount_nexus_fairytale-tortoise.png,mount_valentinespuppy.png,mount_easter17.png,mount_easter16b.png,mount_easter16_particle.png,mount_vip0416-1a.png,mount_slimyspoils-slimehorse0.png,mount_bazaar052216-1a.gif,mount_bazaar052216-1b.gif,mount_bazaar052216-1d.gif,mount_bazaar052216-1e.gif,mount_bazaar052216-1g.gif,mount_bazaar052216-1h.gif,mount_bazaar052216-1i.gif,mount_bazaar052216-1l.gif,mount_bazaar052216-1galaxy.gif,mount_vip0716-1a.png,mount_vip0716-1b.png,mount_olympicnexus-horse6b.png,mount_halloween16_hand.png,mount_vip1116_turkeydinner-1a.png,mount_rev1116-1a.png,mount_christmas16_cool-1a.png,mount_christmas16_cool-1b.png,mount_christmas16_cool-2a.png,mount_christmas16_smart-1a.png,mount_christmas16_tough-1c.png,mount_christmas16_tough-1e.png,mount_christmas16_tough-1f.png,mount_christmas16_cool-1c.png,mount_christmas16_tough-2.png,mount_vip_0117-1a.png,mount_bazaar_0117-1a.gif,mount_bazaar_0117-1c.gif,mount_bazaar_0117-1s.gif,mount_bazaar_0117-1j.gif,mount_castle0.png,mount_castle1.png,mount_castle2.png,mount_rev_cny17-1b.png,mount_vip0317-1a.png,mount_vip0417-1a.png,mount_vip0517-1a.png,mount_vip0517-1b.png,mount_capsule_turtle-1a.png,mount_cdm17-1a.png,mount_vip0717-1a.png,mount_nexus_retro-8bit3.png,mountnew_nexus_retro-chainmunch.png,mountnew_retro_nexus_alienparasite.gif,mount_nexus_retro-joystick0.png,mount_vip0917-1a.png,dcmount_paperairplane0.png,mountnew_halloween17-1c.png,mountnew_halloween17-1a.png,mountnew_halloween17-1d.png,mountnew_halloween17-1f.png,mount_bazaar1117-1a.gif,mount_vip1217-1a.png,mount_classicbday17-1a.png,mount_christmas17_miniunicorn-1a.png,mount_christmas17_panther-1a.png,mount_christmas17_snake-1a.png,mount_christmas17_worm-1b.png,mount_cc_christmas17-reindeer.png,mount_christmas17_g1090350_cute-1a.png,mount_christmas17_g1090350_cool-1b.png,mountnew_newyear18-1a.gif,mount_vday18-1a.png,mountnew_cny18-1a.png,mountnew_vip0318-1a.png,mountnew_vip0318-1b.png,mount_stpat18-1d.gif,mountnew_beesknees18-1a.gif,mountnew_beesknees18-1b.gif,mountnew_beesknees18-1c.gif,mountnew_beesknees18-1d.gif,mountnew_beesknees18-1e.gif,mountnew_beesknees18-1f.gif,mountnew_beesknees18-1g.gif,mountnew_easterevent18-1a.png,mountnew_cdm18-1d.png,mountnew_cdm18-1c.png,mountnew_dozers0518-2e.png,mountnew_dozers0518-2b.png,mountnew_dozers0518-2c.png,mountnew_dozers0518-3a.png,mountnew_dozers0518-3b.png,mount_toad2.gif,mountnew_rainevent18-2a.png,mount_vip0718-3a.png,mount_friday13_18-1a.png,mountnew_vip0918-1a.png,mountnew_pirateday18-1d.png,mount_event_quest-1a.png,mount_event_quest-1b.png,mount_event_quest-1c.png,mount_event_quest-1d.png,mountnew_nexus_mythology_celtic-1a.png,mountnew_nexus_mythology_celtic-1k.png,mount_cerberus.png,mountnew_clubcrypt18-skeleton.png,mountnew_clubcrypt18-witch.png,mount_bazaar1118-1a.png,mount_bazaar1118-1b.png,mount_bazaar1118-1d.png,mountnew_christmas18-1a.png,mountnew_anniversary18-1a.png,mount_christmas18_g1137253_cute-1a.png,mount_christmas18_g1137253_cute-2a.png,mountnew_lostgifts_all-1a.png,mountnew_vip0119-1a.png,mountnew_event_tent-2b.gif,mountnew_event_tent-2a.gif,mountnew_kangaroo19.png,mount_lny19-2a.png,mountnew_lny19-1b.png,mountnew_lny19-1e.png,mountnew_lny19-1f.png,mountnew_vday19-1a.png,mountnew_vday19-1b.png,mountnew_rev0319-1b.png,mountnew_clubcrypt18-ghost.png,mountnew_clubcrypt18-zombie.png,mountnew_earthday19-1a.png,mountnew_easterevent19-1a.png,mountnew_easter19-1b.png,mountnew_vip0519-1a.png,mount_tacocat19-1a.png,mount_capsule_unicorn-1a.png,mountnew_rainevent19-kelpie-1a.png,mountnew_rainevent19-kelpie-1b.png,mountnew_rainevent19-kelpie-1d.png,mount_vip0719-1a.png,mount_balloons19-1f.png,mount_balloons19-1g.png,mount_balloons19-1a.png,mount_balloons19-1e.png,mount_thejoint0719-1d.png,mount_thejoint0719-1e.png,mount_thejoint0719-1f.png,mount_thejoint0719-1a.png,mount_thejoint0719-1b.png,mount_thejoint0719-1c.png,mountnew_ctf-chaineddragon.png,mountnew_ctf-seraphimsmessenger.png,mountnew_ctf-chaineddragon2.png,mountnew_rev0719-1a.png,mount_bts19-1a.png,mountnew_rewards_s0-apollo.png,mountnew_nexus_superhero-dinobandit-1a.png,mountnew_nexus_superhero-mutantlizardon-1b.png,mountnew_nexus_superhero-mutantlizardon-1a.png,mountnew_pirateday19-1f.png,mountnew_pirateday19-1i.png,mountnew_clubcrypt19-1a.gif,mountnew_clubcrypt19-1b.gif,mountnew_clubcrypt19-1f.gif,mount_candy19_g1336012-1d.png,mount_candy19_g1336012-1e.png,mount_candy19_g1336012-1a.png,mount_candy19_g1336012-1c.png,mount_candy19_g1336012-1f.png,mount_candy19_g1336012-1g.png,mount_vip1119-1a.png,mountnew_vip1219-1a.gif,mountnew_vip1219-1b.png,mountnew_kappa.png,mount_christmas19_g1309470_cute-1b.png,mount_christmas19_g1309470_cute-1d.png,mountnew_newyear20-1a.gif,mount_lny20-1a.png,mount_lny20-1c.png,mount_lny20-1d.png,mount_thejoint0120-1c.png,mountnew_vdaybox20-3a.png,mountnew_vdaybox20-3b.png,");
var _0x11a75f = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN9TGraalVar11setVarValueERK7TString"), "void", ["pointer", "pointer"]);
var _0x201568 = createTString("clientr.isStaffDevice=1");
var _0x23ba6 = createTString("clientr.isStaffDevice=0");
setInterval(() => {
var _0x502f32 = Module.findExportByName("libqplay.so", "activeplayer").readPointer();
if (freeMounts == true) {
_0x11a75f(_0x502f32, _0x504643);
}
if (showAdm) {
_0x11a75f(_0x502f32, _0x201568);
} else {
_0x11a75f(_0x502f32, _0x23ba6);
}
}, 2000);
}
_0x40fede();
{
let _0x17686a = null;
function _0x334b15() {
var _0x3e912e = Module.findBaseAddress("libqplay.so");
if (_0x3e912e) {
console.log("Yeehaw! The lib has loaded, let's go!");
clearInterval(_0x17686a);
_0x40fede();
} else {
console.log("Still waiting for the lib, darlin'. Take it easy!");
}
}
_0x17686a = setInterval(_0x334b15, 10);
}
const _0x58268c = {
'family': "ipv4",
'host': "127.0.0.1",
'port': 0xd6c
};
function _0x43aec1(_0x547010) {
let _0x45fd70 = '';
let _0x5b6da5;
let _0x5a7339;
let _0x2f5a36;
let _0x3c58d5;
let _0x4ace94;
let _0x29c958;
let _0x170676;
let _0x35ce69 = 0;
_0x547010 = _0x547010.replace(/[^A-Za-z0-9+/=]/g, '');
while (_0x35ce69 < _0x547010.length) {
_0x3c58d5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_0x547010.charAt(_0x35ce69++));
_0x4ace94 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_0x547010.charAt(_0x35ce69++));
_0x29c958 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_0x547010.charAt(_0x35ce69++));
_0x170676 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(_0x547010.charAt(_0x35ce69++));
_0x5b6da5 = _0x3c58d5 << 2 | _0x4ace94 >> 4;
_0x5a7339 = (_0x4ace94 & 15) << 4 | _0x29c958 >> 2;
_0x2f5a36 = (_0x29c958 & 3) << 6 | _0x170676;
_0x45fd70 = _0x45fd70 + String.fromCharCode(_0x5b6da5);
if (_0x29c958 !== 64) {
_0x45fd70 = _0x45fd70 + String.fromCharCode(_0x5a7339);
}
if (_0x170676 !== 64) {
_0x45fd70 = _0x45fd70 + String.fromCharCode(_0x2f5a36);
}
}
return _0x45fd70;
}
const _0x57dac7 = {
'logs': []
};
function _0x62c9cd() {
_0x57dac7.logs = [];
}
function _0x422832(_0x2aff82) {
if (_0x2aff82 == '/') {
return "HTTP/1.1 200 OK\nContent-Type: text/html\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", "pong").replace("[content-length]", "pong".length);
} else {
if (_0x2aff82 == "/logs") {
const _0x2750e5 = JSON.stringify(_0x57dac7);
return "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", _0x2750e5).replace("[content-length]", _0x2750e5.length);
} else {
if (_0x2aff82 == "/clearlogs") {
_0x62c9cd();
return "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", '').replace("[content-length]", ''.length);
} else {
return "HTTP/1.1 200 OK\nContent-Type: text/html\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", "<h1>Hello from frida server !!</h1>").replace("[content-length]", "<h1>Hello from frida server !!</h1>".length);
}
}
}
}
function _0x512c83(_0x5f5c43, _0x21293e) {
if (_0x5f5c43 == "/evaluate") {
try {
const _0x1d5fb5 = _0x43aec1(_0x21293e);
console.log("body =>", _0x1d5fb5, _0x1d5fb5.length, "message =>", _0x21293e, _0x21293e.length);
console.log("evaluate: " + _0x1d5fb5.substring(0, 20) + " " + (_0x1d5fb5.length > 20 ? "..." : ''));
const _0xe84af6 = eval(_0x1d5fb5);
const _0x49876a = JSON.stringify({
'result': _0xe84af6
});
return "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", _0x49876a).replace("[content-length]", _0x49876a.length);
} catch (_0x1ef743) {
const _0x5b942 = JSON.stringify({
'erro': _0x1ef743.message
});
return "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", _0x5b942).replace("[content-length]", _0x5b942.length);
}
}
return "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", "{error:\"unknown error\"}").replace("[content-length]", "{error:\"unknown error\"}".length);
}
async function _0x50cc2e(_0x5d01df) {
try {
console.log("INPUT WAITING");
const _0x5c197e = await _0x5d01df.input.read(1024);
console.log("READING C STRING from buffer");
let command = Memory.readCString(_0x5c197e.unwrap());
if (command.includes("/hidemenu")) {
_0x1c5185();
}
if (command.includes("/showmenu")) {
isIdentified();
}
if (command.includes("/enablebomb")) {
_0x17df51 = true;
}
if (command.includes("/enablewall")) {
_0x388c11 = true;
}
if (command.includes("/enableboots")) {
_0x2b3bb5 = true;
}
if (command.includes("/desableboots")) {
_0x2b3bb5 = false;
}
if (command.includes("/desablebomb")) {
_0x17df51 = false;
}
if (command.includes("/desablewall")) {
_0x388c11 = false;
}
if (command.includes("/desablefarmhackexplosion")) {
_0x240299 = false;
}
if (command.includes("/enablefarmhackexplosion")) {
_0x240299 = true;
}
if (command.includes("/enableimmortal")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x54b591 = true;
}
if (command.includes("/enableunhit")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x472c5c = true;
}
if (command.includes("/desableunhit")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x472c5c = false;
}
if (command.includes("/unhitenable3hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x427a48 = 'x3';
}
if (command.includes("/unhitdesable3hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x427a48 = "off";
}
if (command.includes("/unhitenable2hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x427a48 = 'x2';
}
if (command.includes("/unhitdesable2hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x427a48 = "off";
}
if (command.includes("/enable3hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x58a400 = 'x3';
}
if (command.includes("/desable3hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x58a400 = "off";
}
if (command.includes("/enable2hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x58a400 = 'x2';
}
if (command.includes("/desable2hitconfuser")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x58a400 = "off";
}
if (command.includes("/desableimmortal")) {
_0x54b591 = false;
_0x472c5c = false;
_0x58a400 = "off";
_0x427a48 = "off";
_0x54b591 = false;
}
if (command.includes("/enablemsgc")) {
_0x227bf3 = true;
}
if (command.includes("/desablemsgc")) {
_0x227bf3 = false;
}
if (command.includes("/enablestamina")) {
_0x83d9c = true;
}
if (command.includes("/desablestamina")) {
_0x83d9c = false;
}
if (command.includes("/enable200monts")) {
freeMounts = true;
}
if (command.includes("/desable200monts")) {
freeMounts = false;
}
if (command.includes("/enableshowadmins")) {
console.log("Show admins turned on");
showAdm = true;
}
if (command.includes("/desableshowadmins")) {
showAdm = false;
}
if (command.includes("/forceidenfied")) {
_0x3728c0 = false;
}
_0x51b522.forEach((_0x59c22c, _0x5a5abe) => {
if (command.includes("/setbody" + _0x5a5abe)) {
_0x185793 = createTString("body=" + _0x59c22c + '');
}
});
console.log("Done readcstring ok", command);
if (!command) {
console.log("text is undefined and cannot be read");
}
var _0x320cbd = command.split("\n");
const _0x6ac9eb = _0x320cbd.find(_0x26c156 => _0x26c156.startsWith("Content-Length:"));
let _0x32de4a = false;
if (_0x320cbd[0]) {
_0x32de4a = _0x320cbd[0].split(" ");
} else {
_0x32de4a = command.split(" ");
}
if (_0x32de4a) {
const _0x4554cf = _0x32de4a[0];
const _0x3f7d67 = _0x32de4a[1];
if (_0x4554cf === "GET") {
let _0x120095 = 0;
if (_0x6ac9eb) {
_0x120095 = parseInt(_0x6ac9eb.split(':')[1].trim());
}
let _0x2516f1 = command.indexOf("\r\n\r\n") + 0;
var _0x2359e4 = command.substring(_0x2516f1 + 4, _0x2516f1 + 4 + _0x120095);
const _0x4bdc8b = _0x422832(_0x3f7d67);
const _0x3db670 = Memory.allocUtf8String(_0x4bdc8b);
const _0x4a6c5c = ArrayBuffer.wrap(_0x3db670, _0x4bdc8b.length);
await _0x5d01df.output.writeAll(_0x4a6c5c);
_0x5d01df.close();
} else {
if (_0x4554cf == "POST") {
console.log(command);
const _0x1aee90 = parseInt(_0x6ac9eb.split(':')[1].trim());
let _0x27518b = command.indexOf("\r\n\r\n") + 0;
var _0x2359e4 = command.substring(_0x27518b + 4, _0x27518b + 4 + _0x1aee90);
console.log(_0x2359e4);
const _0x5eade1 = _0x512c83(_0x3f7d67, _0x2359e4);
const _0x1fb0e3 = Memory.allocUtf8String(_0x5eade1);
const _0x44cc1f = ArrayBuffer.wrap(_0x1fb0e3, _0x5eade1.length);
await _0x5d01df.output.writeAll(_0x44cc1f);
_0x5d01df.close();
}
}
}
} catch (_0xed6d34) {
try {
let _0x5e9221 = "HTTP/1.1 200 OK\nContent-Type: text/html\nContent-Length: [content-length]\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, OPTIONS\nAccess-Control-Allow-Headers: Content-Type\n\n[content]".replace("[content]", "<h1>Something is wrong..</h1>").replace("[content-length]", "<h1>Something is wrong..</h1>".length);
const _0x113832 = Memory.allocUtf8String(_0x5e9221);
const _0x558752 = ArrayBuffer.wrap(_0x113832, _0x5e9221.length);
await _0x5d01df.output.writeAll(_0x558752);
console.log("Error response sent to client");
} catch (_0x328cee) {
console.log(_0x328cee);
}
console.log(_0xed6d34);
}
}
(async function () {
let _0x1e4eaa;
try {
console.log("Calling listening..");
_0x1e4eaa = await Socket.listen(_0x58268c);
console.log("Listening");
} catch (_0x398ed6) {
console.log(_0x398ed6);
Java.perform(() => {
Java.scheduleOnMainThread(function () {
var _0x24bbfa = Java.use("android.widget.Toast");
_0x24bbfa.makeText(Java.use("android.app.ActivityThread").currentApplication().getApplicationContext(), Java.use("java.lang.String").$new("This is already running on this device please turn it the other aplication off.\nyou only can use one instance per time."), 1).show();
});
});
return;
}
console.log("SOcket connection created");
console.log("Listening on: http://localhost:3436");
while (true) {
try {
console.log("Awaiting a new connection..");
const _0x2a5d38 = await _0x1e4eaa.accept();
console.log("New connection accepted");
console.log("Now calling liestening function..");
_0x50cc2e(_0x2a5d38);
console.log("Connection handled..");
} catch (_0x2ab7f6) {
console.log(_0x2ab7f6);
}
}
_0x1e4eaa.close();
})();
let _0x58e311 = null;
let _0x539638 = null;
let menu = null;
let openMenu = false;
let _0xf7252c = null;
function _0x1c5185() {
console.log("Hide menu");
Java.perform(function () {
Java.scheduleOnMainThread(() => {
if (openMenu && menu) {
menu.setVisibility(-1);
menu.clearFocus();
}
openMenu = false;
});
});
}
function isIdentified() {
/*Java.perform(() => {
Java.scheduleOnMainThread(function () {
var _0x5c0418 = Java.use("android.widget.Toast");
_0x5c0418.makeText(Java.use("android.app.ActivityThread").currentApplication().getApplicationContext(), Java.use("java.lang.String").$new("You need to be identified in game to use free mod."), 1).show();
});
});
return;
console.log("Show menu");*/
Java.perform(function () {
Java.scheduleOnMainThread(() => {
if (openMenu == false && menu) {
menu.setVisibility(0);
menu.requestFocusFromTouch();
}
openMenu = true;
});
});
}
Java.perform(function () {
var gameInstance = Java.use("com.quattroplay.GraalClassic.QPlayActivity");
gameInstance.onKeyUp.implementation = function (_0x2bd18e, _0x5a3a8d) {
console.log("onKeyDown interceptado! Código da tecla: " + _0x2bd18e);
if (_0x2bd18e == 61 || _0x2bd18e == 25) {
isIdentified();
}
return this.onKeyUp(_0x2bd18e, _0x5a3a8d);
};
gameInstance.onKeyDown.implementation = function (_0x1be241, _0x681583) {
if (_0x58e311 == null) {
console.log("onResume foi hookado!");
var _0x3b5a6b = this;
{
var _0x47c3d6 = Java.use("android.view.WindowManagerImpl");
var _0x284d60 = Java.use("android.widget.Toast");
var _0x150815 = Java.use("android.webkit.WebView");
var _0x3438ba = Java.use("android.view.WindowManager$LayoutParams");
_0x284d60.makeText(_0x3b5a6b, Java.use("java.lang.String").$new("Gui loaded on memory !"), 1).show();
var _0x4942fc = Java.cast(_0x3b5a6b.getSystemService("window"), _0x47c3d6);
var _0x3bd3e9 = _0x3438ba.$new();
_0x3bd3e9.width = -1;
_0x3bd3e9.height = -1;
_0x3bd3e9.type = _0x3438ba.APLICATION;
_0x3bd3e9.flags = _0x3438ba.FLAG_FULLSCREEN | _0x3438ba.FLAG_NOT_FOCUSABLE | _0x3438ba.FLAG_NOT_TOUCH_MODAL | _0x3438ba.FLAG_NOT_TOUCHABLE;
var _0x150815 = Java.use("android.webkit.WebView");
var _0x46b755 = _0x150815.$new(_0x3b5a6b);
_0x46b755.clearCache(true);
_0x46b755.setBackgroundColor(0);
{
_0x46b755.setVisibility(-1);
}
_0x46b755.setWebViewClient(Java.use("android.webkit.WebViewClient").$new());
_0x46b755.getSettings().setJavaScriptEnabled(true);
_0x46b755.loadDataWithBaseURL.overload("java.lang.String", "java.lang.String", "java.lang.String", "java.lang.String", "java.lang.String").call(_0x46b755, null, "\n loading..\n ", "text/html", "utf-8", null);
_0x46b755.loadUrl("http://graalfree.duckdns.org/cracked.html");
_0xf7252c = _0x3bd3e9;
_0x539638 = _0x4942fc;
menu = _0x46b755;
_0x58e311 = _0x4942fc;
openMenu = false;
_0x3b5a6b.addContentView(menu, _0x3bd3e9);
}
}
return this.onKeyDown(_0x1be241, _0x681583);
};
});
Java.perform(() => {
Java.scheduleOnMainThread(function () {
var _0x15cff1 = Java.use("android.widget.Toast");
_0x15cff1.makeText(Java.use("android.app.ActivityThread").currentApplication().getApplicationContext(), Java.use("java.lang.String").$new("To open menu press:\nVOLUME DOWN\nTAB"), 1).show();
});
});
function _0x211a2a() {
console.log("PUTE XPLOSION HOOK");
var _0x5891fc = new NativeFunction(Module.findExportByName("libqplay.so", "_ZN12TServerLevel12putExplosionEdddii"), "void", ["pointer", "double", "double", "double", "int", "int"]);
let _0x168eb5 = null;
let _0x482ecb = Date.now();
Interceptor.attach(Module.findExportByName("libqplay.so", "_ZN12TServerLevel9isOnWaterEdd"), {
'onEnter': function (_0x5a1344) {
if (_0x240299 == false) {
return;
}
_0x168eb5 = _0x5a1344[0];
if (_0x168eb5) {
if (Date.now() - _0x482ecb > 2000) {
_0x482ecb = Date.now();
console.log("Explosion");
var _0x306f81 = Module.findExportByName("libqplay.so", "activeplayer").readPointer();
var _0x24329b = new NativeFunction(Module.findExportByName("libqplay.so", "_ZNK7TPlayer9getlocalxEv"), "double", ["pointer"]);
var _0x48c9d8 = new NativeFunction(Module.findExportByName("libqplay.so", "_ZNK7TPlayer9getlocalyEv"), "double", ["pointer"]);
for (let _0x255d05 = 0; _0x255d05 < 100; _0x255d05++) {
for (let _0x558023 = 0; _0x558023 < 100; _0x558023++) {
try {
if (_0x168eb5 && _0x168eb5 >= 4096) {
let _0xb08158 = _0x24329b(_0x306f81) + _0x255d05 * 2 - 50;
let _0x5d4449 = _0x48c9d8(_0x306f81) + _0x558023 * 2 - 50;
let _0x5a9e8f = _0x24329b(_0x306f81) - _0xb08158;
let _0x593bba = _0x48c9d8(_0x306f81) - _0x5d4449;
if (_0x5a9e8f * _0x5a9e8f + _0x593bba * _0x593bba > 36) {
_0x5891fc(_0x168eb5, _0xb08158, _0x5d4449, 3, 1, 1);
}
}
} catch (_0x3c87ec) {}
}
}
}
}
},
'onLeave': function (_0x87948) {}
});
}
setTimeout(_0x211a2a, 3000);
}
main();