阿钰_Ayu 发表于 2019-10-13 14:32

微信账单获取

本帖最后由 阿钰_Ayu 于 2019-10-13 17:52 编辑

主要就是获取到数据库里的信息,拿到下面contentStr,格式转化为JSON数据,去在线解析一下 就知道了。
这类信息一般不会去更新,正在研究获取二维码的,回头更新


刚才留言了一些人,想看看具体点的。还给我点赞了,那我就给各位写详细一点看看

//账单的信息
XposedHelpers.findAndHookMethod("com.tencent.wcdb.database.SQLiteDatabase", lpparam.classLoader, "insert", String.class, String.class, ContentValues.class, new XC_MethodHook() {
    @Override
    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
      super.afterHookedMethod(param);
      try {

            ContentValues contentValues = (ContentValues) param.args[2];
            String tableName = (String) param.args[0];
            if (!tableName.equals("message") || TextUtils.isEmpty(tableName)) {
                return;
            }
            Integer type = contentValues.getAsInteger("type");
            if (null == type) {
                return;
            }
            if (type == 318767153) {               
//主要就是拿到这个contentStr,在下边转换为JSON数据(我转化中用的是 第三方jar包,各位兄弟姐妹想怎么转化都可以,这个contentStr是一个html的数据)               
                String contentStr = contentValues.getAsString("content");
                Log.e(TAG, "contentStr_JSONObject:" + contentStr);
                JSONObject msg = XML.toJSONObject(contentStr);
                Log.d(TAG, "收款信息" + msg);
                JSONObject mmreader = msg.getJSONObject("msg").getJSONObject("appmsg").getJSONObject("mmreader");

                //全日志信息
                String des = msg.getJSONObject("msg").getJSONObject("appmsg").getString("des");
                Log.e(TAG, "进入判断字段阶段des" + des);
                String title = mmreader.getJSONObject("template_header").getString("title");
                Log.e(TAG, "选择的账单==" + title);
                if (title != null && !TextUtils.isEmpty(title)) {
                  JSONObject mmreader1 = msg.getJSONObject("msg").getJSONObject("appmsg").getJSONObject("mmreader");
                  if (title.contains("收款到账通知")) {
                        title_shou(mmreader1);
                  } else if (title.contains("微信支付凭证")) {
                        title_fu(mmreader1);
                  } else if (title.contains("转账到银行卡到账成功")) {
                        bankcard(mmreader1);
                  } else if (title.contains("银行卡发起成功")) {
                        Log.d(TAG, "转账到银行卡发起成功");
                  }
                }
            }
      } catch (Exception e) {
            Log.e(TAG, "获取账单信息出错:" + e.getMessage());
      }
    }
});


我担心大家看不懂 title_shou /title_fu/bankcard 这三个方法 我就在下边贴出一个示例 让大家明白一下,就是去解析JSON数据的,并不是什么特殊的代码:


lonely_coder 发表于 2019-10-13 15:57

微信自带的账单是真的难用,如果这种方式拿到的数据全的话,很有想象的空间

one0nine0736418 发表于 2019-11-3 10:47

阿钰_Ayu 发表于 2019-10-28 16:50
你呢 把我这一套使用起来,然后看一下,就知道了,通过 json格式就可以了解到里边的所有信息

我是小白,完全看不懂:lol,也不会用,网上有人可以通过微信转账记录1分钟左右就查到对方的wxid,时间这么短,貌似没这么复杂吧,肯定还有别的方法

ph1999 发表于 2019-10-13 15:04

这个有用帮你加分

yanha520 发表于 2019-10-13 15:06

这个就有点厉害了。!~

yzhongyan 发表于 2019-10-13 15:09

这个就有点厉害了。

dreamzj 发表于 2019-10-13 15:22

厉害 52大神无处不在

阿钰_Ayu 发表于 2019-10-13 15:25

各位觉得有用的话,请互相探讨一下哦,这年头工作曲折,有工作机会互相推荐一下 哈哈哈

alec_python 发表于 2019-10-13 15:26

兄弟厉害了

山人来也 发表于 2019-10-13 15:27

高手就是高手 这个我是不明白

wuxinwudi 发表于 2019-10-13 15:34

看你摆弄,仅仅就是看看而已.

小皓丶 发表于 2019-10-13 15:39

这个真的强 我靠
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 微信账单获取