首页
社区
课程
招聘
[原创]剑侠2大补贴 服务器PHP代码
发表于: 2010-4-17 16:18 10661

[原创]剑侠2大补贴 服务器PHP代码

2010-4-17 16:18
10661
剑侠2大补贴 服务器php代码

    这是一个古老而长生的外挂,存在了很久也没有被官方封闭,破解版也很少。前段时间受朋友之托完成这个软件的服务器代码逆向,开始拿郁闷了很久PHP以前没有接触过,看了许久开发文档。
    这个软件的主要算法是MD5,SHA1,BLOWFISH,BASE64,CRC32。算法过程中使用了一些随机值的CRC32值,算法最后使用MD5算出密文的MD5值,放到密文最前端。密文分为三段第一段是记录天数或点数,第二段存放第三段的解密密钥的加密密文,第三才是解密后要真正得到的数据。

下面是软件加密过程
其中变量atype1,username1,hashdata1是GET提交到服务器的数据。
变量data1保存的是第二段的加密数据结果
变量data2保存的是第三段的加密数据结果
-------------------------------------------------------------------------------------------------------
$lk = dechex(crc32((string)rand()));
$rk = dechex(crc32((string)rand()));
$bk = dechex(crc32((string)rand()));
$userandpass = md5($atype1 . "/" . $username1);
$hash = sha1($lk . $rk);
$bfishkey = sha1($bk);
$dhash =  sha1($lk . $hashdata1 . $rk);
$bfish1en = $userandpass . $hash . $bfishkey;
$bfish1 = encode($bfish1en, $dhash);
$data1code = strToHex($bfish1);
$data1md5 = md5($data1code ) ;
$data1 = $data1md5 . $lk . $rk . $data1code;
$bfish2 = encode($code1,$bfishkey);
$data2code = base64_encode($bfish2);
$data2md5 = md5($data2code);
$data2 = $data2md5 . $data2code;
--------------------------------------------------------------------------------------------------------

代码仅供交流。

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有几个问题,我不太了解这个游戏,问题可能问得比较幼稚,见笑了

1、这个只是他的server的翻版吗?

2、第一个问题如果答案是是,那么第二个问题是:你怎么知道他的数据怎么存储的,而且,怎么存储对你有价值吗?你又拿不到数据库访问权限

3、你是怎么知道判断你猜的数据的加密方式跟他的一样的?自己搭数据库的话,只要client加密一样,server你只要保证逻辑一样就行了吧,不需要必须按照他的存储方式吧?

4、这个破解的用处在哪里?(我看到说你同学委托,应该是有用吧,不是单纯为了学习吧)
2010-4-18 00:28
0
雪    币: 146
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
针对tsongd提出的问题回答:
1,写模拟服务端就是按照服务器加密算法和逻辑翻版。
2,一个网络验证肯定会有它的数据存储,如果没有怎么来判断会员数据呢。
3,针对这个需要经过一系列的调试模拟保证数据一致性,如果用于运营没有数据库怎样保证验证的唯一性啊。
4,这套源码具体用途就不详细说明了哈。
2010-4-18 09:19
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那你怎么知道你的数据库格式跟他的一样的呢?只是server的外部接口一样不算吧
2010-4-18 12:56
0
雪    币: 231
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
围观   关注此帖先。
2010-4-18 14:26
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
另外,你cardsc.php这两行写错了,呵呵

36     echo '"'.$numstr."\t";
37     echo '"'.$pwdstr."\t\n";

多了个双引号吧,应该是

36     echo $numstr."\t";
37     echo $pwdstr."\t\n";

这样吧
2010-4-18 16:05
0
雪    币: 146
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
前面不加个引号遇到全数字在EXCEL文档中不久成了数字了
2010-4-18 18:26
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
加引号不是这么加的。。。

你有打开看过那个excel么。。。
2010-4-18 20:34
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
btq
9
应该是只完成了一部分,我试了一下,可以登陆,但不能用。

1、绕过登陆验证,显示剩余点数或天数,但游戏里面呼叫不出来。
2、游戏界面也没发现有任何外挂注入的痕迹。比如怪的血量、文字提示等。
3、伪造的密文包是4.68K,真的密文包是7.11K,差距很大
4、客户端在验证的时候,并不会带一个online的url参数去服务器端。

可能是服务器的算法已经改了吧~~~
2010-8-13 13:16
0
雪    币: 146
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
过期了 很久都没有维护了
2011-1-31 13:25
0
雪    币: 146
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
官方的数据包解密后有一个密钥,每次更新都会变更
2011-1-31 13:29
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
又是大补贴。。。
2011-1-31 16:37
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
36     echo $numstr."\t";
37     echo $pwdstr."\t\n";
大补
2011-1-31 16:53
0
游客
登录 | 注册 方可回帖
返回
//