younghare 发表于 2017-3-3 13:15

微信逆向之辅助小工具

本帖最后由 younghare 于 2017-3-26 21:26 编辑

这个工具的主要作用就是检查微信窗口的变化,当然通过命令行工具也可以实现 ,不过我觉得麻烦就习惯用自己的小工具
android中获取顶部activity的命令行方法
:adb shell dumpsys activity top





2:自己写一个辅助功能工具记录各个activity的变化情况(在次我把代码放在csdn上,如果你需要监控其他只需要修改包名即可)


http://download.csdn.net/detail/caizhigui/9765994
由于是辅助而已,没有什么代码。主要的代码如下





    public void onAccessibilityEvent(AccessibilityEvent event) {
      String s_pkgName = event.getPackageName().toString();
      String s_getClassName=event.getClassName().toString();
      //打印event信息
      //printEvnetInfo(event);
      //获取跟节点
      AccessibilityNodeInfo nodeInfo_root;
      nodeInfo_root = getRootInActiveWindow();
      //LogUtil.d(TAG, "nodeInfo_root根节点信息==="+nodeInfo_root.toString());

      //我们仅对微信工作,其他应用不工作.包名的过滤(这种方式最常用)
      if (!s_pkgName.equals("com.tencent.mm")){
            Toast.makeText(this, "后台====请通知开发人员软件配置错误!", Toast.LENGTH_LONG).show();
            return;
      }

      switch (event.getEventType()){
            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED://切换Activity时会被触发
                LogUtil.d(TAG, "=====窗口状态变化事件32====类名" +s_getClassName);
                //System.out.println("=====窗口状态变化事件32====类名" +s_getClassName);
                //activityList.add(s_getClassName);
                break;
            case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED://64通知栏消息的事件
                //LogUtil.d(TAG, "**********通知栏状态变化事件64**********类名"+s_getClassName);
//                doNotificationEvent(event);
                break;
            case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED://Activity中内容发送了变化时触发
                LogUtil.d(TAG, "------------内容变化了2048--------------类名"+s_getClassName );
                if (s_getClassName.equals("android.widget.TextView")){

                }
                break;
      }


    }




下面是记录的log
D/DetectionService: =====窗口状态变化事件32====类名com.tencent.mm.ui.LauncherUI(微信的启动界面)
D/dalvikvm: JIT code cache reset in 0 ms (0 bytes 2/0)
D/dalvikvm: GC_FOR_ALLOC freed 397K, 18% free 3979K/4848K, paused 2ms, total 2ms
D/DetectionService: ------------内容变化了2048--------------类名android.widget.FrameLayout
D/DetectionService: ------------内容变化了2048--------------类名android.widget.TextView
D/DetectionService: ------------内容变化了2048--------------类名android.widget.TextView
D/DetectionService: ------------内容变化了2048--------------类名android.widget.ListView
D/dalvikvm: GC_FOR_ALLOC freed 525K, 21% free 3967K/4964K, paused 2ms, total 2ms
D/DetectionService: ------------内容变化了2048--------------类名android.widget.FrameLayout
D/DetectionService: ------------内容变化了2048--------------类名android.widget.ListView
D/DetectionService: ------------内容变化了2048--------------类名android.widget.TextView
D/DetectionService: ------------内容变化了2048--------------类名android.widget.TextView
D/DetectionService: =====窗口状态变化事件32====类名com.tencent.mm.ui.SingleChatInfoUI(微信的聊天信息界面)
D/dalvikvm: GC_FOR_ALLOC freed 518K, 21% free 3961K/4964K, paused 2ms, total 2ms
D/DetectionService: ------------内容变化了2048--------------类名android.widget.TextView
。。。。。。。。。。。。


我将根据这个工具和我的“Wechat6.3.31smali第二版”(关键部分已经打上断点)
实现了对微信的逆向并实现微群控功能实现

[*]自动发图片、文字给好友或(聊天群)
[*] 转发语音给好友
[*]聊天消息转发给好友
[*]自动关注微信公众号
[*]自动打招呼
[*]自动加好友
[*] 邀请好友加入群聊
[*]邀请好友加入会话



==========统一回答======
根据网友反馈的现在是微信6.5问题,我这边统一做解答:

这个工具跟微信版本没有关系。
smali源码是分析而已,你只要在微信6.3.31或其他版本中找到具体位置,你就可以通过关键字符到微信6.5中去搜索到一样的代码
微信仅混淆了代码,但没有混淆特殊字符哦

丶FollowYou 发表于 2017-3-3 14:16

我就看看

liye1320 发表于 2017-3-4 23:06

younghare 发表于 2017-3-4 20:42
二维码不是uin是微信内部码。跟加微信好友一样用的时内部码,如果你懂的加微信好友(如附近人、摇一摇等 ...

我是看到你发的微信6.3.31smali源码,才开始学着用android studio动态调试的微信的,内部码什么的,确实不清楚。准备拿二维码名片生成练下手。。。恳请你有空指导下源码位置,或者发个教程,谢谢!

wcc19930525 发表于 2017-3-3 13:25

虽然看不懂但是觉得很厉害呢

太行山搬书 发表于 2017-3-3 13:40

看看,感觉厉害

你老婆说我更长 发表于 2017-3-3 13:41

虽然看不懂但是觉得很厉害呢

yangzhiqin 发表于 2017-3-3 13:52

一点都看不懂{:1_912:}

xuelang12888 发表于 2017-3-3 13:52

我很需要。能详聊吗

ylc521 发表于 2017-3-3 13:52

看了,还是不懂

linden0722 发表于 2017-3-3 13:59

楼主,csdn 没积分下呀,,就不能放这边让人下?

jht168888 发表于 2017-3-3 14:04

都是高手呀!这个我是看不懂 但哈是下载下来看看
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 微信逆向之辅助小工具