自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

暴雪和黑客的战争七:Warden和外挂的进化(二)

外挂凭着前一篇介绍的三板斧算是应付过了warden的第一轮攻击。但是还有一个问题没有解决:外挂的工作原理是通过安装旁路点(detour patch)修改原有游戏代码的流程,从而获得游戏的控制权。但是从反检测的角度来看,这种工作方式简直是噩梦-检测起来太容易了。在这方面那些不依赖于截获游戏代码工作的外挂(d2hackmap和基于AutoIt的MMBOT等都是)具有天然的优势。对于Maphack这种...

2006-11-29 21:59:00 147

Anti-Warden技术之外挂的自我卸载

外挂Anti-warden的方法之一是给warden mod做数字签名,在检测到不安全或者未知的warden mod时,停止工作。对于以注入到游戏进程的方式运行的外挂来说,应该在warden开始执行检测之前自动卸载。这一篇介绍外挂自动卸载技术,也就是说如何在检测到不安全的.mod时把自己卸载掉。可能有人会想,这有什么难的,不就是调用FreeLibrary(假设加载用LoadLibrary)吗。调用...

2006-11-28 23:00:00 104

暴雪和黑客的战争六:Warden和外挂的进化(一)

Warden的机制使得暴雪能够在不需要更新客户端的情况下任意更新检测代码。事实上,自从D2升级到1.11以来,Warden的检测mod和外挂双方一直都在针对对方的改变而进化。这一篇介绍外挂如何躲避前一篇提到的.mod使用的三种检测方法:DLL扫描、进程扫描和窗口扫描。躲避DLL扫描前面介绍过,外挂一般是做为一个普通的DLL远程注入到游戏进程进行工作的,因此Warden mod最早的检测手段...

2006-11-27 23:26:00 145

暴雪和黑客的战争五:Warden的不完全技术分析

前一篇提到了Warden的基本工作原理,这一篇从具体实现上来看看它到底是如何运作的。首先要说明的是,我在warden上没有花很多功夫,只是一些不完整的分析,也不保证我说的都是正确的。在游戏客户端连接到game server进入游戏的时候(WOW为登录的时候),客户端和服务器端先negotiate一个新的session key(128位RC4)用于随后的warden通信。negotiate过程...

2006-11-25 14:40:00 152

如何让ActiveSync直接支持Ethernet连接

用过ActiveSync 连接Windows CE设备和PC的同学都知道,相对于Serial、USB等连接方式,Ethernet连接是个后娘养的孩子-微软出于某种考虑,让Ethernet连接方式在能够使用之前必须先用Seiral或者USB在设备和主机之间建立partnership。我个人一直觉得这不是一个合理的设计。比如就我们的设备而言,虽然正式的产品不支持ActiveSync,但是由于有些第三方...

2006-11-24 17:35:00 136

Process Explorer for WinCE:揭示Windows CE系统运行时状态的强力工具

这篇要介绍的是我自己写的一个用于监控Windows CE运行时系统状态的工具-Windows CE Remote Process Explorer。2004年我开始从事Windows CE平台的开发,之前我对Windows CE几乎一无所知,为了了解Windows CE的系统机制,我利用业余时间写了这个工具。到目前为止,它已经具有了相当多的功能,也帮我解决了很多工作上的问题。简介如果你想监...

2006-11-22 18:02:00 112

如何制作支持VMWare的Windows CE BSP

不知道有没有人试过在VMWare中跑过Windows CE。可能有人会问:在VMWare中跑Windows CE有什么意义?Windows CE不是有基于Vritual PC的emulator吗?要做干吗不做一个基于Microsoft自己的Virtual PC的?简单的答案是,VMWare支持一些Virtual PC(包括Windows CE emulator)不支持的硬件。对我来说,最吸...

2006-11-19 22:01:00 154

C++临时变量的另类应用:基于iostream的类型安全的log接口设计

几年前做的一个东西,现在专注于系统底层开发,C++的高级功能用的比较少了,写出来回忆回忆。在实际的应用开发中,log模块设计是必不可少的一部分,log模块设计的好坏直接影响到系统的性能和日后的维护。总的来说,log模块在功能上除了日志级别、时间和消息正文这些必须的信息外,最好还能记录日志产生时尽可能多的信息,比如线程ID、模块名称、源文件、代码行等。在log接口的设计上应该尽可能简化,以方便调用。...

2006-11-15 23:27:00 115

Hacking Windows CE: 如何从线程ID获取线程名称

在一个线程出现异常行为时,比如说CPU占用率过高,抛出异常等,你一定想知道这个线程是由哪个模块创建的。因此无论在哪个操作系统上,获取线程名称是诊断线程相关问题的重要一步。从线程ID获取线程名称通常的方法是,先获取该线程的入口地址,然后枚举进程内所有已加载模块,最后判断线程入口地址落在哪个加载模块范围内。枚举进程内已加载模块可用Win32标准的CreateToolhelp32Snapshot/M...

2006-11-11 21:26:00 88

推荐一篇介绍Visual C++对象模型的老文

看到一位朋友在博客里谈到C++的多重继承问题: 透过汇编另眼看世界之多继承下的虚函数函数调用。我也想说两句。从汇编的角度研究C++的实现真的是学习C++的一个很好的方法。要了解C++的对象模型,特别是多重继承下的对象模型,当然要看Stanley Lippman的“深度探索C++对象模型”。另外还有MSDN上的一篇文章,可能很多人都没注意到,讲的也很清楚。这里我向大家强烈推荐,虽然这是一篇发表在19...

2006-11-10 20:28:00 65

暴雪和黑客的战争四:暴雪的杀手锏-The Warden

本来想写点儿别的东西。但是看来大家还是对外挂比较感兴趣<wbr></wbr>,就接着再写写吧。1.10时期的成功,使得一些黑客不免自我得意,Mousepad甚至扬言<wbr></wbr>,暴雪应该请他来做hacks检测。2005 年8月1号,暴雪正式发布1.11 patch,紧接着在9月13号又更新到1.11b,宣告了1.11时代的到来。...

2006-11-10 18:43:00 122

[旧文存档]Introduction to Remote Run Library

也是2001年在vchelp发表的一篇相关文章。原文在这里。代码可以在vchelp下,不过比较旧。也可以直接向我要。做做这个library的原因是当时正热衷于玩代码远程注入。远程注入的代码编写的时候有很多限制,比如说必须关掉/GZ编译选项,不能使用全局/静态变量,远程运行的代码由于没有调试符号只能做汇编级调试,等等。因此做了这么一个可以把整个EXE模块远程注入到其他进程的东西。再次提醒,不要再...

2006-11-10 00:30:00 97

旧文重贴,悼念我的第一个电子邮箱:在同一个进程空间运行两个程序

前天偶然点开了我的网摘(以前一直不知道CSDN这个网摘是怎么回事),竟然发现里面保存了我在2001年写的这篇文章。于是翻了一遍,不想看到了后面留的email地址,勾起了我的伤感回忆。 fenny@163.net,这是我在互联网上申请的第一个email地址,那还是在1996年的时候,在学校的开放实验室里。记得Forest还拿这个名字打趣过我,说你怎么起了这么个名字,好歹也得叫个dollar什么的呀(...

2006-11-10 00:18:00 192

如何把Windows CE安装文件下载到本地进行安装

今天不讲外挂,说点儿别的。前几天微软为了Windows CE 6.0的发布大张旗鼓,搞了个Virtual Launch Event。本来想着要去凑凑热闹的,结果忙着写外挂文章,给忘了。今天想起来要去下载CE6的Evaluation版研究研究,为未来的产品升级做准备。没想到这好几个G的东西,居然只能从网络安装,我这几十K的破网不知道要装到什么时候了。还好进行一番研究之后,我发现还是可以把所有安装文件...

2006-11-08 17:59:00 249

暴雪和黑客的战争三:黑客的反击

暴雪在1.10补丁中加入hack检测机制,在某种程度上直接导致了原本和谐的D2X游戏黑客社群的分裂。一部分出于对检测机制的顾虑,停止更 新自己的作品,如d2hackit;另一部分则把他们的hack具有的反检测功能当成卖点开始收费,如d2maphack和d2jsp;还有一部分黑客出 于不满开始制作这些收费hacks的替代品,如d2hackmap,C3PO,d2bs等;甚至有些黑客出来破解这些收费ha...

2006-11-07 20:07:00 158

SpiderMonkey-让你的C++程序支持JavaScript脚本

译序有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在这里。这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScript脚本的C++程序,并让JavaScript脚本操纵你的C++程序的内部数据、操作。从这篇教程可以看到在SpiderMonkey引擎的帮助下,让C++程序支持JavaScript脚本是一件很容易的事,更棒的...

2006-11-06 21:18:00 111

Hacking Diablo II之外挂实战教程:去除D2JSP试用版显示的Trial Version信息

前几天一个网友给我发消息请我帮他个忙。他的问题是,他正在使用的D2JSP是免费试用版,试用版在运行时会在游戏的所有游戏画面中央显示一行很大的“Trial Version”字样(见下图中的红圈),很烦人,他想去掉这行字。我想正好用此做个教程解释前面介绍过的hack工作原理,于是答应帮他看看。 我已经很久没有开BOT了,最后一次使用D2JSP还是2003年1.09d时期的事。根据我以前的理解...

2006-11-05 12:00:00 840

WOW中的一种外挂设想,兼看老外骂人

自从魔兽世界公测的那一天起,无数玩家就在琢磨着如何骗过游戏的防系统使用外挂。后面两幅图就是某位外国玩家给出的一种方案。 这位玩家的主要想法是在游戏的server端和client端之间插入一个agent。对server端,agent模拟client端的行为而对真正的client端agent又模拟server端的行为。这样agent可以截获、分析并甚至伪造数据包从而干预游戏行为;另外agent本身和...

2006-11-04 22:56:00 454

使用163邮箱的朋友请换个邮箱地址给我写信

收到几位使用163邮箱朋友的email,发现我的gmail邮箱回复不了,请各位下次换个邮箱试试,谢谢。错误提示信息:Technical details of temporary failure:TEMP_FAILURE: Could not initiate SMTP conversation with any hosts:[mx.mail.163.split.netease.com. (50):...

2006-11-04 17:33:00 416

暴雪和黑客的战争二:暴雪的第一击

暴雪在WOW开发的后期,终于能够腾出人手来升级持续了2年之久的D2X 1.09d。由于1.09d时期hacks泛滥,暴雪觉得有必要打击一下这种嚣张的气焰,于是加入了hacks检测机制,这就是在1.10时期经常提起的packet 64/65检测。何谓packet?packet即网络数据包,D2中服务器端和客户端之间的交互是通过互相发送packet进行的。D2中的packet又分为out-of...

2006-11-04 16:33:00 116

Hacking Diablo II之外挂的工作原理

这一篇介绍外挂的工作原理。如果对外挂是怎么工作的没有一个大概的了解的话,那这一系列文章只能当故事看了。如下图所示,大方框表示Diablo II.exe的进程空间,框内左侧的虚线表示游戏的主线程循环。游戏主线程循环所做的工作大约有:绘制客户端画面、响应服务器端的命令,以及接收玩家的鼠标键盘输入等。框内右侧的小方框就是所谓的外挂程序(Injected DLL)。外挂要工作首先要加载到游戏进程空间,...

2006-11-03 14:09:00 166

暴雪和黑客的战争一:外挂的幸福时光

如前一篇文章所说,D2X中hacks的发展大约可以分为三个阶段,即前1.10的发展成熟期,1.10的过渡期以及1.11的衰落期。一直到1.09d(1.10前的最后一个版本)为止,D2X中几乎没有检测机制,这一时期是hacker们最幸福的时期。说没有是因为它没有专门的检测代码,而说几乎没有是因为它有些机制还是可以用来做检测用途的。一处是它的自动升级机制。在战网上玩过的玩家都知道,每次连到战网的时候,...

2006-11-01 23:37:00 459

Diablo II中的各种hacks

Game hacks,也就是通常所说的游戏软件。在网络游戏时代,也许是因为针对传奇这类游戏的软件大都利用WPE之类的抓包工具来制作,因此hacks又叫外挂。不过Diablo的hacks绝大多数是和游戏代码紧密结合在一起的,也许应该叫内挂才对。Diablo II LOD(以下简称D2X)中的hacks大概可分为exploit、bot和mod三大类。exploit即漏洞,就是利用游戏设计上的缺陷或者B...

2006-11-01 13:23:00 404

Hacking Diablo II之前言

前几天偶然逛到Rootkit,看到一篇文章讲WOW hacking, 里面谈到魔兽世界hacks的开发和anti-warden的一些技术,让我想起了我的Diablo II岁月。自从几年前开始hack Dialbo II以来,我做了不少现在回想起来很疯狂的事(比如说,曾经用C把一个程序从二进制完全还原了出来),在Diablo II的hacks制作上也积累了非常丰富的经验。国内的game ha...

2006-11-01 13:17:00 132

关于MD5破解这件事

前 几天在论坛上看到有人在讨论MD5的破解,很多人对MD5的理解让我大跌眼镜:有人认为MD5是一种加密算法,有人认为由于无法从MD5 hash回复出明文,因此对其破解的研究毫无意义,甚至因此置疑王小云教授的成果毫无意义,真是让人遗憾。 因此今天决定说说MD5的破解,算是义务普及。有关MD5的描述请参考Wikipedia/MD5,这里就不多废话了。一般来说,对一个HASH算法的攻击可分三个级别:...

2006-11-01 13:15:00 133

我的那些快捷键儿

VC 用的太熟的一个后果是看到有人用UltraEdit写VC程序时觉得不可理解。另一个后遗症是,我很喜欢用快捷键,熟悉了VC的这套快捷键后,用其他软件 的时候,如果快捷键设置和VC的习惯设置冲突就觉得很难受。比如说SoftIce,很久以前就开始用,至今还没习惯。下面说说我在使用VC IDE时经常用到的一些快捷键。CTRL+TAB:在IDE打开的文件间切换。我喜欢在IDE里同时打开很多文...

2006-11-01 13:09:00 54

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除