安卓逆向安全|9.2 安卓逆向之—Frida持久化方案

9.2 安卓逆向之—Frida持久化方案
摘要:
做逆向有一个必不可少的工具是Frida,动态调试工具。 官网地址:https://frida.re。他是很多端同样的动态hook 技术,可以输出日志,动态调试,后边还会讲到怎么操作界面等。方便逆向第一步的开发。可以支持安卓,苹果,桌面应用。这次主要讲的是怎么发布Frida脚本,比如我写好了一个脚本,我怎么给客户使用,活着别人打包直接使用。

一,一般的Frida 脚本的运行方式:
在手机端运行 frida_server ,然后执行脚本 //frida -U --no-pause -f com.xx -l test.js
【安卓逆向安全|9.2 安卓逆向之—Frida持久化方案】com.xx 是app identifier, test.js 是脚本。
二,现有的方案介绍:
定制room
刷机room,改配置等.

定制room, 或者各种方案,比较麻烦。

三, 我的方案
需要root 手机,但是可以直接打包app,就比较方便省事。

3.1 集成步骤
引入 fridainjector 库项目。比如在MainActivity 可以这样写。

public class MainActivity extends AppCompatActivity implements OnMessage {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try {// build an instance of FridaInjector providing binaries for arm/arm64/x86/x86_64 as needed// assets/frida-inject-12.8.2-android-arm64FridaInjector fridaInjector = new FridaInjector.Builder(this).withArm64Injector("frida-inject-12.8.2-android-arm64").build(); // build an instance of FridaAgentFridaAgent fridaAgent = new FridaAgent.Builder(this).withAgentFromAssets("agent.js").withOnMessage(this).build(); // register a custom interfacefridaAgent.registerInterface("activityInterface", Interfaces.ActivityInterface.class); // inject whatsappfridaInjector.inject(fridaAgent, "com.suning.mobile.ebuy", true); } catch (IOException e) {e.printStackTrace(); }}@Overridepublic void onMessage(String data) {try {JSONObject object = new JSONObject(data); Log.e("FridaAndroidInject", "whatsapp pid: " + object.getString("pid")); } catch (JSONException e) {e.printStackTrace(); }}}



onMesage 就是js 脚本发送过来的消息。

需要注意的事项:
1,有些js 方法可以不能执行。
2,日志很难打,最后onmess 多写信息。

下载地址
https://download.csdn.net/download/yijianxiangde100/86271926

    推荐阅读