分享一种找等效gadget的方法
fx-es(ms)吧
全部回复
仅看楼主
level 4
leafling 楼主
之前看吧里面分享的找不同版本间等效gadget的方法,基本都需要自己去分析rom,对懒人十分的不友好,所以发个帖子分享一下我一直在用的方法
一句话说就是用MT管理器内置的文本比对器进行匹配。
因为不同的版本间等效gadget附近的汇编代码是差不多的,所以依靠文本比对器就能够将相似的地方匹配在一起,所以直接对比一下就可以了
唯一缺点就是MT的这个功能是需要会员的,我也试过一些其他的免费的文本比对工具(比如WinMerge这些),但可能是算法不一样,效果都差的很。
所以没钱的可以直接撤了()
啊不过如果需要的话也可以把需要翻译的gadget发到3楼,我帮忙找一下(反正也不废什么事
效果图放2楼了,基本上都能正确匹配到(当然啊不保证100%正确,差的太远比如rt-fix(verC:2B948 verF:2BAD4)就匹配不到了)
不过一般情况还是能应付的了的
下面具体介绍一下方法。(其实如果你mt管理器玩的比较熟的话估计就已经知道怎么搞了)
(混f吧的应该都不会是什么赛博文盲吧...应该不需要我写喂饭式教程吧.....)
首先需要不同版本rom的反编译文件,我就直接分享到这里了:
百度网盘
反编译文件来源是这里(坟贴勿回):
发现我的disas和ROM的网盘文件是...
因为我让gemini写了个反编译文件的语法高亮,所以后缀名改成了.disas,其实直接改成.txt也可以
顺带分享一下语法高亮文件就是那个Casio ROM.mtsx在MT管理器里点一下,然后安装就可以了
还有一个文件是我用的等宽字体文件,看代码比较舒服(够不够喂饭
总之就是左划一下某个版本的反编译文件(进入多选界面),再点一下另一个版本的文件,长按随便一个,选文本对比就可以了
进去后直接搜地址就行
可惜的就是mt的文本比对器不支持导出结果,所以现阶段还实现不了全自动化翻译程序(
2026年07月30日 16点07分 1
level 4
leafling 楼主
#2楼效果展示区
①F版经典拼字地址(verC:2235A, verF:2236E)
②memcpy gadget(verC:0CD06, verF:0CD8A)
③延迟gadget(verC:0916C, verF:091D8)
2026年07月30日 16点07分 2
level 4
leafling 楼主
#3楼求助区
不想充MT会员的话可以把需要翻译的gadget发在这里,我什么时候看到了帮忙搜一下(注清原版本和待翻译版本)
2026年07月30日 16点07分 3
其实可以使用apktoolM,里面自带的文本对比功能是免费的
2026年07月31日 01点07分
@木每日尧王王今 我撤回这句话,新版本里好像取消了文本对比功能,反正我是找不到了
2026年07月31日 01点07分
@木每日尧王王今 我手机上的apktoolM里还有,但我试了试,它是纵向对比不是横向对比,匹配不了
2026年07月31日 02点07分
level 8
我是直接把txt文件复制成了word文档,然后用WPS的查找功能找的
2026年07月31日 02点07分 4
感觉你好像没明白我的意思,我分享的这个方法是来找等效地址的(不是简单的定位地址),比如说你之前的帖子问一个问题 里面问的等效地址,用这个方法直接就可以搜出来F的0CD8E在C中是0CD0A,2363E在C中是23642,不用再人工对比汇编代码了
2026年07月31日 05点07分
@leafling 哦 那我理解了[真棒]
2026年07月31日 08点07分
level 9
还不如写个py程序直接输出翻译地址[汗]
2026年07月31日 08点07分 5
话是这么说,但不清楚mt具体的算法逻辑,mt也没提供接口什么的,怎么写
2026年07月31日 11点07分
@leafling pydroid/VScode
2026年07月31日 12点07分
@XgoodollsX ???哥们儿你这说的只是IDE啊?算法逻辑怎么搞?
2026年07月31日 12点07分
吧务
level 13
我记得有人写过一个网站在线找的了
2026年07月31日 09点07分 6
1