SootParserUtil

object SootParserUtil: Any

Methods

determineModifiers

fun determineModifiers(access: Int, name: String?): Set<String>

Given the ASM5 access parameter and method name, determines the modifier types.

In Java, all non-static methods are by default "virtual functions." Only methods marked with the keyword final, which cannot be overridden, along with private methods, which are not inherited, are non-virtual.

Parameters

Name Description
access: Int

ASM5 access parameter obtained from visitClass and visitMethod.

name: String?

name of the method obtained from visitClass and visitMethod.

ReturnValue

Name Description
Set<String>

an EnumSet of the applicable modifier types.

determineEvaluationStrategy

fun determineEvaluationStrategy(paramType: String, isMethodReturn: Boolean): String

Given a parameter signature and context of the parameter, determines the evaluation strategy used. TODO: Confirm if these assumptions are true

Parameters

Name Description
paramType: String

the parameter signature from ASM5

isMethodReturn: Boolean

true if the parameter type is from a method

ReturnValue

Name Description
String

the type of evaluation strategy used

parseAndFlipEquality

fun parseAndFlipEquality(jumpStatement: String): String

Parses the jump statement equality and returns the opposite.

Parameters

Name Description
jumpStatement: String

the string of a jump statement e.g. NEQ.

ReturnValue

Name Description
String

the of the opposite jump statement, NOP if it could not be determined.

isArrayType

fun isArrayType(type: String): Boolean

Parameters

Name Description
type: String

ReturnValue

Name Description
Boolean