使用 QQ 这么多年,管理的群越来越多。现在每天被入群申请搞得烦不胜烦,于是萌生了写一个 QQ 机器人的想法。
要想实现一个 QQ 机器人,首先是要在程序里模拟登录。经过整理,可用的思路有两个:
- 使用 WebQQ 的方式登录,模拟浏览器的行为;
- 使用 Android QQ 的方式登录,模拟 Android 客户端的行为。
二者各有利弊。使用 WebQQ 方式登录协议相对简单,网络上也有相关分析;但是 WebQQ 不能与电脑上的 QQ 共存:登录 WebQQ 就会将电脑上的登录踢下线。使用 Android QQ 的方式登录,由于没有现成的资料可供查询,实现起来十分复杂;但是 Android QQ 是手机端 QQ,可以与电脑端 QQ 共存。
「要做就做好」。思前想后,我还是决定使用 Android QQ 的方式登录。于是问题来了,怎样去抓取 Android QQ 的行为呢?
- 在 Android QQ 外围进行抓包分析,然后让程序伪装成 Android QQ 向腾讯的服务器发包;
- 直接读 Android QQ 的源代码,然后仿照着相关内容重新实现。
方案 1 是常规方法,若能顺利实施,无非是不断重复抓包 - 分析 - 伪造的步骤。不过 QQ 的通信信息是加密处理过的,抓包分析比较费劲。因此,我决定尝试反编译 Android 程序,直接阅读源代码。
这里我介绍反编译安卓程序,得到 Java 代码的详细方法。
请尊重他人劳动成果,勿将此方法用于恶意活动。