LuckyPray / DexKit

An easy-to-use, high-performance dex deobfuscation library.
https://luckypray.org/DexKit/
GNU Lesser General Public License v3.0
476 stars 60 forks source link

希望MethodData 增加个getUsingNumbers #31

Open ALittle-Cool opened 4 months ago

ALittle-Cool commented 4 months ago

希望MethodData 增加个getUsingNumbers

teble commented 4 months ago

@ALittle-Cool 不太好做,因为数值只有二进制是确定的,需要根据上下文语义判断这个值到底是浮点数还是整数,但是可以考虑返回二进制结果交给用户自行判断?

teble commented 4 months ago

@ALittle-Cool 但是从使用角度上来说,查询的时候是允许传入usingNumbers的,感觉data不返回也不影响搜索才是

ALittle-Cool commented 4 months ago

@ALittle-Cool不太好做,因为数值只有二进制是确定的,需要根据上下文判断这个值到底是浮点数还是整数,但是可以考虑返回二进制结果自行用户判断?

可以直接返回二进制,因为资源ID只在某些方法出现,每个版本都不同,而很多时候需要用到这个数值,虽然其他方法也能获取,但是步骤过于麻烦

teble commented 4 months ago

@ALittle-Cool 很好奇,你是什么样的场景,需要通过methodData来获取usingNumbers,methodData是从哪获得的

ALittle-Cool commented 4 months ago

@teble 如果我想隐藏View,并且需要动态来控制是否显示,但是整个App里面就只有一个地方用findViewById来查找view,其他地方没有任何关联此View,只能通过ID来操作了

ALittle-Cool commented 4 months ago

如果不这样 我就只能通过遍历view来查找特征

teble commented 4 months ago

所以这跟methodData.usingNumbers没任何关系啊,你的需求不是可以通过这种查询实现吗?难道你想遍历所有的methodData然后逐一进行过滤?

matcher {
    usingNumbers(0x123456)
    addInvoke {
        name = "findViewById"
    }
}
ALittle-Cool commented 4 months ago

@teble 不是 我是要ID这个值,这个值每个版本都不一样,但是这个值只在一个method里出现,我现在可以找到methodData,但是ID无法通过methodData获取到