构造方法在Android应用中比较常见,它是Java中的一种特殊方法,用于初始化对象。Java构造方法在对象创建时被调用,它的方法名必须和其类名相同,而且必须没有显式返回类型。 简单来说,凡是关键词new后跟随的基本都是构造方法。
此处以测试应用中的Money类的构造方法的Hook为例,应用中的源代码如下:
第一步应当定位到类,不过由于Android中构造方法名和类名是一致的,因此不需要再重复编写类名。 在编写的JavaScript脚本中,使用$init来指代构造方法的名字。 之后在返回参数中自定义要传输的两个参数,即可完成构造方法的参数修改。
具体的Hook代码如下所示:
Hook构造方法需要谨记的是,构造方法使用$init来指代名字,其余的操作与定位普通方法一致。