首页 > 源码分享, 高级民工 > QQ安全管家安全飞人flash游戏破解

QQ安全管家安全飞人flash游戏破解

2012年8月22日 发表评论 阅读评论

  安全飞人游戏是由QQ安全管家奥运会期间推出的一个活动游戏,地址是:http://guanjia.qq.com/act/brand/olympic/?ADTAG=WEB.AOYUN.GJ.GW 。做为flash游戏而言游戏最后得分一般都是会加密后发送到服务器。安全飞人这个游戏也不例外,当然作为flash游戏破解的方式很多,最直接的方式就是反编译找到加密算法直接计算出符合要求的字符串即可。
  安全飞人这个游戏的flash根据检测是通过doSwf加密的,doSwf其加密方式主要有两点:第一点对原始flash中的as代码进行混淆,主要体现在变量名称,类名,方法名的替换,根据破解的流程上看主要是就是把这些名称替换成特殊字符,形成乱码以达到代码不好阅读,不过这种方式通过简单的字符替换就可以让as代码变得易读;第二点是在第一点的基础上对flash进行加壳处理,这个有点类似于一般exe文件的加壳。 针对doswf的破解而言我在网上还没找到现成的工具,不过通过对exe的脱壳的理解,一般来说最后原始文件都将会在内存中被还原。所以抓住这一点就可以在内存中找到原始的flash.下面先介绍一下步骤。
  1.浏览器打开游戏flash。即访问到游戏页面即可。
  2.用winhex打开浏览器进程的内存,直接把整个浏览器分配的内存区域全部dump出来。
  3.用winhex搜索flash文件的特征码。根据adobe的swf文档 描述:

并结合本游戏的flash版本可以得到一个得到特征码:46 57 53 09,直接用winhex搜索特征码,并结合特征码后4字节是文件长度,经过排除和测试后最终可以找到原始的swf文件,通过winhex dump出来。这里所说的原始swf文件其实是被doswf混淆as后的,所以在反编译得到的swf将出现乱码。如图。


根据之前的测试安全飞人最后发送游戏得分的地址是:http://hd.guanjia.qq.com/fcgi-bin/playjoin?id=2012&logic=gj&sc=300&k=b349d8b02bc48eb31c86c4cbf03db125 ,sc是积分,k是一个校验字符串,应该是md5加密得到的。

根据这样一个字符串在反编译得到的代码中搜索类似hd.guanjia.qq.com这样的字符串就有最终定位到发送请求的as代码。复制代码替换乱码后就可以进行代码分析了,这里就不多做说明,最后得到的算法实现,java版的。

import org.apache.commons.codec.digest.DigestUtils;
 
public class T {
 
	public static String md5(String str){
		return DigestUtils.md5Hex(str);
	}
 
	public static void main(String[] args) {
		String[] arr={"dnty", "kjjs", "dnzs", "rjsj", "mmcs", "ssfh", "xtyh", "xfld", "fekx", "mtix"};
 
		//游戏得分
		String score = "177450";
		//qq号
		String qq = "123456";
		int i=0;
		String a1="";
 
		while(i<score.length()-1){
			a1=a1+md5(arr[ Integer.parseInt(score.charAt(i)+"") ]);
			i++;
		}
 
		System.out.println(md5(a1+qq));
	}
}

输出的就是校验字符串了,替换url中的相关参数登陆后直接访问构造的url就可以把发送积分到服务器上。。达到作弊的目的 -_-#

  1. 2012年8月30日18:24 | #1

    博主果然高端!

  2. 2012年8月30日18:28 | #2

    刚确认了下,确实是DoSWF加密的。不过是好早之前的版本了(3.8.*)版本。BTW:这个用的竟然是老版本的破解版!! 汗~~

  3. 2012年10月20日14:10 | #3

    @laan
    哪高端了?

  4. 2012年10月20日14:11 | #4

    laan :
    刚确认了下,确实是DoSWF加密的。不过是好早之前的版本了(3.8.*)版本。BTW:这个用的竟然是老版本的破解版!! 汗~~

    这个不行吧?

  5. 2012年10月20日14:28 | #5

    laan :
    刚确认了下,确实是DoSWF加密的。不过是好早之前的版本了(3.8.*)版本。BTW:这个用的竟然是老版本的破解版!! 汗~~

    错了!

点击刷新