一、缘起开发外挂,惊呼安全隐患
以前从来没有过外挂开发经验,想挑战一下,阅读了很多关于外挂开发的文章,最后决定采用WinSock封包控制核心技术,开发环境为Microsoft Visual C++。现在强劲的工作室脱机外挂都是采用WinAPI hook全局钩子核心技术,其原理相似,不过其拦截过程要比WinSock复杂的多,且很多库的函数结构并未公开,不能写模拟库,我对自己的水平没有信心。尽管这样,我的外挂还是搁浅了,原因是搞不懂诛仙封包的加密方式,贸然向服务器发送封包会导致与服务器断开连接。
我搁浅了的小外挂
之后我买几份口碑较好的收费外挂,哎,人外有人,天外有天阿,他们真的写出来的,真正意义的封包控制外挂,连和NPC对话都解决了,绝对不是简单的键盘模拟可以做的出来的…只能说明一个问题,诛仙的封包加密方式已经被破解,我立刻在baidu搜索了下诛仙加密,居然有高手公布了诛仙登陆封包的加密方式(MD5加密理论上不可逆,但是还是有很多方法可以破解),同时也得知部分木马,如网游猎手号称可以从封包内直接截取密码…这就意味着,什么软键盘输入,复制粘贴,乱序输入,字母符号复杂的组合等脆弱的防线在不法盗号分子的眼里,都只是浮云,只要你中了木马,号早晚是我的…
上面说了这么多,无非就是要阐述一个问题,如今的诛仙盗号与反盗号,完全是一场木马的对决。
二、主流木马技术,防线不堪一击
卡巴斯基正版最新?Windows所有补丁全打?360安全卫士?系统安全了?NO!, not even close…接下来我介绍一下主流的木马技术。
1. 加花加壳,改特征码
一般杀毒引擎都是根据特征码来判断的,木马则会对主流杀毒软件进行针对性欺骗,杀毒软件扫不出木马那太正常了。
2. 反弹连接,穿透防火墙
防火墙对外来的访问会严格的控制,而对由内向外的访问则把握欠佳。
3. 启动服务,线程插入
Ctrl+Alt+Del,看看有没有可疑的进程?过时了…现在木马都插入系统进程,放眼看去什么都正常,可就是丢号…
4. 多进程多服务互相支持
这是木马从流氓软件上学来的,有些木马隐蔽不是很好,不过难以查杀干净,一旦一个进程被结束,另外一个支持进程立刻帮其恢复。
5. SSDT恢复功能
说来可笑,这个也是我才听说的,新技术,针对卡巴斯基,轻松绕过其防御功能。
三、束手就擒or奋起反抗?
面对各项先进的木马技术,难道玩家只有任黑客宰割的份么?不是的,无论再先进的木马,要想成功的把你的帐号密码发出去,肯定要与外界建立通信连接,那么开端口是免不了的,这就跟我们检测木马提供了方便,下面请一步一步的按着我说的去做。
1. 打开X:\…诛仙\element\userdata目录,用记事本打开currentserver.ini,找到服务器的地址,例如我所在的服务器网2蜀山为shushan.link.zhuxian.com.cn,端口29000
2. 开始->运行->“cmd”之后执行 “ping “您的服务器””,会返回服务器的IP,如蜀山为[123.234.7.41],找一个小本把这个记下来,之后分析的时候有用。
3. 关闭所有的你能关闭的程序,包括诛仙,QQ,UT,暂停杀毒软件更新,注意,一定要关闭所有可能访问网络的程序,否则将会加大判断的难度。
4. 再次开始->运行->cmd之后执行“netstat -no”这时会显示你所有的网络连接,主要关注state一栏,是否有established(已建立的)…正常情况下在关闭所有网络程序时是不应该有的.
5. 如果有established进程,则说明有隐藏的进程在与外界悄悄地通讯!你的电脑很可能感染了木马!此时不要慌,再看state显示established的foreign address,这个IP你是否熟悉,或能判断其来源,身份,如果不能,那你危险了,记下相应的PID值…去下载一个windows进程管理器,找到PID值对应的进程,若该进程是系统进程,那么恭喜你,我可以十拿九稳的判断你的电脑感染了DLL线程插入木马,因为系统进程一般是不会与外网建立连接,进行数据交换的…这类木马技术含量高,而且一般都作了主流杀毒软件免杀,建议找自己认识的电脑高手帮你解决吧…或者等待我的下篇文章,手把手教你清楚木马~
6. 如果你的netstat –no里面没有established,也别高兴得太早,cmd不要关,盗号木马多会因诛仙进程启动而被激活连接,好,运行诛仙到登陆界面…不要着急登陆,切到CMD,再次运行“netstat -no”,这次如果正常的话,state里面还是不应该有established(如果有,跳回第5部吧)…不过会有很多state是time_wait的,这个是正常的。
7. 好,随便用个小号,登陆诛仙到人物选择页面,之后再执行netstat –no,这次会出现established连接,找established对应的foreign address,拿出你之前的小本子吧,看看这个是不是与你记下来的IP处于同一网段(就是前三个数是一样的,比如123.234.7.41和123.234.7.37就是同一个网段的。)如果不是,或有多个established连接,其中任意一个不是,请跳回第五部吧…
8. so far so good,如果你的电脑和我描述的一样,那进游戏吧,路上走两步,再切过去执行,netstat –no,如果established连接对应的foreign address均与小本子上记的服务器网站处于同一网段,那么恭喜你,你的电脑此时此刻是安全的。
诸位,您看懂了么?
没看懂没关系...多看几遍...总比每次号被洗,损失成千上万的RMB划算...有什么问题可以提出来...我有空就回答~~~
看似复杂,其实我要是讲给有一定基础的人,只需要两句话。
第一句,原理是任何程序想对外建立数据交换都需要开端口;
第二句,方法是对netstat进行实时监控,看是否有非游戏外的连接被建立,如果有,追查到底...

评论加载中…