QQ农场外挂制作的探索(没有图)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:02:45

 

前一段时间被人蛊惑,玩上了QQ农场,还挺有意思。咱是做程序的,玩不多久,就想着怎么做一个外挂自动升级和偷菜。于是花了一些时间研究:

QQ农场是flash写的,和服务器端通讯是通过Http请求的,于是想着怎么能模拟这些Http请求。用firebug研究了一番,也上网搜索了一番,它的请求不算复杂。不过要想发出正确的请求,需要知道一个farmkey,这个farmkey被用来生成一个校验的key,放在请求的参数中。farmkey是加密在flash中的,要获得需要费些周折,网上可以搜到最新的key。
本来准备按这个思路进行,后来一想,这个farmkey是腾讯控制的,它会经常更换这个key,换了以后,需要重新破解这个key。另外请求是程序模拟的,腾讯还是比较容易甄别请求的真伪的。这样自己就相当被动,要随着别人来调整自己的程序。
于是想着换一种思路,决定走高层路线,在flash这方面做文章,比方说控制那个flash来做一些工作。怎么控制呢?通过模拟键盘鼠标动作是一种思路,也比较常见,不过还是被否定了,因为还是比较被动,也不太可靠。
最后想到的办法是,攻击那个flash,想办法把自己的代码嵌入到那个flash里,相当于代码注入。
具体摸索过程不说了,说一下最终的大概步骤:
1. 研究那个flash,比方说,它有哪些模块组成。
可以可以通过观察flash加载时,load了哪些swf来获知。

2. 用sothink swf decompiler来反编译swf,查看大概的逻辑


3. 用Flash来写嵌入的swf,这个swf是自己写的,会被用来替代qq农场加载时的某个swf,这样自己的swf(包含代码)就被注入到qq农场的flash了
4. 想办法把qq农场的某个组件的http请求替换为自己的内容,详见Hack Http请求


5. 用Adobe Flash cs4写注入的组件,用Flash Builder写实际操作的组件。




之所以分开写,是因为经试验,Flash Builder写的组件无法被直接加载,用Flash cs4写的可以被加载
所以注入分了两步,先注入Flash cs4写的简单组件,再加载Flash Builder写的包含逻辑的组件
6. 结果:


这样,在QQ农场的Flash中嵌入了自己的ui和代码逻辑,比方说,上面点击自己按钮就可以刷新好友的状态。
要做到定时刷新好友状态,有草就除,有菜就偷,也就不难了。