-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlibcandy.botnamesv47.js
More file actions
41 lines (33 loc) · 1.23 KB
/
libcandy.botnamesv47.js
File metadata and controls
41 lines (33 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Random bot names in v47
// Made by @hallo178
// https://dsc.gg/candybrawl
const base = Process.getModuleByName('libg.so').base;
const malloc = new NativeFunction(Process.getModuleByName('libc.so').getExportByName('malloc'), 'pointer', ['uint']);
const botNames = ["Hallo", "Hyper", "Rotolav", "SMP", "Anglefire"];
const localizationGetString = base.add(0xD7FDB8);
const stringCtor = new NativeFunction(base.add(0xE1F254), "pointer", ["pointer", "pointer"]);
function createStringObject(txt) {
const sptr = Memory.allocUtf8String(txt);
const ptr = malloc(200);
stringCtor(ptr, sptr);
return ptr;
}
function readStringObject(pointer) {
var len = pointer.add(4).readInt()
if (len >= 8) {
return pointer.add(8).readPointer().readUtf8String(len)
}
return pointer.add(8).readUtf8String(len)
}
function getRandomItemFromList(list) {
var randIdx = Math.floor(Math.random() * list.length);
return list[randIdx];
}
Interceptor.attach(localizationGetString, {
onEnter(args) {
this.tid = readStringObject(args[1])
},
onLeave(retval) {
if (this.tid.includes("TID_BOT_")) retval.replace(createStringObject(getRandomItemFromList(botNames)))
}
})