hinagikulove 发表于 2023-7-31 06:03

关于MT和NP管理器修改代码后无效的问题

app里有一个类,我把他类方法里的代码全都删除了,然后还是在正常执行删除前的代码。我确定修改成功了,而且我再次打开查看smali代码的时候也的确是删除掉的,然后我把他拷到电脑上用jadx查看代码也是空函数,但是他还是执行的是我删除代码之前函数内的内容。特别奇怪,我测试过了另外几个类和函数,也都是出现这种情况了,明明是删除掉了代码,但是不生效。我试过重启手机、卸载app等方式,依旧没有用,有没有大佬为我解惑的






hinagikulove 发表于 2023-8-2 01:42

zhuxiangyu1024 发表于 2023-8-1 17:21
发一下包,看看啥apk这么神奇。

hu牙,9.3以上的apk版本都可以,我测试了一下8.15版本改了就可以生效,但是9.3以上的所有版本都是改了以后我用jadx断点调试,改后的代码有十几行,但是实际还是只执行了3行就结束了(没改前就是3行)

hinagikulove 发表于 2023-7-31 07:25

无闻无问 发表于 2023-7-31 07:14
正常应该不会,除非是动态加载释放,有可能是障眼法,你改的是忽悠你的,真正执行的是另外的……

我有用frida进行hook,我如果直接把这个函数hook了以后不调用this.函数()的话,这个函数是不会被执行的,但是如果他是从地方执行的话我应该hook是拦截不到的,但是事实是我拦截到了,所以应该就是在这里执行的,特别离谱,整个代码里面我搜索只有那一个入口,我给删掉了,还能执行,极其离谱

无闻无问 发表于 2023-7-31 07:14

正常应该不会,除非是动态加载释放,有可能是障眼法,你改的是忽悠你的,真正执行的是另外的……

w12171110 发表于 2023-7-31 08:09

虽然不是很懂 但是有没有可能你改的是部分残留呢

zhuxiangyu1024 发表于 2023-7-31 09:32

都是错觉,说明内存里肯定有这个函数,相信结果不要相信过程,就是没改对而不是其他特殊的原因。重启手机、卸载app和这个应该都没有关系。 不过我有个建议,用frida调试拿xposed做持久化,其他这样修改编译测试再修改都太浪费时间了。

无闻无问 发表于 2023-7-31 10:12

hinagikulove 发表于 2023-7-31 07:25
我有用frida进行hook,我如果直接把这个函数hook了以后不调用this.函数()的话,这个函数是不会被执行的, ...

会不会从其它地方加载一模一样的dex到内存?然后执行……

BonnieRan 发表于 2023-7-31 10:30

逆向小白,
1. 可能本地加载/热加载/(网络下载)|(其他地方加密数据,如so里)动态解密加载,卸载清除软件数据重装/换其他手机或模拟器试一下
2. 动态调试看一下调用堆栈,溯源该方法的调用者
3. 复制该方法签名,搜索全部调用,全部删除,看会不会再触发
提供几个思路。

lies2014 发表于 2023-7-31 11:15

用JEB动态调试,在代码处下断点,看是否确实调用了这里

dz20130101 发表于 2023-7-31 12:12

老板,针对mt初学者,零基础的,有学习方向不{:1_918:}

hinagikulove 发表于 2023-7-31 18:06

zhuxiangyu1024 发表于 2023-7-31 09:32
都是错觉,说明内存里肯定有这个函数,相信结果不要相信过程,就是没改对而不是其他特殊的原因。重启手机、 ...

主要是我修改完后是要放到无root的机器上使用的,所以没法用xposed {:1_937:}
页: [1] 2
查看完整版本: 关于MT和NP管理器修改代码后无效的问题