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
推荐阅读
- springboot|搭建一个springboot+templates+mysql+mybatisplus代码生成器简单框架
- 人脸识别|使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)
- docker|Docker安装教程——Windows
- spring|Nacos + OpenFeign 的使用方式
- 面试|Spring Boot报错 org.springframework.jdbc.BadSqlGrammarException
- 面试|Spring Boot拦截器(Interceptor)详解
- 面试|Spring Boot框架
- 面试|解决——》Handler dispatch failed; nested exception is java.lang.NoSuchMethodError
- 阿里官方 Redis 开发规范