chore: update dependencies
This commit is contained in:
+3
-3
@@ -32,10 +32,10 @@ const val JADX_SCRIPT_LOG_PREFIX = "JadxScript:"
|
||||
|
||||
@KotlinScript(
|
||||
fileExtension = "jadx.kts",
|
||||
compilationConfiguration = JadxScriptConfiguration::class
|
||||
compilationConfiguration = JadxScriptConfiguration::class,
|
||||
)
|
||||
abstract class JadxScriptTemplate(
|
||||
private val scriptData: JadxScriptData
|
||||
private val scriptData: JadxScriptData,
|
||||
) {
|
||||
val scriptName = scriptData.scriptName
|
||||
val log = KotlinLogging.logger("$JADX_SCRIPT_LOG_PREFIX$scriptName")
|
||||
@@ -56,7 +56,7 @@ object JadxScriptConfiguration : ScriptCompilationConfiguration({
|
||||
|
||||
jvm {
|
||||
dependenciesFromCurrentContext(
|
||||
wholeClasspath = true
|
||||
wholeClasspath = true,
|
||||
)
|
||||
}
|
||||
ide {
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ class JadxScriptData(
|
||||
val jadxInstance: JadxDecompiler,
|
||||
val pluginContext: JadxPluginContext,
|
||||
val options: JadxScriptAllOptions,
|
||||
val scriptFile: File
|
||||
val scriptFile: File,
|
||||
) {
|
||||
val afterLoad: MutableList<() -> Unit> = ArrayList()
|
||||
|
||||
@@ -32,7 +32,7 @@ class JadxScriptData(
|
||||
|
||||
class JadxScriptInstance(
|
||||
private val scriptData: JadxScriptData,
|
||||
val log: KLogger
|
||||
val log: KLogger,
|
||||
) {
|
||||
private val decompiler = scriptData.jadxInstance
|
||||
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ import jadx.plugins.script.runtime.JadxScriptInstance
|
||||
|
||||
class Gui(
|
||||
private val jadx: JadxScriptInstance,
|
||||
private val guiContext: JadxGuiContext?
|
||||
private val guiContext: JadxGuiContext?,
|
||||
) {
|
||||
|
||||
fun isAvailable() = guiContext != null
|
||||
@@ -27,7 +27,7 @@ class Gui(
|
||||
name: String,
|
||||
enabled: (ICodeNodeRef) -> Boolean = { _ -> true },
|
||||
keyBinding: String? = null,
|
||||
action: (ICodeNodeRef) -> Unit
|
||||
action: (ICodeNodeRef) -> Unit,
|
||||
) {
|
||||
context().addPopupMenuAction(name, enabled, keyBinding, action)
|
||||
}
|
||||
|
||||
+4
-4
@@ -20,7 +20,7 @@ class JadxScriptAllOptions : JadxPluginOptions {
|
||||
class ScriptOption<T>(
|
||||
val name: String,
|
||||
val id: String,
|
||||
private val getter: () -> T
|
||||
private val getter: () -> T,
|
||||
) {
|
||||
private var validate: ((T) -> Boolean)? = null
|
||||
|
||||
@@ -43,7 +43,7 @@ class ScriptOption<T>(
|
||||
|
||||
class JadxScriptOptions(
|
||||
private val jadx: JadxScriptInstance,
|
||||
private val options: JadxScriptAllOptions
|
||||
private val options: JadxScriptAllOptions,
|
||||
) {
|
||||
fun <T> register(
|
||||
name: String,
|
||||
@@ -51,7 +51,7 @@ class JadxScriptOptions(
|
||||
values: List<String>,
|
||||
defaultValue: String,
|
||||
type: OptionType = OptionType.STRING,
|
||||
convert: (String?) -> T
|
||||
convert: (String?) -> T,
|
||||
): ScriptOption<T> {
|
||||
val id = "jadx-script.${jadx.scriptName}.$name"
|
||||
options.descriptions.add(JadxOptionDescription(id, desc, defaultValue, values, type))
|
||||
@@ -62,7 +62,7 @@ class JadxScriptOptions(
|
||||
name: String,
|
||||
desc: String = "",
|
||||
values: List<String> = emptyList(),
|
||||
defaultValue: String = ""
|
||||
defaultValue: String = "",
|
||||
): ScriptOption<String> {
|
||||
return register(name, desc, values, defaultValue) { value ->
|
||||
if (value == null) {
|
||||
|
||||
+26
-26
@@ -16,37 +16,37 @@ class Rename(private val jadx: JadxScriptInstance) {
|
||||
jadx.addPass(object : ScriptOrderedPreparePass(
|
||||
jadx,
|
||||
"RenameAll",
|
||||
runBefore = listOf("RenameVisitor")
|
||||
runBefore = listOf("RenameVisitor"),
|
||||
) {
|
||||
override fun init(root: RootNode) {
|
||||
for (pkgNode in root.packages) {
|
||||
rename(makeNewName, pkgNode, pkgNode.pkgInfo.name)
|
||||
override fun init(root: RootNode) {
|
||||
for (pkgNode in root.packages) {
|
||||
rename(makeNewName, pkgNode, pkgNode.pkgInfo.name)
|
||||
}
|
||||
for (cls in root.classes) {
|
||||
rename(makeNewName, cls, cls.name)
|
||||
for (mth in cls.methods) {
|
||||
if (!mth.isConstructor) {
|
||||
rename(makeNewName, mth, mth.name)
|
||||
}
|
||||
}
|
||||
for (cls in root.classes) {
|
||||
rename(makeNewName, cls, cls.name)
|
||||
for (mth in cls.methods) {
|
||||
if (!mth.isConstructor) {
|
||||
rename(makeNewName, mth, mth.name)
|
||||
}
|
||||
}
|
||||
for (fld in cls.fields) {
|
||||
rename(makeNewName, fld, fld.name)
|
||||
}
|
||||
for (fld in cls.fields) {
|
||||
rename(makeNewName, fld, fld.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private inline fun <T : IDexNode> rename(
|
||||
makeNewName: (String, IDexNode) -> String?,
|
||||
node: T,
|
||||
name: String
|
||||
) {
|
||||
if (node is IAttributeNode && node.contains(AFlag.DONT_RENAME)) {
|
||||
return
|
||||
}
|
||||
makeNewName.invoke(name, node)?.let {
|
||||
node.rename(it)
|
||||
}
|
||||
private inline fun <T : IDexNode> rename(
|
||||
makeNewName: (String, IDexNode) -> String?,
|
||||
node: T,
|
||||
name: String,
|
||||
) {
|
||||
if (node is IAttributeNode && node.contains(AFlag.DONT_RENAME)) {
|
||||
return
|
||||
}
|
||||
})
|
||||
makeNewName.invoke(name, node)?.let {
|
||||
node.rename(it)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+19
-19
@@ -12,14 +12,14 @@ class Stages(private val jadx: JadxScriptInstance) {
|
||||
jadx.addPass(object : ScriptOrderedDecompilePass(
|
||||
jadx,
|
||||
"StageRawInsns",
|
||||
runAfter = listOf("start")
|
||||
runAfter = listOf("start"),
|
||||
) {
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.instructions?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.instructions?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun mthEarlyBlocks(block: (MethodNode, List<BlockNode>) -> Unit) {
|
||||
@@ -28,32 +28,32 @@ class Stages(private val jadx: JadxScriptInstance) {
|
||||
|
||||
fun mthBlocks(
|
||||
beforePass: String = "RegionMakerVisitor",
|
||||
block: (MethodNode, List<BlockNode>) -> Unit
|
||||
block: (MethodNode, List<BlockNode>) -> Unit,
|
||||
) {
|
||||
jadx.addPass(object : ScriptOrderedDecompilePass(
|
||||
jadx,
|
||||
"StageMthBlocks",
|
||||
runBefore = listOf(beforePass)
|
||||
runBefore = listOf(beforePass),
|
||||
) {
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.basicBlocks?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.basicBlocks?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun mthRegions(block: (MethodNode, Region) -> Unit) {
|
||||
jadx.addPass(object : ScriptOrderedDecompilePass(
|
||||
jadx,
|
||||
"StageMthRegions",
|
||||
runBefore = listOf("PrepareForCodeGen")
|
||||
runBefore = listOf("PrepareForCodeGen"),
|
||||
) {
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.region?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.region?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -17,14 +17,14 @@ private fun buildSimplePassInfo(jadx: JadxScriptInstance, name: String) =
|
||||
|
||||
abstract class ScriptPreparePass(
|
||||
private val jadx: JadxScriptInstance,
|
||||
private val name: String
|
||||
private val name: String,
|
||||
) : JadxPreparePass {
|
||||
override fun getInfo() = buildSimplePassInfo(jadx, name)
|
||||
}
|
||||
|
||||
abstract class ScriptDecompilePass(
|
||||
private val jadx: JadxScriptInstance,
|
||||
private val name: String
|
||||
private val name: String,
|
||||
) : JadxDecompilePass {
|
||||
override fun getInfo() = buildSimplePassInfo(jadx, name)
|
||||
|
||||
@@ -43,7 +43,7 @@ abstract class ScriptOrderedPass(
|
||||
private val jadx: JadxScriptInstance,
|
||||
private val name: String,
|
||||
private val runAfter: List<String> = listOf(),
|
||||
private val runBefore: List<String> = listOf()
|
||||
private val runBefore: List<String> = listOf(),
|
||||
) : JadxPass {
|
||||
override fun getInfo(): OrderedJadxPassInfo {
|
||||
val scriptName = buildScriptName(jadx, name)
|
||||
@@ -55,14 +55,14 @@ abstract class ScriptOrderedPreparePass(
|
||||
jadx: JadxScriptInstance,
|
||||
name: String,
|
||||
runAfter: List<String> = listOf(),
|
||||
runBefore: List<String> = listOf()
|
||||
runBefore: List<String> = listOf(),
|
||||
) : ScriptOrderedPass(jadx, name, runAfter, runBefore), JadxPreparePass
|
||||
|
||||
abstract class ScriptOrderedDecompilePass(
|
||||
jadx: JadxScriptInstance,
|
||||
name: String,
|
||||
runAfter: List<String> = listOf(),
|
||||
runBefore: List<String> = listOf()
|
||||
runBefore: List<String> = listOf(),
|
||||
) : ScriptOrderedPass(jadx, name, runAfter, runBefore), JadxDecompilePass {
|
||||
|
||||
override fun init(root: RootNode) {
|
||||
|
||||
Reference in New Issue
Block a user