昨晚大约十一点左右,QQ上一好友给我发来一个星际外挂代码,说是超厉害,看我能不能正常编译
我从来就对外挂没好感,觉得那东东破坏了游戏的公平性
不过我还真的从来没有用过外挂,甚至星际外挂,我都还是头一次听说.
因为我想不到这种纯靠技术的游戏如何还能用外挂来作弊....
收下后,开了星际试了一下,的确好NB~~~
可以开地图,你可以把别人的动向看得一清二楚;
可以刷钱,用不完;
可以农民变飞龙,同时刷少量的钱;
可以显示一些信息,如别人有多少人口,多少钱,多少气等;
可以复制单位,比如炮台;
还有不少的功能没有用上........
这些功能在连网对战时也一样可用,太可怕了.......
我只是进了RPG图,因为与别人对战我不想使用这东西,感觉很没意思.对电脑的话,就无所谓了
后来研究代码,发现结构很简单,使用了几个API实现了向星际内存写SHELL代码,并建立远程线程
同时由另几个地址控制一些功能的实现,比如向某进程写某值,就打开了某功能等.
然后有四分之三的代码都是防破解的,搞得倒是很麻烦.
我把这代码直接编译后,运行星际,会挂.
后来仔细看了一下代码,里面有一个资源文件加密的过程
需要一个特殊的参数才可以让资源文件里的汇编SHELL代码正常解密出来.
过程如下:
Private Sub EncodeRes(arr() As Byte, key As Long) 'DeEncode_INI
On Error GoTo errHandle
'// init
Rnd -1
Randomize key
'// conv
Dim i As Long
For i = 0 To UBound(arr)
arr(i) = arr(i) Xor Int(Rnd * 256)
Next i
errHandle:
End Sub
第一个参数就是从资源文件里读来的CODE,第二个参数在代码里是6653,但编译后不能正常工作.
我看了其它地方,也没有发现什么不对.
估计这第二个参数就是关键.
试了N多个值,不得其果..............遂放弃.
告知好友如上分析,他感叹:没想到最后在代码里面,也还留了一手,BT啊.
不过也让我学到了一招,哈哈
以后就把关键代码放某地方,再在代码里面用这方法加密,嘿嘿 
|