refactor: move plugins-api module into jadx-core
This commit is contained in:
+4
-5
@@ -1,6 +1,5 @@
|
||||
package jadx.plugins.script.runtime.data
|
||||
|
||||
import jadx.api.core.nodes.IMethodNode
|
||||
import jadx.core.dex.nodes.MethodNode
|
||||
import jadx.core.dex.visitors.DotGraphVisitor
|
||||
import jadx.core.utils.DebugUtils
|
||||
@@ -9,11 +8,11 @@ import java.io.File
|
||||
|
||||
class Debug(private val jadx: JadxScriptInstance) {
|
||||
|
||||
fun printMethodRegions(mth: IMethodNode, printInsns: Boolean = false) {
|
||||
DebugUtils.printRegions(mth as MethodNode, printInsns)
|
||||
fun printMethodRegions(mth: MethodNode, printInsns: Boolean = false) {
|
||||
DebugUtils.printRegions(mth, printInsns)
|
||||
}
|
||||
|
||||
fun saveCFG(mth: IMethodNode, file: File = File("dump-mth-raw")) {
|
||||
DotGraphVisitor.dumpRaw().save(file, mth as MethodNode)
|
||||
fun saveCFG(mth: MethodNode, file: File = File("dump-mth-raw")) {
|
||||
DotGraphVisitor.dumpRaw().save(file, mth)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-5
@@ -1,6 +1,5 @@
|
||||
package jadx.plugins.script.runtime.data
|
||||
|
||||
import jadx.api.core.nodes.IRootNode
|
||||
import jadx.core.dex.attributes.AFlag
|
||||
import jadx.core.dex.attributes.IAttributeNode
|
||||
import jadx.core.dex.nodes.IDexNode
|
||||
@@ -19,12 +18,11 @@ class RenamePass(private val jadx: JadxScriptInstance) {
|
||||
"RenameAll",
|
||||
runBefore = listOf("RenameVisitor")
|
||||
) {
|
||||
override fun init(root: IRootNode) {
|
||||
val rootNode = root as RootNode
|
||||
for (pkgNode in rootNode.packages) {
|
||||
override fun init(root: RootNode) {
|
||||
for (pkgNode in root.packages) {
|
||||
rename(makeNewName, pkgNode, pkgNode.pkgInfo.name)
|
||||
}
|
||||
for (cls in rootNode.classes) {
|
||||
for (cls in root.classes) {
|
||||
rename(makeNewName, cls, cls.name)
|
||||
for (mth in cls.methods) {
|
||||
if (!mth.isConstructor) {
|
||||
|
||||
+9
-13
@@ -1,6 +1,5 @@
|
||||
package jadx.plugins.script.runtime.data
|
||||
|
||||
import jadx.api.core.nodes.IMethodNode
|
||||
import jadx.core.dex.nodes.BlockNode
|
||||
import jadx.core.dex.nodes.InsnNode
|
||||
import jadx.core.dex.nodes.MethodNode
|
||||
@@ -15,10 +14,9 @@ class Stages(private val jadx: JadxScriptInstance) {
|
||||
"StageRawInsns",
|
||||
runAfter = listOf("start")
|
||||
) {
|
||||
override fun visit(mth: IMethodNode) {
|
||||
val mthNode = mth as MethodNode
|
||||
mthNode.instructions?.let {
|
||||
block.invoke(mthNode, it)
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.instructions?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -37,10 +35,9 @@ class Stages(private val jadx: JadxScriptInstance) {
|
||||
"StageMthBlocks",
|
||||
runBefore = listOf(beforePass)
|
||||
) {
|
||||
override fun visit(mth: IMethodNode) {
|
||||
val mthNode = mth as MethodNode
|
||||
mthNode.basicBlocks?.let {
|
||||
block.invoke(mthNode, it)
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.basicBlocks?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -52,10 +49,9 @@ class Stages(private val jadx: JadxScriptInstance) {
|
||||
"StageMthRegions",
|
||||
runBefore = listOf("PrepareForCodeGen")
|
||||
) {
|
||||
override fun visit(mth: IMethodNode) {
|
||||
val mthNode = mth as MethodNode
|
||||
mthNode.region?.let {
|
||||
block.invoke(mthNode, it)
|
||||
override fun visit(mth: MethodNode) {
|
||||
mth.region?.let {
|
||||
block.invoke(mth, it)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
+11
-11
@@ -1,13 +1,13 @@
|
||||
package jadx.plugins.script.runtime.data
|
||||
|
||||
import jadx.api.core.nodes.IClassNode
|
||||
import jadx.api.core.nodes.IMethodNode
|
||||
import jadx.api.core.nodes.IRootNode
|
||||
import jadx.api.plugins.pass.types.JadxDecompilePass
|
||||
import jadx.api.plugins.pass.JadxPass
|
||||
import jadx.api.plugins.pass.types.JadxPreparePass
|
||||
import jadx.api.plugins.pass.impl.OrderedJadxPassInfo
|
||||
import jadx.api.plugins.pass.impl.SimpleJadxPassInfo
|
||||
import jadx.api.plugins.pass.types.JadxDecompilePass
|
||||
import jadx.api.plugins.pass.types.JadxPreparePass
|
||||
import jadx.core.dex.nodes.ClassNode
|
||||
import jadx.core.dex.nodes.MethodNode
|
||||
import jadx.core.dex.nodes.RootNode
|
||||
import jadx.plugins.script.runtime.JadxScriptInstance
|
||||
|
||||
private fun buildScriptName(jadx: JadxScriptInstance, name: String) = "JadxScript${name}(${jadx.scriptName})"
|
||||
@@ -26,14 +26,14 @@ abstract class ScriptDecompilePass(
|
||||
) : JadxDecompilePass {
|
||||
override fun getInfo() = buildSimplePassInfo(jadx, name)
|
||||
|
||||
override fun init(root: IRootNode) {
|
||||
override fun init(root: RootNode) {
|
||||
}
|
||||
|
||||
override fun visit(cls: IClassNode): Boolean {
|
||||
override fun visit(cls: ClassNode): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun visit(mth: IMethodNode) {
|
||||
override fun visit(mth: MethodNode) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,13 +57,13 @@ abstract class ScriptOrderedDecompilePass(
|
||||
jadx: JadxScriptInstance, name: String, runAfter: List<String> = listOf(), runBefore: List<String> = listOf()
|
||||
) : ScriptOrderedPass(jadx, name, runAfter, runBefore), JadxDecompilePass {
|
||||
|
||||
override fun init(root: IRootNode) {
|
||||
override fun init(root: RootNode) {
|
||||
}
|
||||
|
||||
override fun visit(cls: IClassNode): Boolean {
|
||||
override fun visit(cls: ClassNode): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun visit(mth: IMethodNode) {
|
||||
override fun visit(mth: MethodNode) {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user