我已经使用 Frida.RE 检测了一个应用程序。我可以挂钩我感兴趣的 C++ 类的构造函数,我们称之为 MyClass::MyClass()。
我想在对象实例上调用非静态 MyClass::SomeMethod()。为此,我需要拥有对象实例的地址,以便我可以将其作为隐式“this”参数传递给方法。
有没有办法监控创建的 MyClass 实例的地址?
或者是否有其他方法可以调用已实例化对象的 SomeMethod() 方法?
更新:
我试图用 Frida (args[0]) 简单地记录传递给构造函数的第 0 个参数,但我无法访问this指针,只能访问第一个“真实”参数(由调用者显式传递)。
我能想到两件事:
- Frida 不关心隐含的
this论证,或者 - 由于 Windows 程序中使用的 thiscall 方案,事情变得一团糟(我正在 32 位 Windows 上进行试验)。不过,我想不出一种方法来通过 Frida 获得 ECX 的价值......