【vfp精品源码栏目提醒】:网学会员为需要vfp精品源码的朋友们搜集整理了【精品】郁金香驱动游戏过驱动保护VC++外挂制作教程 - 其它资料相关资料,希望对各位网友有所帮助!
郁金香游戏过驱动保护外挂制作班笔记 啊冲 2010.8.21原来的游戏查外挂功能像个杀毒家 现在的游戏加保护功能像个防火墙 自从我学完郁金香老师的 D 班和 C 班之后一直对驱动班迟迟不敢进修原因是因为太难了但是不学习没出息郁金香老师的教程现在是三套而我作为郁金香老师的良好学生哪能不将老师的笔记全部记出来呢. 不过估计这么好的课程以后再也不容易看到了原因很简单—盗版 ……省略 XXX 字此事还是不要谈了要想说的实在太多总之学习是对的… 言归正传我现在的水平是: DELPHI 只是入门很多
源码都看不懂VC更是刚入门看不懂的更多找汇编数据等等也只处于一个普通的水平. 那么就让我这样一个普通水平的人来试着学驱动看最后到底效果如何也算是给那些”望驱止步”的朋友们以亲身实践引路吧. 先把结束语奉上 结束语: 我从学习驱动课到现在 1 月左右驱动看来也并不是天书虽然比较难懂但只要有 VC 的基础还是可以一点一点的搞会.我觉的光看教程是不够的还要自己找书去看教程只能够领我们入门更全面的知识要在书中寻找答案. 记笔记并不是说我学的多好或者记的好其实我的笔记并不好主要是记下每节课中的大概内容因为教程并不是一遍就能学会的以后要多次看像 D 班和 C 班的教程我分别看过 3 次以上.所以我记笔记主要是因为记下大概内容就会快速找到所需的知识为以后再次学习提供方便避免因为记忆模糊找不到所需资料而耽误时间. 想想以前一听说哪款游戏有驱动保护我就傻眼了现在我已经对驱动保护不再谈虎色变了原理已经大概了解至于具体的技术还需要在长期的实践中进行试验.驱动保护很好玩等我学好了说不定在我自己以后写的程序中也加进去呢 郁金香老师真的很猛我问他怎么知道这么多知识他只说做教程的时候就学会了而做教程之前也不怎么会.老大就是厉害我啊冲现在也比较爱学习但是自己研究东西总是不明白就算跟老师后面学习却也总感觉有些追不上进度.据说老师下次是出脱机教程那将是歪挂制作的最高级别 希望我够努力学习追赶上老师的进度. 祝老师越来越猛 也祝我的同学们和爱学习的网友们越来越进步 我还要再看几遍课程拜拜了 1.1.1 安装 VC6.0 -1 课 课时 12:05首先是找到 VC6 的安装光盘我们可以去网上搜索这里是郁金香网盘 VC6 双语版下载地址ftp://yjx_cdown.yjxsoft.com/中文 VC6-英文 VC6SP6.ISO如果下载不了请用迅雷安装过程很简单我们选择所有内容全部安装下一步注册的选项也选上MSDN 不在光盘里这个可以去网上下载也可以在郁金香网盘下载ftp://yjx_cdown.yjxsoft.com/MSDN6.0-CD1.isoftp://yjx_cdown.yjxsoft.com/MSDN6.0-CD2.isoMSDN 中 VB 和
VFP 的我们用不到可以不装当然我们这里要用到虚拟光驱软件如果没有的话也可以解压缩到同一个目录下安装即可. 1.1.2 安装 VS2003-VC7.0-2 课 课时 15:24这节课是安装 VS2003我们主要是用到 VC2003这个比较大有很多文件安装顺序如下:先安装系统必备ftp://yjx_vipdown.yjxsoft.com/microsoft visual studio.net20037cd/Studio.net2003.系统必备.iso再安装光盘 1ftp://yjx_vipdown.yjxsoft.com/microsoft visual studio.net20037cd/net.2003. 光 盘1.iso再安装光盘 2ftp://yjx_vipdown.yjxsoft.com/microsoft visual studio.net20037cd/net.2003. 光 盘2.iso因为我们之前已经安装过 VC6 的 MSDN 了所以 2003 的 MSDN 就不必再安装了另外我找到一个更好的下载地址http://18.duote.org/visualstudio2003.zip新建一个 HELLO WORLD 程序看一下一切正确这里有一个说明如果提示 FrontPage 2000 Web 客户端扩展安装失败 则解决办法是 从 i386Fp40ext.cab 复制 Fp4autl.dll、Fpencode.dll 和 Fp4awel.dll。
复制到 本地驱动器:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions40bin。
文件我已找到放在附件里提供下载 1.1.3 安装 VS2008-VC9.0-3 课 课时 8:23这个 VS2008 可以到微软的官方网站去下载 90 天的试用版本然后用注册码注册一下VS2008 简体中文专业版http://www.microsoft.com/downloads/info.aspxna90pSrcDisplayLangzh-cnSrcCategoryIdSrcFamilyId83c3a1ec-ed72-4a79-8961-25635db0192buhttp3a2f2fdownload.microsoft.com2fdownload2fe2f72f72fe777851c-c1a4-4979-86b3-6886953b32e92fVS2008ProEdition90DayTrialCHSX1435983.isoVS2008 简体中文团队版http://www.microsoft.com/downloads/details.aspxfamilyidD95598D7-AA6E-4F24-82E3-81570C5384CBdisplaylangzh-cnVS2008 SP1 简体中文版http://www.microsoft.com/downloads/details.aspxfamilyidFBEE1648-7106-44A7-9649-6D9F6D58056Edisplaylangzh-cn.NET Framework 3.5http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe.NET Framework 3.5 SP1http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe.Net framework 3.5 sp1 的修补程序 KB959209http://support.microsoft.com/kb/959209转注册版的方法:微软官方提供的是 90 天的试用版,我们可以用注册码改为专业版,无限期使用。
步骤一:官方下载 VS2008 的 90 天试用版。
步骤二:用虚拟光驱正常安装 VS2008。
运行 autorun.exe 就开始安装步骤三:在“添加/删除程序”里找到 Visual Studio 2008。
点击“更改/删除”步骤四:等卸载程序收集完信息后,会弹出升级到 2008 的界面,把正版注册码填入,点击“升级”。
注册码:XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT或者这个:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T经过半天现在已经 OK 了,我们再进 VS2008 就能看到了。
新建一个 HELLO WORLD程序看一下一切正确.因为有 VS2003/VS2005/VS2008/VS2010也不能全部安装啊所以就选 2003 和 2008为例其它大同小异. 1.1.4 安装 VC 助手-4 课 课时 3:46这节课太简单了老师简直比我还懒装这样一个小软件也用一课时_VC 助手下载地址:ftp://yjx_vipdown.yjxsoft.com/VC6.0 助手Visual Assist X v10.0.1233.0 破解版Cracked.7z安装文件然后将压缩包里的 DLL 覆盖原版的 DLL 就完成破解.为什么要装助手呢因为 VS 本身的功能虽然强大但是助手提供了更多的实用帮助尤其是对像我这样的新手来说更是感到很方便而且这个助手支持很多版本的 VS包括我们之前安装的 VC6/2003/2008.其实 DELPHI 中不也是同样有一个助手吗真的很好用. 1.1.5 安装 DDK-5 课 课时 13:26DDK是Device Development Kit,设备开发包的意思。
一般指windows设备驱动程序开发包。
如果你想开发一个设备驱动程序,如显卡驱动程序,就必须使用DDK。
ftp://yjx_vipdown.yjxsoft.com/驱动相关工具/3790.1830.DDK.iso安装过程中的一些个事例我们选择全部安装以备参考其实对于我来说根本看不懂不装也罢从理论上来说我们有了这个 DDK 的开发包我们用记事本就可以开发了但是那样很麻烦所以我们还是要用 VC 来进行编写.终于安装完成了DDK 的版本分为 WIN2000/WIN2003 和 WINXP我们当然是以 XP版主为DDK 的版本分为 Checkde 和 Free 版就相当于 Debug 和 Release.先在 DDK 的目录里看一下先直接在目录里用记事本编译一下但是在记事本里要加上各种的符号和语法注意事项等等很不方便所以还是要用 VC 编辑最终还是要用编译器来进行编译的.DDK 还有许多的库支持我们以后再讲.另外我发现 FTP 有时候能进有时候进不去那是因为有另外的人与在进因为同一个 FTP 的账号只能上一个人. 1.2.1 VC6 环境编译驱动-6 课 A、VC6驱动编译配置 B、VC6集成环境下编译驱动 课时 8:18教案分割线1 新建 win32 console Application 生成一个 空项目文件 选Project菜单 Add to Project-----Files..选择所有驱动相关文件添加到工程二、Tools -----Options------Directories在Include目录中添加: D:WINDDK3790.1830incwxp D:WINDDK3790.1830inccrt 可选 D:WINDDK3790.1830incddkwxp D:WINDDK3790.1830incddkwdmwxp在Executable files目录中添加:D:WINDDK3790.1830BINX86在Library files目录中添加:D:WINDDK3790.1830LIBWXPI386Project Settings WIN32100_X86_1WINVER0x501DBG1C/C Project Option最终设置如下:/nologo /Gz /MLd /W2 /WX /Z7 /Od /D WIN32100 /D _X86_1 /D WINVER0x501 /D DBG1/Foddk_check/ /Fdddk_check/ /FD /cLink Project Options最终设置如下:Wdm.lib ntoskrnl.lib /nologo /base:0x10000 /stack:0x4000000x1000 /entry:DriverEntry/subsystem:console /incremental:no /pdb:ddk_check/event.pdb /debug /machine:I386 /nodefaultlib/out:ddk_check/event.sys /subsystem:native /driver /SECTION:INITD /RELEASE/IGNORE:4078NT式驱动 WDM式驱动教案分割线关于虚拟光驱软件本人推荐用 WinMount 支持 WIN7使用方便随叫随到过河拆桥用完可以马上关 http://cn.winmount.com/新建一个 VC6 的控制台程序将上节课说到的 event 驱动做一下在目录 Winddk3790.1830sregeneraleventsys 里将所有文件复制出来如果找不到目录则证明安装不完成请安装 DDK 的所有项目.将文件复制到 VC6 新建的工程目录下.然后要在 VC6 里进行一些设置了 Options-Directories 里的选项在 Show Directories for:里的Executable Files 我们需要另外加入 DDK 的编译器 D:WINDDK3790.1830BINX86并且我们要移动到最前面不然的话编译不了.再将 4 个驱动文件加进来 Project-Add to Project-File这个时候编译一下提示一个错误是说头文件找不到 Options-Show Directories for-Include Files 下我们添加因为头文件非常多我们视情况而定.D:WINDDK3790.1830INCWXPD:WINDDK3790.1830INCCRTD:WINDDK3790.1830INCDDKWXPD:WINDDK3790.1830INCDDKWDMWXP此时提示 3 个错误都是语法错误我们再来设置 Options-Show Directories for-Library Files 也就是运行库目录D:WINDDK3790.1830LIBWXPI386但是还是会出错我们需要进行设置在设置之前我们将把以前编译的配置都给去掉Build-Configurations 在这里添加 ddk_check然后在 Project-Settings-C/C选项下的 Project Options 里内容全部清空换成如下:/nologo /Gz /MLd /W2 /WX /Z7 /Od /D WIN32100 /D _X86_1 /D WINVER0x501 /D DBG1/Foddk_check/ /Fdddk_check/ /FD /c然后在 Project-Settings-Link 选项下的 Project Options 里的内容替换成Wdm.lib ntoskrnl.lib /nologo /base:0x10000 /stack:0x4000000x1000 /entry:DriverEntry/subsystem:console /incremental:no /pdb:ddk_check/event.pdb /debug /machine:I386 /nodefaultlib/out:ddk_check/event.sys /subsystem:native /driver /SECTION:INITD /RELEASE/IGNORE:4078终于生成了 event.sys 9KB最后在 Project Settings - Resourrces-Resource file name 里改一下目录 ddk_Check/event.res1.2.2 VS2003环境编译驱动-7课 A、VC7驱动编译配置 B、VC7集成环境下编译驱动 课时 10:50教案分割线1 新建一个空的 win32控制台程序 1、选(文件→新建→项目→Visual C项目→win32→win32控制台项目)创建一个填写上名称event然后按确定在弹出的win32应用程序向导里 选应用程序设置 →附加选项 勾选空项目→完成。
二 选项目菜单→添加现有项→添加所有驱动相关的.h.c.cpp.rc之类的文件。
3 选工具T→选项O....→项目→VC目录→ 1、在可执行文件目录中添加: D:WINDDK3790.1830BINX86 2、在包含文件目录添加如下路径 D:WINDDK3790.1830incwxp D:WINDDK3790.1830inccrt 可选 D:WINDDK3790.1830incddkwxp D:WINDDK3790.1830incddkwdmwxp 3、在库文件目录中添加: D:WINDDK3790.1830LIBWXPI3864 项目event属性设置新建项目配置 check //必选一C/C属性设置 常规选项卡1调试信息格式C7兼容/Z7 //可选2警告等级 (2级/W2 //可选3将警告视为错误 是/wx //可选 优化选项卡1优化禁用/Od //可选 预处理器 预处理器定义:WIN32100_X86_1WINVER0x501DBG1 //必选 代码生成 启用最小重新生成:否 //可选 基本运行时检查:默认值 //可选 运行时库:多线程调试/MTd 或 多线程/MT //建议选 缓冲区安全检查:否 //可选 可避免出现 LINK : error LNK2001: 无法解析外部符号 __security_cookie 高级 调用约定 __stdcall/Gz //必选 2 链接器 常规: 输出文件:OutDirProjectName.sys //必选 启用增量链接:否/INCREMENTAL:NO //建议选上忽略导入库:是 // 可 选 设置为此值时,必须在附加库目录中加:D:WINDDK3790.1830libwxpi386 ,这样项目就不会依赖IDE环境的设置 否 设置为此值时,将依赖 IDE 的环境的相关设置 输入:附加依赖项ntoskrnl.lib Hal.lib wdm.lib wdmsec.lib wmilib.lib ndis.lib MSVCRT.LIB LIBCMT.LIB//必选其12//NT式驱动 ntoskrnl.lib WDM式驱动 wdm.lib HalXXX函数在Hal.lib,WmiXXX函数在 wmilib.lib ,NdisXXX函数在 ndis.lib 必 要 时 需 要 增 加 微 软 的 标 准 库 MSVCRT.LIB MSVCRTD.LIB 调 试 库 LIBCMT.LIBIBCMTD.LIB调试库 如果
源码中有 source 文件,那么该文件的 TARGETLIBS 字段会列出该项目需要的库 忽略所有默认库:是/NODEFAULTLIB 调试: 生成调试信息 是/DEBUG //可选 生成映像文件:是/MAP //可选 映像文件名:TargetDirTargetName.map //可选 系统System: 子系统:控制台/SUBSYSTEM:CONSOLE //必选 堆栈保留大小:4194304 //可选 堆栈提交大小:4096 //可选 高级: 入口点:DriverEntry //必选 设置效应和:是/RELEASE //可选 基址:0x10000 //建议选上 命令行”-附加选项: 添加开关:/SECTION:INITD /IGNORE:4078 //建议填上 可以避免以下错误提示 LINK : warning LNK4078: 找到多个“INIT”节,它们具有不同的属性E2000020 LINK : error LNK2001: 无法解析的外部符号__load_config_used五.编译,链接。
一些要修改DDK例子
源码方能成功的问题,目前不知道什么选项可以不改:
源码中的关键字 try 要改为 __try except 要改为 __except .教案分割线本节课老师的教程写的超详细还是将上节课说到的 event 驱动做一下在 VC2003 下新建项目 WIN32 控制台应用程序设置里选空项目在目录 Winddk3790.1830sregeneraleventsys 里将所有文件复制出来到新建项目下在项目-添加现有项将 4 个文件导入进来如果资源文件.rc 在代码里寻到用鼠标拖下来就行了现在要配置编译环境在选项-显示以下内容的目录-包含文件 添加下面四个 D:WINDDK3790.1830incwxp D:WINDDK3790.1830inccrt D:WINDDK3790.1830incddkwxp D:WINDDK3790.1830incddkwdmwxp还有一个库文件需要添加 D:WINDDK3790.1830LIBWXPI386可执行文件也要添加 D:WINDDK3790.1830BINX86然后在属性页-配置管理器新建一个 check 项目再看一下 C/C里有几个可选项在预处理器-预处理器定义设置为WIN32100_X86_1WINVER0x501DBG1运行时库选为多线程缓冲区安全检查 否高级中的调用约定要选择__stdcall 因为在驱动中都是这样的调用约定然后是在链接器中 输出文件添加.sys 增量链接 否调试中都是可选项System 中 子系统选 控制台在高级中入口点必选 DriverEntry项目可选 0x10000在输入中附加依赖项选 wdm.lib 如果是 DDK 驱动则是 ntoskrnl.lib运行一下成功了再将刚才那个编译器的选项删除 D:WINDDK3790.1830BINX86正常运行了这是因为 VC7 自带的编译器已经支持 DDK 来进行编译了生成了驱动文件 event.sys 8KB本套教程主要是在 VC2003 下进行编译所以本节课要重点学习…..…………………………………………..……………………………… 4.1.1、XX游戏驱动保护分析(实例A-47课 A、保护情况分析 B、猜测相关原理 C、过保护让CE能查找到数据的相关分析 D、过保护让CE能修改数据的相关分析课时:A8B8C16D19E4F4约60分钟 A 保护情况分析 游戏1:CE找不到游戏数据 游戏2:CE查找不到游戏数据122//NtOpenProcess ssdt0x805cc3FA //OpenProcss jmp 0x805cc3FA//NtReadVirtualMemory ssdt0x805b526E //ReadProcessMemory//NtWriteVirtualMemory ssdt0x805B5378//WriteProcessMemoryconst GameCaption游戏标题procedure TForm1.Button1ClickSender: TObjectvarh:hwndPMessageBoxA:PDWORDss2:stringpid:ThandleGame_PHdataiforRead:DWORDc1c2:stringbeginc1:c1c2:c2h:FindWindownilGameCaptions:intToHexh8self.Memo1.Lines.AddGame_HWNDswindows.GetWindowThreadProcessIdhpids:intToHexpid8s2:intTostrpidself.Memo1.Lines.AddGame_PIDss2Game_PH:windows.OpenProcesswindows.PROCESS_ALL_ACCESSfalsepidself.Memo1.Lines.Add过保护测试 成功 s:intToHexGame_PH8s2:intTostrGame_PHPMessageBoxA:Windows.GetProcAddressGetModuleHandlewindows.user32MeseBoxA//正常情况 PMessageBoxA8B55FF8Bself.Memo1.Lines.AddGame_PHss2PMessageBoxAintToHexPMessBoxA8ReadProcessMemoryGame_PHPointerMessageBoxAdata204forReadif data8B55FF8B then self.Memo1.Lines.Add过保护测试 成功
上一篇:
【精品】人事管理信息系统论文
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a