使用frida获取微信EnMicroMsg.db 数据库密码

2023-05-16

这件事情浪费我两天时间,期间遇到了各种坑,记录一下
工具:
python3.7.6
frida 12.8.0
mumu模拟器
adb
SqlCipher

0x00 frida

  • Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。
  • frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。frida上层接口支持js、python、c等。

0x01 安装frida和frida-tools 和配置

python端 frida 和frida-tools安装
       因为我的python环境是3.7的,再加上根据大家的评价 说 12.8.0比较稳定,这选择12.8.0。没有使用最新的版本(最新版本好像不支持py3.7)

python3 -m pip install frida==12.8.0
python3 -m pip install frida-tools==5.3.0

查看你frida版本
frida-server 服务端版本下载

https://github.com/frida/frida

同样选择 12.8.0 版本
frida-server选择
我这里使用 是的 mumu模拟器 (记得勾选获取root权限方便后续操作)
adb连接模拟器中的android系统 查看系统架构

adb connect 127.0.0.1:7555 # 创建连接
adb shell	# 进入系统 shell
getprop ro.product.cpu.abi	#查看系统架构

注意:7555是 Mumu模拟器内安卓系统 默认端口
在这里插入图片描述
下载 frida-server-12.8.0-android-x86_64.xz 版本
解压上传

# 创建frida-server至 安卓系统上
adb push frida-server-12.8.0-android-x86_64 /data/local/tmp  
# 赋予执行权限 并执行
chmod +x frida-server-12.8.0-android-x86_64
./frida-server-12.8.0-android-x86_64

# 端口转发
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043

测试枚举模拟器系统的 进程
frida-ps -U
在这里插入图片描述

0x02 使用frida获取 微信EnMicroMsg.db 数据库密码

源码分析参考连接:https://www.cnblogs.com/lxh2cwl/p/14842537.html

hook.js

import frida 
import sys   
 
jscode = """
    Java.perform(function(){ 
        var utils = Java.use("com.tencent.wcdb.database.SQLiteDatabase"); // 类的加载路径
         
        utils.openDatabase.overload('java.lang.String', '[B', 'com.tencent.wcdb.database.SQLiteCipherSpec', 'com.tencent.wcdb.database.SQLiteDatabase$CursorFactory', 'int', 'com.tencent.wcdb.DatabaseErrorHandler', 'int').implementation = function(a,b,c,d,e,f,g){  
            console.log("Hook start......");
            var JavaString = Java.use("java.lang.String");
            var database = this.openDatabase(a,b,c,d,e,f,g);
            send(a);
            console.log(JavaString.$new(b));
            send("Hook ending......");
            return database;
        };
         
    });
"""
 
 
def on_message(message,data): #js中执行send函数后要回调的函数
    if message["type"] == "send":
        print("[*] {0}".format(message["payload"]))
    else:
        print(message)
     
process = frida.get_remote_device()
pid = process.spawn(['com.tencent.mm']) #spawn函数:进程启动的瞬间就会调用该函数
session = process.attach(pid)  # 加载进程号
script = session.create_script(jscode) #创建js脚本
script.on('message',on_message) #加载回调函数,也就是js中执行send函数规定要执行的python函数
script.load() #加载脚本
process.resume(pid)  # 重启app
sys.stdin.read() 

获取数据库密码成功
在这里插入图片描述
将EnMicroMsg.db文件从模拟器(手机)复制到电脑上(手机或者模拟器要登陆微信)

adb  pull /data/data/com.tencent.mm/MicroMsg/xxxxxxxxxxxxx/EnMicroMsg.db EnMicroMsg.db

使用 SqlCipher 工具打开EnMicroMsg.db
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用frida获取微信EnMicroMsg.db 数据库密码 的相关文章

  • 获取微信openid(或昵称头像)的授权登录及其代理

    lt php 本页用于微信授权登录及其代理 64 version V2 0 64 author ty1921 lt ty1921 64 gmail com gt 64 param backurl 传get参数backurl xff0c 则授
  • Android逆向分析实例(三)-解密微信EnMicroMsg.db数据库

    1 简介 首先介绍下EnMicroMsg db数据库 xff1a 这个数据库是存放在Android手机本地的用来保存微信聊天记录的一个数据库 xff0c 是一个Sqlite数据库 xff0c 且手机必须要有root权限才能获取到 xff0c
  • 使用frida获取微信EnMicroMsg.db 数据库密码

    这件事情浪费我两天时间 xff0c 期间遇到了各种坑 xff0c 记录一下 工具 xff1a python3 7 6 frida 12 8 0 mumu模拟器 adb SqlCipher 0x00 frida Frida是一款轻量级HOOK
  • 获取微信openid(或昵称头像)的授权登录及其代理

    lt php 本页用于微信授权登录及其代理 64 version V2 0 64 author ty1921 lt ty1921 64 gmail com gt 64 param backurl 传get参数backurl xff0c 则授
  • frida初探1

    frida包括客户端和服务 服务运行在windows上面 通过Pip install frida安装 安装比较慢的话 直接下载frida 12 6 13 tar 执行 python setup py install 然后会要继续下载 fri
  • App逆向案例 X嘟牛 - Frida监听 & WT-JS工具还原(一)

    App逆向案例 X嘟牛 Frida监听 WT JS工具还原 一 提示 文章仅供参考 禁止用于非法途径 文章目录 App逆向案例 X嘟牛 Frida监听 WT JS工具还原 一 前言 一 资源推荐 二 App抓包分析 三 反编译逆向分析 四
  • frida学习及使用

    文章目录 安装frida 安装python3 7 设置环境变量 安装pycharm和nodejs 使用frida 将frida server push到手机设备中 端口转发 安装apk 使用jadx查看java代码 运行frida serv
  • 获取x-sign/x-mini-wua/x-sgext/x-umt

    文章目录 获取x sign x mini wua x sgext x umt 获取应用上下文 获取Mtop 获取MtopConfig 从MtopConfig获得sign对象 创建参数并调用 获取x sign x mini wua x sge
  • IOS系统抓包之短链-破解双向证书

    前言 上次文章iOS系统抓包入门实践之短链有说道关于常规抓包 路由直连以及单向证书校验的抓包方式 该文章将是在短链抓包中进行补充 主要是针对短链抓包中不太经常用到的双向证书 并进行破解和通过Charles抓取数据包 给大家提供一些解决思路
  • frida native hook简单demo

    记录frida hook native的笔记 整体代码如下 Java perform function console log Inside java perform function function jstring2Str jstrin
  • 反反调试:app 检测 data/local/tmp 目录绕过手段

    最近在逆向某app时遇到一个非常恶心的反调试手段 只要是maps和fd中存在 data local tmp 甚至只有tmp的字段 app就给kill掉 因为这个目录对于安卓逆向工作来说 是一个比较敏感的目录 hluda server和fri
  • 这恐怕是学习Frida最详细的笔记了

    转载自Sakura的博客 https eternalsakura13 com 2020 07 04 frida title Frida Android hook categories Android逆向 致谢 本篇文章学到的内容来自且完全来
  • WSA - root,frida与ida测试

    本文旨在配置windows subsystem for android win安卓子系统 来作为win在开启了hyper v的情况下的一种轻量的安卓模拟器方案 使用MagiskOnWsa设置root权限 最终使其正常与开发环境 frida
  • Frida hook零基础教程

    1 环境搭建 1 准备frida服务端环境 Releases frida frida GitHub 根据手机具体版本下载对应文件并解压 Android手机一般是arm64架构 将解压后的frida server推送到手机端的 data lo
  • 加壳的app分析dex(可以正常抓包的话)

    简介 使用的是 https github com hluwa frida dexdump 安装 pip3 install frida dexdump 分析 这一步可以在window上看 使用查壳工具发现该apk使用的是360加固 两种脱de
  • JS逆向之基础定位技巧

    篇幅有限 完整内容及源码关注公众号 ReverseCode 发送 冲 当我们拿到一个网站时 首先就是抓包定位加密参数的实现 本文将通过常用的定位方案结合实际案例完成对加密参数的分析 搜索关键参数 这是最常见也是最简单的定位方案 F12打开网
  • frida hook 原生非导出函数

    我出于学习目的逆向这个 Android 应用程序 该应用程序在本机层上实现了所有有趣的功能 因此我在 Arm Android Studio 映像上运行该应用程序并逆向共享库 因此该应用程序正在使用 ghidra 进行调用我设法将共享对象反编
  • 如何为嵌套类函数编写 Frida 钩子?

    安卓版本6 0 1 弗里达 v 12 2 19 我是弗里达的新手 不知道如何解决这个问题 我的目标函数位于路径 com gt appname gt folder gt xyz class 在 xyz class 中 该类的嵌套如下 publ
  • 当 SSL_get_fd 返回 -1 时,这意味着什么?

    我正在使用 frida 分析一个程序 该程序肯定通过 SSL 连接到某个服务器 当我打电话时SSL get fd 它返回 1 从文档中我看到这意味着ssl不包装套接字 BIO 已明确配置 因为我可以通过SSL get rbio openss
  • 查找手动注册(混淆)的本机函数地址

    我试图理解一个 Android 应用程序 其中包含一个名为foo在班上com app Bar 课堂内Bar有一个加载共享对象的静态子句System loadLibrary libfoo so 我认为是用它构建的 f可见性 隐藏 https

随机推荐

  • 【A - 咕咕东的奇遇】

    题意 xff1a 一个圆环由字母表组成首尾相接的环 xff0c 环上有一个指针 xff0c 最初指向字母a 每次可以顺时针或者逆时针旋转一格 例如 xff0c a顺时针旋转到z xff0c 逆时针旋转到b 求一个字符串至少要转多少次 样例输
  • 【C - 可怕的宇宙射线】

    题意 xff1a 宇宙射线会在无限的二维平面上传播 xff08 可以看做一个二维网格图 xff09 xff0c 初始方向默认向上 宇宙射线会在发射出一段距离后分裂 xff0c 向该方向的左右45 方向分裂出两条宇宙射线 xff0c 同时威力
  • 程序设计思维与实践 Week5 作业 B TT's Magic Cat

    题目描述 xff1a Thanks to everyone 39 s help last week TT finally got a cute cat But what TT didn 39 t expect is that this is
  • 【B - 猫猫向前冲】

    题意 xff1a 众所周知 xff0c TT 是一位重度爱猫人士 xff0c 他有一只神奇的魔法猫 有一天 xff0c TT 在 B 站上观看猫猫的比赛 一共有 N 只猫猫 xff0c 编号依次为1 xff0c 2 xff0c 3 xff0
  • 【C - 班长竞选】

    题意 xff1a 大学班级选班长 xff0c N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适 xff0c 意见具有传递性 xff0c 即 A 认为 B 合适 xff0c B 认为 C 合适 xff0c 则 A 也认为
  • 【元素选择器】

    题意 xff1a 思路 xff1a 对于每一层抽象为一个结构体 string s 读入的每一层语句 string bq 标签属性 bool if id 标记是否有id属性 string id id属性 int father 父层 int l
  • 【炉石传说】

    题意 xff1a 炉石传说 xff1a 魔兽英雄传 xff08 Hearthstone Heroes of Warcraft xff0c 简称炉石传说 xff09 是暴雪娱乐开发的一款集换式卡牌游戏 xff08 如下图所示 xff09 游戏
  • vscode连不上网

    强烈建议把电脑管家退了 xff0c 改成NAT试试
  • 并查集(模板)

    并查集 xff08 合并 xff0c 查找 xff0c 集合 xff09 1 题目描述 如题 xff0c 现在有一个并查集 xff0c 你需要完成合并和查询操作 输入格式 第一行包含两个整数 N MN M 表示共有 NN 个元素和 MM 个
  • shell编程-位置参数和特殊变量

    位置参数和特殊变量 首先我们先来聊聊 C C 43 43 的命令行参数一遍大家理解shell的位置参数和特殊变量 int main int argc char argv 1 argc表示参数的个数 比如 a out do some asld
  • 程序设计——第十二周作业(三维空间找路径、东东扫宿舍、括号匹配)

    A必做题 span class token macro property span class token directive keyword include span span class token string lt bits std
  • 获取文件行数(单个文件、特定目录所有文件、目录下特定扩展名文件)

    题目描述 写一个 bash脚本以输出一个文本文件 nowcoder txt中的行数 示例 假设 nowcoder txt 内容如下 xff1a span class token macro property span class token
  • CCF CSP201609-3炉石传说(c++100)

    CCF CSP201609 3炉石传说 简单模拟 span class token macro property span class token directive keyword include span span class toke
  • 程序设计思维与实践 Week6 作业 A 氪金带东

    题目描述 xff1a 实验室里原先有一台电脑 编号为1 xff0c 最近氪金带师咕咕东又为实验室购置了N 1台电脑 xff0c 编号为2到N 每台电脑都用网线连接到一台先前安装的电脑上 但是咕咕东担心网速太慢 xff0c 他希望知道第i台电
  • CSS进阶-盒子与动画

    CSS进阶 盒子与动画 文章目录 CSS进阶 盒子与动画前言Chapter04 CSS3动画1 Animation动画1 1 关键帧1 2 定义关键帧1 2 1 定义示例1 2 2 效果1 2 3 完整案例 1 3 常用绑定动画属性 2 T
  • 差分构造

    题目要求 Thanks to everyone s help last week TT finally got a cute cat But what TT didn t expect is that this is a magic cat
  • week15实验

    文章目录 A题目要求代码 B题目要求代码 C题目要求代码 D题目要求代码 E题目要求代码 F题目要求代码 A 题目要求 Q 老师有 N 个学生 xff0c 每个学生都有各自独立的编号 xff0c 且编号范围在 1 N 之间 这一天 xff0
  • linux shell脚本执行错误:bad substitution

    sh test sh 出现bad substitution提示信息 与linux shell使用的是 bin sh xff0c 还是 bin bash有关系 脚本中指定使用的是 bin bash shell xff0c 在调试的时候使用的是
  • C语言算法之数组冒泡排序

    数组冒泡排序 include lt stdio h gt void main int i j t a 10 printf 34 please input 10 numbers n 34 for i 61 0 i lt 10 i 43 43
  • 使用frida获取微信EnMicroMsg.db 数据库密码

    这件事情浪费我两天时间 xff0c 期间遇到了各种坑 xff0c 记录一下 工具 xff1a python3 7 6 frida 12 8 0 mumu模拟器 adb SqlCipher 0x00 frida Frida是一款轻量级HOOK