能力值:
( LV5,RANK:70 )
|
-
-
2 楼
没太看明白你的commit, 根据我的对stalker源码的理解,把trust_threshold 加大,或者永远都重新编译不就能轻松解决问题嘛
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
可能是对重编译的这个词表达的不太准确,重编译这个说法实际上跟trust_threshold的关系不是很大 1. trust_threshold这个值的作用是在未达到阈值之前,走block都会由stalker引擎来决定是否进行后补丁(backpatch),其中的backpatch可以简单理解成将blockA的下一步直接连接到blockB,这样就不会有stalker引擎在这两个block中间介入上下文操作,而达到加快执行速度的目的(没有stalker的上下文介入就必然会导致stalker在这之间无法感知任何的变动); 2. 然而重编译(recompile)这个说法更偏向于说的是让用户决定怎么去transform这个block(也就是js中所写的stalker.follow的transform方法实现)- 对应的调用是在gum_exec_ctx_compile_block方法中的ctx->transform_block_impl。
而这篇文章所说的问题是,进入了stalker引擎后(也就是说这本来就是threshold在阈值之内的事情),在判断是否要进行重编译的这个判断逻辑上出现了一些问题
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
zhuzhu_biu
没太看明白你的commit, 根据我的对stalker源码的理解,把trust_threshold 加大,或者永远都重新编译不就能轻松解决问题嘛[em_049]
可能是对重编译的这个词表达的不太准确,重编译这个说法实际上跟trust_threshold的关系不是很大 1. trust_threshold这个值的作用是在未达到阈值之前,走block都会由stalker引擎来决定是否进行后补丁(backpatch),其中的backpatch可以简单理解成将blockA的下一步直接连接到blockB,这样就不会有stalker引擎在这两个block中间介入上下文操作,而达到加快执行速度的目的(没有stalker的上下文介入就必然会导致stalker在这之间无法感知任何的变动); 2. 然而重编译(recompile)这个说法更偏向于说的是让用户决定怎么去transform这个block(也就是js中所写的stalker.follow的transform方法实现)- 对应的调用是在gum_exec_ctx_compile_block方法中的ctx->transform_block_impl。 而这篇文章所说的问题是,进入了stalker引擎后(也就是说这本来就是threshold在阈值之内的事情),在判断是否要进行重编译的这个判断逻辑上出现了一些问题
|
能力值:
( LV5,RANK:70 )
|
-
-
5 楼
zsa233
可能是对重编译的这个词表达的不太准确,重编译这个说法实际上跟trust_threshold的关系不是很大
1. trust_threshold这个值的作用是在未达到阈值之前,走block都会由sta ...
好的,看来是我理解的浅显了, 大佬看你提交代码改了挺多的; 我很好奇,你是配置出了完整的代码跳转,提示那些吗(c/vala),我目前的方法是直接把meson用 cmake重写了一遍,
|
能力值:
( LV3,RANK:30 )
|
-
-
6 楼
zhuzhu_biu
好的,看来是我理解的浅显了, 大佬看你提交代码改了挺多的; 我很好奇,你是配置出了完整的代码跳转,提示那些吗(c/vala),我目前的方法是直接把meson用 cmake重写了一遍,
我是frida项目子模块迭代拉下来,只关注我要改的子模块(在了解了项目模块大概的前提下),比如frida-gum。vscode的打开这个模块,函数跳转的话通常能跳转就跳转,不能跳转就搜索关键词。调试验证就是用__android_log_print打日志来观察,编译还是按照官方的来。说实话项目内容太多了,改得越多越不好发现问题  ,如果觉得修改后手动编译替换的操作流程太长,我是建议写脚本来自动化这个编译上机流程。
|
能力值:
( LV5,RANK:70 )
|
-
-
7 楼
好吧,我以为终于遇到一个能搭建官方的开发环境的人了, 我直接全部meson移植cmake,目前用着很舒服,跳转,补全,编译,都没问题, 你也可以试试,我目前用起来是比较方便的, 换成cmake的难度也不大
|
能力值:
( LV8,RANK:130 )
|
-
-
8 楼
666
|
|
|