feat: add package node, allow to rename packages

This commit is contained in:
Skylot
2022-07-25 12:49:46 +01:00
parent 278d7fa3f9
commit bc7300bd01
12 changed files with 353 additions and 7 deletions
@@ -0,0 +1,39 @@
// animal deobfuscator ^_^
@file:DependsOn("com.github.javafaker:javafaker:1.0.2")
import com.github.javafaker.Faker
import jadx.core.deobf.NameMapper
import java.util.Random
val jadx = getJadxInstance()
jadx.args.isDeobfuscationOn = false
jadx.args.renameFlags = emptySet()
val regex = """[Oo0]+""".toRegex()
val usedNames = mutableSetOf<String>()
val faker = Faker(Random(1))
var dups = 1
jadx.rename.all { name, node ->
when {
name matches regex -> {
val prefix = node.typeName().first()
val alias = faker.name().firstName().cap() + faker.animal().name().cap()
makeUnique(prefix, alias)
}
else -> null
}
}
fun makeUnique(prefix: Char, name: String): String {
while (true) {
val resName = prefix + NameMapper.removeInvalidCharsMiddle(name)
return if (usedNames.add(resName)) resName else "$resName${dups++}"
}
}
jadx.afterLoad {
println("Renames count: ${usedNames.size + dups}, names: ${usedNames.size}, dups: $dups")
}
fun String.cap() = this.replaceFirstChar(Char::uppercaseChar)