使用工具

顶部Activity(app)
ddms
jadx
xposed类框架

分析方法

静态分析

技术点

接口采用动态代理方式替换

跟踪界面

利用顶部Activity分析Activity类:com.tencent.wework.friends.controller.FriendsShareWxCardActicity

分析资源id

com.tencent.wework:id/ex2
android.widget.ImageView

public static final int ex2 = 2131303929;
资源id被使用

this.gAJ = (ImageView) findViewById(R.id.ex2);

setImageBitmap 被引用位置

最终代码定位位置

最终代码定位位置1

可调用方法1:ContactService.getService().GetMyQRCodeImageWithStyle(eQB2, z, new ICommonResultDataCallback() {

最终代码定位位置2:

可调用方法2:ContactService.getService().GetMyQRCodeImage(false, new IGetCorpAdminInfoCallback()

经过上面分析有这2个方法都可以获取自己的二维码

获取二维码的hook代码

注意点有用这里使用企业微信涉及到了一个接口,所有实现起来需要借助java 的代码模式来实现。

企业微信该接口的定义

package com.tencent.wework.foundation.callback;public interface ICommonResultDataCallback {void onResult(int i, byte[] bArr);
}

实现方式

//public interface ICommonResultDataCallback {//    void onResult(int i, byte[] bArr);//}Class cls_todoProxy = XposedHelpers.findClass("com.tencent.wework.foundation.callback.ICommonResultDataCallback", this.classLoader);InvocationHandler invocationHandler = new InvocationHandler() {public Object invoke(Object obj, Method method, Object[] objArr) throws Throwable {try {if ("onResult".equals(method.getName())) {int code = (int) objArr[0];  // if (i != 0) 获取自己二维码失败  0:成功byte[] bArr = (byte[]) objArr[1];                            iQrcodeCallback.onGetQrcode(code, bArr);//这里可以实现自己的逻辑比如保存到文件或发送的你需要的位置}} catch (Throwable th) {th.printStackTrace();}return null;}};Object obj_ContactService = ContactHelper.getInstance().getContactService(this.classLoader);//public void GetMyQRCodeImageWithStyle(int i, boolean z, ICommonResultDataCallback iCommonResultDataCallback)//ContactService.getService().GetMyQRCodeImageWithStyle(eQB2, z, new ICommonResultDataCallback()try {XposedHelpers.callMethod(obj_ContactService, "GetMyQRCodeImageWithStyle", new Class[]{Integer.TYPE, Boolean.TYPE, cls_todoProxy}, new Object[]{Integer.valueOf(0), Boolean.valueOf(isMyOrOhterMean), Proxy.newProxyInstance(this.classLoader, new Class[]{cls_todoProxy}, invocationHandler)});} catch (IllegalArgumentException e) {e.printStackTrace();}

企业微信数据存储叨叨-大家一起来叨叨

在分析企业微信过程中发现存在类似微信的数据库,而且结构几乎一样,存储模式是按企业区分不同的私有目录,可奇怪的是所有存储数据好像都不是存放在这里。

而且好像也没有存储在普通的sqlite数据库中,普通sqlite好像只是存放bugly的数据,可以肯定的一点是在断网的情况下,企业微信app还是可以展示数据,所有它不可能是采用全部存储在服务器。 难道它采用了新的方式进行存放,或缓存技术。 看来要花时间好好学习一下企业微信的数据存储。

/data/user/0/com.tencent.wework/MicroMsg/d2ce8f4dd074c254b3e9b31f51297964/EnMicroMsg.db;1参数sqlite密码:b3a5da2;4参数805306368;6参数0/data/user/0/com.tencent.wework/MicroMsg/d2ce8f4dd074c254b3e9b31f51297964/EnMicroMsg.db;1参数sqlite密码:b3a5da2;4参数805306368;6参数0/data/user/0/com.tencent.wework/MicroMsg/d2ce8f4dd074c254b3e9b31f51297964/WxExpt.db;1参数sqlite密码:b3a5da2;4参数805306368;6参数0/data/user/0/com.tencent.wework/MicroMsg/d2ce8f4dd074c254b3e9b31f51297964/AppBrandComm.db;1参数sqlite密码:b3a5da2;4参数805306368;6参数0

企业微信逆向分析之——自己二维码——静态分析相关推荐

  1. Node.JS调用企业微信API:生成渠道二维码

    目标: 通过API设置成员的"联系我"方式生成渠道标识二维码,实现标记客户扫码渠道,方便个渠道客户信息统计等. 实现环境: 白码低代码平台(该平台提供企业微信API,可直接调用,减 ...

  2. PC企业微信hook,获取个人二维码

    简要描述 获取个人二维码 操作码 102010 请求说明 参数名 必选 类型 说明 type 是 int 类型 syncKey 是 string 同步key 请求示例 { "type&quo ...

  3. 微信公众号带参数二维码的几个使用场景

    微信公众号官方开放了 "带参数二维码" 的功能,根据官网文档的描述,有如下的特点: 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口. 通过 ...

  4. 微信公众平台----带参数二维码生成和扫描事件

    原文:微信公众平台----带参数二维码生成和扫描事件 摘要: 账号管理----生成带参数的二维码 消息管理----接收消息----接收事件推送 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众 ...

  5. 基于JavaSSM和微信小程序的智能二维码门禁管理系统

    目录 1 引言 2 2 系统需求分析 2 2.1开发环境 2 2.2关键技术 2 2.2.1 Spring 框架 2 2.2.2 Spring MVC 框架 3 2.2.3 Mybatis 3 2.2 ...

  6. 怎么实现微信公众号生成专属二维码推广来源统计

    为了实现微信公众号生成专属二维码推广来源统计功能,第三方平台微号帮提供了渠道二维码生成功能实现,可以给微信公众号在线生成专属推广二维码,统计公众号各个渠道来源的粉丝,一个渠道对应一个推广二维码,可以生 ...

  7. (用微信扫的静态链接二维码)微信native支付模式官方提供的demo文件中的几个bug修正...

    原文:(用微信扫的静态链接二维码)微信native支付模式官方提供的demo文件中的几个bug修正 native支付模式一demo(用微信扫的静态链接二维码)BUG修复,一共4个BUG 1.nativ ...

  8. 微信生成带参数的二维码,合成海报,扫码后推送小程序?

    微信服务号渠道二维码功能,支持生成带参数二维码,合成海报二维码,微信扫码后推送内容:结合微号帮平台48小时信息推送,推送微信小程序. 带参二维码 海报二维码 微信扫码后回复 48小时信息推送 在微号帮 ...

  9. 微信小程序条码、二维码生成模块

    代码地址如下: http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  10. 微信公众号生成临时二维码

    微信公众号生成临时二维码 微信公众平台生成带参数的二维码官方文档 分为三个部分: 获取access_token.通过ticket换取二维码.生成带参数的二维码 特别注意:需要有生成二维码的权限. 整个 ...

最新文章

  1. ASP.NET面试题目大全(非常经典、吐血推荐)
  2. php 请求header,PHP的curl查看header信息的功能(包括查看返回header和请求header)
  3. 【Firewalld(Iptables)】
  4. Winrunner经验
  5. matlab安卓官方下载,手机matlab软件下载-MATLAB Mobile手机版下载v5.1.0 安卓官方版-单机手游网...
  6. 中国人霸屏奥运会乒乓球赛这事 外国人怎么看?
  7. 优质的石材 石头VRay材质球素材推荐,不容错过
  8. Android深入浅出系列课程---Lesson7 LLY110426_Android系统启动
  9. Bagging和Boosting(偏差与方差)
  10. 计算机桌面怎么换服,台式电脑怎么换桌面壁纸
  11. sqlmap tamper mysql_sqlmap tamper的使用
  12. 推荐一个免费的PDF在线编辑网站
  13. pr学习心得(入门篇)
  14. print spooler 启动错误 1068依赖服务或组无法启动 解决方法
  15. 关于Unity LitJson写入数据报错的问题
  16. 路径中的'.'和'..'还有'./'和'../'都是什么意思
  17. AndroidStudio选择及裁剪图片
  18. kail防火墙和端口开放相关操作
  19. Psp软件开发过程定位设计
  20. php图像识别条形码,ThinkPHP用barcode制作条形码

热门文章

  1. 完美解决“word无法创建工作文件,请检查临时环境变量”
  2. FastDB简单介绍及实例(Linux)
  3. UWP 应用中的 Button 控件
  4. 锁定计算机和睡眠有什么区别,电脑win7休眠和睡眠有什么区别?
  5. 1044 : 不及格率
  6. keystone 存储 android,KeyStone存储器架构
  7. 世界杯要来了,先跟梅西来个热身吧_数字体验_新浪博客
  8. Apple Store教育优惠(161103)
  9. 热搜大事记【2018-11-05-2018-11-11】
  10. mac转换pin计算机,MAC对应PIN码表-2012.3.4整理