手机微信源码,分析微信协议通信方式
【研究环境】
研究对象:手机微信(V4.5版本)
运行环境:Android V2.3.4(安卓)
操作系统:WIN7
网络环境:WIFI
抓包工具:Microsoft Network Monitor 3、Wireshark(tcpdump)
反编译工具:apktool、jd-gui
源码编辑器:Eclipse
文本搜索器:Search and Replace
分析目标:分析微信通信协议,数据包加密方法。
源码下载:http://l13.yunpan.cn/lk/Q2iBrtWFnREC5
【研究微信 - 感想】
1. 微信是这二年来成长最快的手机聊天工具,微信的未来会超越QQ,所以在做微信插件的小虾们是个发展方向。
2. 微信采用HTTP协议通信,body包全采用加密转递,通信加密等核心代码在libs/armeabi库实现。
3. 微信核心代码是用C写的,扩展名为“.so”,比如通信加密就在libMMProtocalJni.so文件中实现了。
4. 微信的应用层是用JAVA写的,可以用apktool反编译转成java源码,再找到调用.so文件的源代码,来实现libs/armeabi库文件中的功能。
5. 如果没有jni载入无法解析libs/armeabi库中的.so文件,可以在webos中采用dlopen/dlsym标准库函数来解析。
6. 如果能解密libs/armeabi库中的.so动态库文件,就可以在Windows平台上实现微信聊天的收发功能。