• 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

    com.xx 是app identifier, test.js 是脚本。

    二,现有的方案介绍:

    定制room

    刷机room,改配置等. 

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

    三, 我的方案

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

    3.1 集成步骤

    引入 fridainjector 库项目。比如在MainActivity 可以这样写。

    1. public class MainActivity extends AppCompatActivity implements OnMessage {
    2.     @Override
    3.     protected void onCreate(Bundle savedInstanceState) {
    4.         super.onCreate(savedInstanceState);
    5.         setContentView(R.layout.activity_main);
    6.         try {
    7.             // build an instance of FridaInjector providing binaries for arm/arm64/x86/x86_64 as needed
    8.             // assets/frida-inject-12.8.2-android-arm64
    9.             FridaInjector fridaInjector = new FridaInjector.Builder(this)
    10.                     .withArm64Injector("frida-inject-12.8.2-android-arm64")
    11.                     .build();
    12.             // build an instance of FridaAgent
    13.             FridaAgent fridaAgent = new FridaAgent.Builder(this)
    14.                     .withAgentFromAssets("agent.js")
    15.                     .withOnMessage(this)
    16.                     .build();
    17.             // register a custom interface
    18.             fridaAgent.registerInterface("activityInterface", Interfaces.ActivityInterface.class);
    19.             // inject whatsapp
    20.             fridaInjector.inject(fridaAgent, "com.suning.mobile.ebuy", true);
    21.         } catch (IOException e) {
    22.             e.printStackTrace();
    23.         }
    24.     }
    25.     @Override
    26.     public void onMessage(String data) {
    27.         try {
    28.             JSONObject object = new JSONObject(data);
    29.             Log.e("FridaAndroidInject", "whatsapp pid: " + object.getString("pid"));
    30.         } catch (JSONException e) {
    31.             e.printStackTrace();
    32.         }
    33.     }
    34. }

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

    需要注意的事项:

    1,有些js 方法可以不能执行。

    2,日志很难打,最后onmess 多写信息。

    下载地址

    https://download.csdn.net/download/yijianxiangde100/86271926

  • 相关阅读:
    深度学习系列1——Pytorch 图像分类(LeNet)
    redis的安装及acl小结
    【状态机设计】Moore、Mealy状态机、三段式、二段式、一段式状态机书写规范
    RabbitMQ消息的重复消费问题
    基于SpringBoot使用MyBatisX插件
    【云原生】Docker网络原理及Cgroup硬件资源占用控制
    java基于springboot+vue在线考试系统39n99
    Windows资源管理器已停止工作的解决方法
    408-2014
    Apple M1 开启HiDPI的新方法,无需虚拟屏,无需SwitchResX
  • 原文地址:https://blog.csdn.net/yijianxiangde100/article/details/126121697