搞定微信小保姆

来源:互联网 发布:数显量具数据存储器 编辑:程序博客网 时间:2024/05/02 00:30
前言:   
   首先感谢各位老少爷们的捧场,在这里,向大家的支持表示感谢。
   大家的热情,我只能卖肾来还了,继续上文。

背景:   
    分析一个的大型软件的安全机制和安全缺陷是比较艰苦的。我们需要有目的有方向的去了解它。   这就像去了解一个深宅大院的男主人的保险柜一样。我们得知道院里的地形是什么样的,
   男主人住哪个房间,男主人什么时候出远门,保安在哪个位置,什么地方是薄弱环节。
   但是我们有捷径,这些事情我们找小保姆问一下就知道了,像小保姆这种不起眼的角色,安全防范是最低的。   往往掌握的信息是最多,说不定连男主人和女人主每周做几次都知道,今天我们就找找小保姆问问。

   今天的小保姆是微信的XLOG机制。微信为分析软件问题设定了XLOG机制,把日志的级别分为6种角色。
默认是6,最高是1。程序运行时,软件把这些日志输出到SDCARD中的XLOG目录。但这些XLOG是加密的。
   呵呵,小保姆嘴还挺硬,我们来点简单粗暴的,小保姆喜欢重口味。



工具准备   
    ULTRAEDIT

步骤
   1.我们找到/data/data/com.tencent.mm/lib/libwexlog.so 位置,把该文件pull出来。
         adb pull /data/data/com.tencent.mm/lib/libwechatxlog.so   libwexchatlog.so

   2.用ultraedit,G跳到0x17fe0位置,在十六进制编辑模式下把0028,改成0128,保存。(我的研究的版本是5.3/5.4)

     原理很简单
      if(bPrintfConsleLog)
     {
        __printf_consle_log(xxxx,xxxx)
     }
        __logcrypt(xxxxx,xxxxx)
  
   改成
     if(!bPrintfConsleLog)
     {
        __printf_consle_log(xxxx,xxxx)
     }
        __logcrypt(xxxxx,xxxxx)
     


     

   3.用PUSH命令把放回去。

     adb push libwechatxlog.so /data/data/com.tencent.mm/lib/libwechatxlog.so   
  
   4.在电脑上把ADT的LOGCAT打开,设定过滤条件为com.tencent.mm。
   

   5.点击手机里的微信登录。


   6.看看电脑里的LOGCAT都输出了什么。哈哈好几百K数据,小保姆都全都说出来了。

05-02 13:33:33.483: I/: [com.tencent.mm.o.ap.java] :(3825): [, , 0]:onGYNetEnd(3825): [, , 0]:onGYNetEnd after post to worker netId:0, errType:0, errCode:0, isCancel:false, hashcode:1099094024

05-02 13:33:33.493: I/ :[com.tencent.mm.ab.k]: (3825): [, , 0]:onGYNetEnd: 1099094024 [0,0,null] hash isnotifydata:false time:331 [stack:[ab.k:<init>(129)][ui.dc:kJ(227)][sdk.platformtools.ay:handleMessage(68)][sdk.platformtools.au:handleMessage(167)][sdk.platformtools.au:dispatchMessage(122)] scene:12 time:1430573613 lastd:6892383 dotime:1430573613 net:0 endtime:1430573613]
05-02 13:33:33.493: D/ :[com.tencent.mm.ab.k]: (3825): [, , 0]:dkpush req Key : 189[ 08 45 12 08 08 34 10 8b 67 ad aa 02 12 08 08 02 10 91 ca ad aa 02 12 08 08 03 10 8c ca ad aa 02 12 08 08 04 10 94 8b ad aa 02 12 08 08 05 10 94 8b ad aa 02 12 04 08 07 10 00 12 04 08 08 10 00 12 08 08 09 10 8f ca ad aa 02 12 04 08 0a 10 00 12 08 08 0b 10 94 8b ad aa 02 12 04 08 65 10 00 12 04 08 66 10 00 12 04 08 67 10 00 12 04 08 68 10 00 12 04 08 69 10 00 12 04 08 6b 10 00 12 04 08 6d 10 00 12 04 08 6f 10 00 12 09 08 c9 01 10 a1 a4 93 aa 05 12 09 08 ca 01 10 f4 ed 92 aa 05 12 05 08 cb 01 10 00 12 09 08 e8 07 10 97 d3 92 aa 05 12 09 08 eb 07 10 98 e6 fc a9 05]
0

分析   
    1.微信里面的日志内容太丰富了(小保姆知道的太多),里面什么信息都有。
通过这些信息我们突破微信的其他防范。那就是天空飘来五个字-全都不是事

   2.通过日志,我们可以看到微信还收集你的手机的MAC地址,上次登录的时间,手机的IMEI,手机号码,手机型号,手机基带芯片序列号。
当前手机系统的用户(有没有ROOT),手机的家里WIFI路由器的地址,IP,上次登录的时间,地理位置,通信录的电话本信息。丫简直就是最大的间谍软件。

   3.微信给自已留的后门还真不少,内部人员完全可以拿到你的聊天记录密码等信息。   

总结     
    1.微信把太多的信息记录到日志中,使得有可能从日志下手获取更多客户信息和攻击系统,这是比较大的安全隐患。
   
   2.我们今天做了两件比较重要的事情,
     一是绕开了微信防篡改检测机制,修改了微信的程序,
       微信还是认为我们是合法的程序。
    
       二是绕开了加密环节,直接拿到了日志。
     
    其实微信防止我们改程序还是做了不少功夫的,
     包括签名机制,组件Recover机制,后台鉴别方式,输出的TAG标识加密等。
     不是光吃饭不干活,大家如果从正面入手肯定会遇到很多障碍,只不过这次我们用了巧劲。
   3.小保姆很重要,是我们了解程序输入输出的主要入口。
0 0
原创粉丝点击