代码改变世界

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

2022-08-02 14:48  c#在路上  阅读(947)  评论(0编辑  收藏  举报

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 是脚本。

二,现有的方案介绍:

https://bbs.pediy.com/thread-266767-1.htm

 

 

 

https://www.52pojie.cn/thread-1467912-1-1.html 

 

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

 

 我的方案

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

 

3.1 集成步骤

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

 

public class MainActivity extends AppCompatActivity implements OnMessage {

    @Override

    protected 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-arm64

            FridaInjector fridaInjector = new FridaInjector.Builder(this)

                    .withArm64Injector("frida-inject-12.8.2-android-arm64")

                    .build();

 

            // build an instance of FridaAgent

            FridaAgent fridaAgent = new FridaAgent.Builder(this)

                    .withAgentFromAssets("agent.js")

                    .withOnMessage(this)

                    .build();

 

            // register a custom interface

            fridaAgent.registerInterface("activityInterface", Interfaces.ActivityInterface.class);

 

            // inject whatsapp

            fridaInjector.inject(fridaAgent, "com.suning.mobile.ebuy", true);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

 

    @Override

    public 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