【发布时间】:2021-12-08 14:49:47
【问题描述】:
我在 Frida 中挂钩了一个使用代码的函数:
this.carrier.getId()
但是,此时 this.carrier 尚未设置,这会导致应用崩溃。
所以我正在考虑在类的当前函数中手动设置这个成员。因此,该运营商将在代码发生时存在。
问题是我这样做会遇到问题。
到目前为止,这是我得到的:
Java.perform(function () {
var SignUpActivity = Java.use('com.app.features.authentication.SignUpActivity');
SignUpActivity.validatePhoneNumber.implementation = function() {
var Carrier = Java.use("com.app.Carrier");
this.carrier = Carrier.$new();
console.log(this.carrier) // This prints "[object Object]"
console.log(this.carrier.setId) // This prints "undefined"
this.carrier.setId(123); // crashes
};
});
承运人代码:
package com.app;
import android.os.Parcel;
import android.os.Parcelable;
public class Carrier implements Parcelable {
private int id;
private String name;
private String officeTerminalAddress;
public Carrier() {
}
protected Carrier(Parcel parcel) {
this.id = parcel.readInt();
this.name = parcel.readString();
this.officeTerminalAddress = parcel.readString();
}
public int getId() {
return this.id;
}
public void setId(int i) {
this.id = i;
}
}
【问题讨论】:
标签: javascript java android reverse-engineering frida