【研究環境】
研究對象:手機微信(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平台上實現微信聊天的收發功能。