dqzg12300/fridaUiTools

frida 版本自定义问题

Closed this issue · 11 comments

当前的frida版本 虽然内置了14和15, 但是frida还是会不段更新的

能否改成frida部分由用户自己下载然后上传到项目目录下, 这样工具就可以脱离了版本的控制,完全由用户决定啊

本机 直接pip install frida 的时候 版本总是和你的不一样

额。这样存在一个问题,我打包一个可执行程序的时候,会将你当前环境pc上的Frida打包进去。我即使做了自动下载任意版本的frida-server,并且随意切换frida-server。这里切换的只是手机端的frida-server。但是打包进去的pc用的本地frida和你切换的版本不一样。你照样无法使用。所以我现在的这个方式就是打包两个可执行应用跑两个不同版本。

你本地安装可以自己选择版本比如pip3 install frida==15.1.9。而且这个应该不用安装对应吧,这个是打包在里面的才对。除非你是用pycharm运行的

那要是我本地是最新的16.0.2, 我不用你这个上传的功能上传到手机,我自己找对应的server-android16.0.2装到手机上。自己用命令启动手机frida,然后用你的工具去attach这样可以吗(实际上操作的时候报版本不一样)
还有个因为我本地版本和你内置的版本不一样,我修改你里面的启动命令的bat脚本。但是修改过了在工具UI上点击启动frida后,我修改的那个bat脚本就又变回去了。。

本地不用自己装frida(只需要装在手机上吗)。 好吧,我本地本来就有的,只是版本不一样,那用你这个工具,最终用的是你这个上面的frida的吧,而不是我自己本地的 。
那你打包的时候能否不把frida打包进去,安装完全让用户自己装,你让他定义下启动脚本的版本就行了啊

如果你想直接用你自己环境的frida。可以选择用pycharm打开运行项目就可以了。你想改启动脚本要改sh目录里面的tmp文件。bat是根据tmp生成的。你固定改成你指定的版本即可。多数情况下大家很少会使用最新版本。一般使用稳定版本。比如现在很多人用14的版本。因为升级后有些功能可能发生变动。可能导致原本能执行的脚本无法正确执行。

好的 感谢

大佬,有个疑问;
这个工具在整合frida同时执行多个js脚本的时候,都直接把多个js文件内容拼起来的,为什么拼起来就直接可以了啊,每个.js里都有执行入口啊;
source += open("./js/default.js", 'r', encoding="utf8").read()
source += open('./js/r0capture.js', 'r', encoding="utf8").read()
...

你说的执行入口是指什么?我的做法就是简单粗暴的组成一个超大的js然后涵盖需要的功能。写在函数外的部份js都会逐行执行。

抱歉,我搞错了,多个js的内容,直接拼起来好像确实可以,我原以为入口是这个
Java.perform(function () {
...
});
。。。其实它应该就是一个函数体, 相当于调用一个函数执行(比如:setImmediate), 所以同样可以同时调用多个

是的。所以关键点还是拼接js。对各种功能的js理解后,加入到界面化管理就是一些比较繁琐的工作。没有啥技术含量。