ccceleven 发表于 2022-1-10 09:57

菜鸟学习Frida问题笔记

本帖最后由 ccceleven 于 2022-1-11 16:15 编辑

把遇到的问题记录下来,万一有大神解答呢{:17_1089:}纯萌新菜鸟

2022-01-10-问题1:Object类型参数构造的问题使用Frida 进行Hook某音,函数定义的参数是overload('int', 'int', 'long', 'java.lang.String', 'java.lang.Object')
前面4个参数还稍微简单一些,最后一个参数是Object类型。
JS中构造数据类型:<instance: java.util.ArrayList>原始函数中数据类型:<instance: java.lang.Object, $className: 虽然最后一个参数的内容是一样的,但是传进去调用函数,返回值缺是空值那么问题来了:JS中构造数据类型:<instance: java.util.ArrayList>与原始函数中数据类型:<instance: java.lang.Object, $className:
注:问题已解决,照着JS的基本类型和JAVA的数据类型去拼凑,在测试过程中调整,如果能正常调用方法就说明没问题。




2022-01-10-问题2:Hook时,发现内部类重载外部内,当不重载时报错,提示需要重载,重载之后没有返回正常值

var pre_Class = Java.use("ms.bd.c.g2").$new();//外部类
var Ordinary_Class_instance = Java.use("ms.bd.c.g2$a").$new(pre_Class); //内部类
var result = Ordinary_Class_instance.a(a1,a3); //调用方法 这里没有获取到正确的返回值
2022-01-11-发现确实是重载的这个外部类的问题,外部类g2有一个属性a,类型为long。在调用时读取这个a值为默认的0,这个值在程序运行时不应该为0才对。下面就需要针对这个值进行修正
注:问题已解决,经过测试外部类有对应的初始化函数,目前暂未发现程序自身运行时,是什么时候对这个类的属性进行赋值的


2022-01-11-问题3:接着问题2,这个外部类对应的属性(非静态)赋值有对应的函数(赋值函数,有传入参数,非构造函数),在程序自身运行时是如何对这个类的对象自身属性赋值的呢,预测可能是不知道哪里做的主动调用函数?

ccceleven 发表于 2022-1-10 15:56

沙发是我自己的,记录下所有遇到的问题,就等于写了笔记了,聪明如我{:17_1062:}

feiyunzhao 发表于 2022-2-23 10:46

ccceleven 发表于 2022-1-10 15:56
沙发是我自己的,记录下所有遇到的问题,就等于写了笔记了,聪明如我

大神 求问题1 参数构建
页: [1]
查看完整版本: 菜鸟学习Frida问题笔记