如何从Android模拟器反向设计kik的服务器API?

时间:2017-02-07 08:40:25

标签: android reverse-engineering kik

我在kik messenger进行了一次群聊,已超过50名成员。我需要自动化一些事情,比如基于参与度的声望点,以及踢非活跃的成员,这些成员不会在XXX天内发布任何内容。我已经查看了API reference,似乎机器人可以在群组中进行互动的唯一方法就是使用@mentions。这意味着我们无法将它们添加到群组中,也无法监控群组对话。我也遇到this,但它似乎没有帮助。

当前的kik bot API提供了非常有限的权限,并且不允许监控组消息,所以我一直在考虑reverse engineering the server API并创建一个充当机器人并与此API交互的普通帐户。我已设法通过fiddler重新路由流量,但我不确定从那里开始。

所以问题是:对于在Android模拟器上运行的应用程序的API进行逆向工程的工作流程是什么

提前致谢

1 个答案:

答案 0 :(得分:5)

这是检查网络流量以及如何调试与API交互的一般说明。仅将它们用于您允许的设备/ API。请注意可能的法律影响并事先寻求法律建议。例如,在您的国家/地区进行逆向工程可能是违法的。

准备工作:

  1. 使用Fiddlermitmproxy等工具在计算机上设置代理。
  2. 配置代理以拦截和解密SSL连接。在此过程中,您必须生成SSL根证书(instructions for Fiddlerinstructions for mitmproxy)并将其安装在您的手机/模拟器上,以使其接受代理生成的任何证书。
  3. 在手机的网络设置中配置代理。
  4. 如果应用/设备不支持代理,请在您的计算机上启动ad-hoc WiFi网络,将设备连接到该网络,然后使用Wiresharkinstructions how to decrypt SSL)捕获整个流量。< / p>

    好像你已经这样做了。现在是时候执行您喜欢的任何操作来检查/拦截您的手机并观察/记录它们触发的请求。这看起来像这样:

    1. 发送消息。
    2. 识别触发的请求并将其与其他应用程序引起的噪音分开,例如:通过查看请求URL或目标IP。
    3. 保存已触发的请求以供将来参考,并查看可能有趣的详细信息,如用户ID,会话令牌,URL和请求参数。如果您不确定已修复的内容和变量,请多次重复操作(即发送消息)并将请求相互比较。
    4. 如果您认为自己找到了所需内容,请尝试使用curl等工具重新创建会话,并检查结果是否符合您的期望。如果没有,请继续收集数据并重试。编写一些自动化测试,以便能够验证将来的行为。