rollback frida 'Java.registerClass'
This commit is contained in:
parent
6ee51c13d6
commit
30c1abe1ea
7 changed files with 154 additions and 10 deletions
29
frida/consumer/StackConsumer.java
Normal file
29
frida/consumer/StackConsumer.java
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package theseus.android;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
import java.lang.StackWalker.StackFrame;
|
||||
import java.util.ArrayList;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
class StackConsumer implements Consumer<StackFrame> {
|
||||
|
||||
public ArrayList<StackFrame> stack;
|
||||
|
||||
public StackConsumer() {
|
||||
this.stack = new ArrayList<StackFrame>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(StackFrame frame) {
|
||||
stack.add(frame);
|
||||
}
|
||||
|
||||
public StackFrame[] getStack() {
|
||||
return this.stack.toArray(new StackFrame[] {});
|
||||
}
|
||||
|
||||
public Function<? super Stream<StackWalker.StackFrame>, StackFrame[]> walkNFrame(int n) {
|
||||
return s -> { s.limit(n).forEach(this); return this.getStack(); };
|
||||
}
|
||||
}
|
||||
32
frida/consumer/build.sh
Normal file
32
frida/consumer/build.sh
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
JAVAC="${JAVAC:-/usr/lib/jvm/java-17-openjdk/bin/javac}"
|
||||
ANDROID_SDK="${ANDROID_SDK:-${HOME}/Android/Sdk/}"
|
||||
VERSION="${VERSION:-34.0.0}"
|
||||
D8="${D8:-${ANDROID_SDK}/build-tools/${VERSION}/d8}"
|
||||
VERSION_B="${VERSION_B:-$(echo "${VERSION}" | sed 's/\..*//')}"
|
||||
ANDROID_JAR="${ANDROID_JAR:-${ANDROID_SDK}/platforms/android-${VERSION_B}/android.jar}"
|
||||
|
||||
FOLDER=$(dirname "$(realpath $0)")
|
||||
BUILD_F="${BUILD_F:-${FOLDER}/build}"
|
||||
OUT_FILE="${OUT_FILE:-${FOLDER}/../theseus_frida/StackConsumer.dex.b64}"
|
||||
|
||||
echo "JAVAC = ${JAVAC}"
|
||||
echo "ANDROID_SDK = ${ANDROID_SDK}"
|
||||
echo "VERSION = ${VERSION}"
|
||||
echo "D8 = ${D8}"
|
||||
# echo "VERSION_B = ${VERSION_B}"
|
||||
echo "ANDROID_JAR = ${ANDROID_JAR}"
|
||||
echo "BUILD_F = ${BUILD_F}"
|
||||
echo "OUT_FILE = ${OUT_FILE}"
|
||||
|
||||
rm -r "${BUILD_F}"
|
||||
mkdir "${BUILD_F}"
|
||||
|
||||
"${JAVAC}" -Xlint -d "${BUILD_F}" -classpath "${ANDROID_JAR}" "${FOLDER}/StackConsumer.java"
|
||||
|
||||
mkdir "${BUILD_F}/classes"
|
||||
"${D8}" --classpath "${ANDROID_JAR}" "${BUILD_F}/theseus/android/StackConsumer.class" --output "${BUILD_F}/classes"
|
||||
|
||||
base64 "${BUILD_F}/classes/classes.dex" > "${OUT_FILE}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue