fix(script): add example script for resources rename (#2126)

This commit is contained in:
Skylot
2024-03-20 18:46:44 +00:00
parent 463d2b90fa
commit 2807dc5090
3 changed files with 50 additions and 1 deletions
@@ -0,0 +1,34 @@
import jadx.api.plugins.options.OptionFlag.PER_PROJECT
/**
* Custom resources regexp deobfuscator
*/
val jadx = getJadxInstance()
val regexOpt = jadx.options.registerString(
name = "regex",
desc = "Apply resources rename for file names matches regex",
defaultValue = """[Oo0]+\.xml""",
).flags(PER_PROJECT)
val regex = regexOpt.value.toRegex()
var n = 0
jadx.stages.prepare {
for (resFile in jadx.internalDecompiler.resources) {
val fullName = resFile.originalName
val name = fullName.substringAfterLast('/')
if (name matches regex) {
val path = fullName.substringBeforeLast('/') // TODO: path also may be obfuscated
val ext = name.substringAfterLast('.')
val newName = "$path/res-${n++}.$ext"
log.info { "renaming resource: '$fullName' to '$newName'" }
resFile.deobfName = newName
}
}
}
jadx.afterLoad {
log.info { "Renames count: $n" }
}