frida由浅入深系列五:获取腾讯视频SharedPreferences内存放的数据

·  阅读 2039
frida由浅入深系列五:获取腾讯视频SharedPreferences内存放的数据

由于工作一直会遇到frida来执行各种Hook,现在梳理整个frida的相关使用场景。由于安装的资料以及文档网上已经特别多了,本系列教程忽略相关安装步骤。

通常我们想要知道一个app内部存储的相关数据,这个时候我们可以直接hook对应的系统api的赋值函数来直接获取。

明确Hook目标

  • hook SharedPreferences:putBoolean
  • hook SharedPreferences:putString
  • hook SharedPreferences:putInt
  • hook SharedPreferences:putFloat
  • hook SharedPreferences:putLong

编写JS代码

setImmediate(function() {
Java.perform(function () {
  Java.use('android.app.SharedPreferencesImpl$EditorImpl').putBoolean.overload('java.lang.String', 'boolean').implementation = function(k, v) {
    console.log('[SharedPreferencesImpl putBoolean]', k, '=', v);
    return this.putBoolean(k, v);
  }
  Java.use('android.app.SharedPreferencesImpl$EditorImpl').putString.overload('java.lang.String', 'java.lang.String').implementation = function(k, v) {
    console.log('[SharedPreferencesImpl putString]', k, '=', v);
    return this.putString(k, v);
  }
  Java.use('android.app.SharedPreferencesImpl$EditorImpl').putInt.overload('java.lang.String', 'int').implementation = function(k, v) {
    console.log('[SharedPreferencesImpl putInt]', k, '=', v);
    return this.putInt(k, v);
  }
  Java.use('android.app.SharedPreferencesImpl$EditorImpl').putFloat.overload('java.lang.String', 'float').implementation = function(k, v) {
    console.log('[SharedPreferencesImpl putFloat]', k, '=', v);
    return this.putFloat(k, v);
  }
  Java.use('android.app.SharedPreferencesImpl$EditorImpl').putLong.overload('java.lang.String', 'long').implementation = function(k, v) {
    console.log('[SharedPreferencesImpl putLong]', k, '=', v);
    return this.putLong(k, v);
  }
});
});

复制代码

frida调用

启动frida进行hook。

现在可以直观的看到frida获取成功腾讯视频的SharedPreferences。

分类:
Android
标签:
收藏成功!
已添加到「」, 点击更改