见过网上很多的游戏外挂,晒到网上换人民币,心里觉得挺痒痒的,也想自己捣鼓看看自己也搞一个外挂出来换点银子花花。那么好,这个基础教程正好解决了你的入门知识和一些网络封包的东西。想学习游戏外挂制作,这个基础你可就非得看看了!你一定会有收获!
2022-11-09 21:30:51 4.71MB 游戏外挂 基础
1
外挂制作教程 封包助手 wpe+e2g+ccp免杀版 ascli查询器 过滤包制作
2022-05-22 20:24:17 4.71MB 外挂制作教程与工具
1
VC++外挂制作详细教程 VC++外挂制作详细教程 VC++外挂制作详细教程
2022-04-04 19:24:10 2.15MB VC
1
包含两个文档 谈论外挂制作全过程与细解 和 谈论外挂制作全过程与细解
2022-04-04 19:13:07 3.26MB 外挂,教程,外挂教程
1
通常我们知道wpe可以截取数据包并修改再发送,还有制作滤镜,但是大多会被游戏检测软件拦截,这里我们教会大家制作WPE类型的封包外挂,来避免游戏的检测。
2022-03-09 13:27:03 1.14MB WPE 封包 外挂制作
1
现在大部分游戏都不能使用WPE抓包,使用WPE三件套可以使用代理来进行抓包。游戏外挂制作的好帮手
2022-02-24 15:32:07 2.07MB WPE 三件套 抓包 外挂
1
本教程主要讲述WPE和VB制作外挂的准备知识、制作方法、制作技巧、实例讲解,由浅如深,逐步介入,学习起来是非常简单的,内容详实、资料丰富。从初学者到高级外挂制作者,都详细考虑了的,能让初学者快速入门,能让高级外挂制作者掌握更多外挂制作的方法和资料!可以说是制作外挂从入门到精通的最好教材!
2022-02-08 18:33:24 1.14MB 外挂制作教程
1
简单的游戏外挂制作教程 !!!!!!!!!!!!!!!!!!!!!!!
2021-12-25 20:23:35 9.52MB 游戏外挂
1
花钱买的,现在破解了给大家,要你10分肯定是物超所值。密码:123
2021-12-21 08:26:08 3.67MB WPE封包 外挂制作 教程
1
内容包括郁金香驱动1-37课 vc++歪挂制作最新整理+delphi歪挂制作教程全新整理 的下载地址 郁金香VC++过驱动保护全套 免key版 天異赤提供 郁金香VC++过驱动保护全套 免key版 天異赤提供 郁金香VC++过驱动保护全套 免key版 天異赤提供 郁金香VC++过驱动保护全套 免key版 天異赤提供 郁金香VC++过驱动保护全套 免key版 天異赤提供 教程下载地址获取方法: 第一步:打开下方链接,填写QQ邮箱,系统会往QQ邮箱发一封确认订阅邮件 第二步:打开QQ邮箱查看邮件,确认订阅,订阅成功后系统会自动把下载地址和解压密码一起发送到你QQ邮箱 http://list.qq.com/cgi-bin/qf_invite?id=585e150c59f30e1213af9a9352367711b2e45c217582cf35 郁金香驱动38-51课下载地址 简单加密 水晶情缘加密软件 能破的下载 水晶加密网址: http://www.lovehy.com 本下载是娱乐下载版 地址长期邮箱 不能下载联系QQ1256612149 DWORD ssdtaddr, oldreadaddr,readpush ,readjmpaddr, oldwriteaddr,writepush ,writejmpaddr , ntopenprcaddr , ntopentrdaddr , KiAttachProcessaddr,KeStackAttachProcess_jmpaddr, ObOpenObjectByPointeraddr/*, h1,h2,hr,hw*/; #pragma PAGECODE __declspec(naked) VOID yjxsoft_com_KeStackAttachProcess() { KdPrint(("yjxsoft_com_KeStackAttachProcess\n")); //KeStackAttachProcess_jmpaddr+0xD __asm { //还原jmp占用处指令字节指令 push dword ptr [ebp+0ch] push dword ptr [ebp+8] push edi push esi //压入返回地址 mov eax,KeStackAttachProcess_jmpaddr add eax,0xd //push dword ptr [ebp+8] 至CALL KiAttachProcess后的距离 push eax //返回地址 //KiAttachProcess 前7字节 mov edi,edi push ebp mov ebp,esp push ebx push esi //jmp 至KiAttachProcess+7位置执行,执行完返回至 KeStackAttachProcess_jmpaddr+D处继续执行 mov eax, KiAttachProcessaddr add eax,7 jmp eax } } #pragma PAGECODE __declspec(naked) VOID yjxsoft_com_KiAttachProcess() { //KdPrint(("yjxsoft_com_KiAttachProcess\n")); __asm { /* 804f9b5e ff7508 push dword ptr [ebp+8] 804f9b61 57 push edi 804f9b62 56 push esi 804f9b63 e890feffff call nt!KiAttachProcess (804f99f8) 804f9b68 5f pop edi 804f9b69 5e pop esi 804f9b6a 5d pop ebp 804f9b6b c20400 ret 4 */ push dword ptr [ebp+8] push edi push esi //恢复 前7字节指令 /* nt!KiAttachProcess: 804f99f8 8bff mov edi,edi 804f99fa 55 push ebp 804f99fb 8bec mov ebp,esp 804f99fd 53 push ebx 804f99fe 56 push esi */ push endCall //压栈返回地址 mov edi,edi push ebp mov ebp,esp push ebx push esi // mov eax, KiAttachProcessaddr add eax,7 jmp eax endCall: pop edi pop esi pop ebp ret 4 } } #pragma PAGECODE __declspec(naked) VOID yjxsoft_com_NtReadVirtualMemory() { //KdPrint(("yjxsoft_com_NtReadVirtualMemory\n")); __asm { // push 0x1c push readpush ////压栈参数 // jmp readjmpaddr } } // //;/////////////////////////////////////////////////////////////////// // #pragma PAGECODE __declspec(naked)VOID yjxsoft_com_NtWriteVirtualMemory() { // KdPrint(("yjxsoft_com_NtWriteVirtualMemory\n")); __asm { push 0x1c push writepush //压栈参数 // jmp writejmpaddr } } // //;///////////////////////////////////////////////////////////////// //805cc613 8d8548ffffff lea eax,[ebp-0B8h] //805cc619 50 push eax //805cc61a ff75c8 push dword ptr [ebp-38h] //805cc61d ff75dc push dword ptr [ebp-24h] //805cc620 e84706ffff call nt!ObOpenObjectByPointer (805bcc6c) //805cc625 8bf8 mov edi,eax //805cc625-805cc61a= 0bh #pragma PAGECODE __declspec(naked)VOID yjxsoft_com_OpenProcess() { __asm { push dword ptr [ebp-38h] push dword ptr [ebp-24h] mov eax,ntopenprcaddr add eax,0bh push eax //CALL后返回的地址 非压栈参数 // jmp ObOpenObjectByPointeraddr } } // //;////////////////////////////////////////////////////////////////// // #pragma PAGECODE __declspec(naked)VOID yjxsoft_com_OpenTread() { //KdPrint(("yjxsoft_com_OpenTread \n")); __asm { push dword ptr [ebp-34h] push dword ptr [ebp-20h] mov eax,ntopentrdaddr add eax,0bh push eax // jmp ObOpenObjectByPointeraddr } } // //;////////////////////////////////////////////////////////////////// // #pragma PAGECODE __declspec(naked) DWORD __stdcall Findcodeaddr(DWORD code1,WORD code2,DWORD prcaddr) { __asm { mov edx,[esp+0x0c] //prcaddr mov ecx,1000h //while( ecx>0) //// start: sub ecx,1h add edx,1h mov ebx,dword ptr [edx] xor eax,eax mov ax,word ptr [edx+4h] test ecx,ecx jz end cmp ebx,[esp+4] //code1 jnz start cmp ax,[esp+8] //code2 jnz start /*if (ebx==code1 && ax==code2) break */ end: mov eax,edx ret 0x0c } } //;//////////////////////////////////////////////////////////////// // #pragma PAGECODE VOID PassTPhook () { UNICODE_STRING g_ProcessAddr,g_ThreadAddr,g_KeAttachAddr,g_PointerAddr,g_KeStackAttachProcess; RtlInitUnicodeString(&g_ProcessAddr,L"NtOpenProcess"); RtlInitUnicodeString(&g_ThreadAddr,L"NtOpenThread"); RtlInitUnicodeString(&g_KeAttachAddr,L"KeAttachProcess"); RtlInitUnicodeString(&g_PointerAddr,L"ObOpenObjectByPointer"); RtlInitUnicodeString(&g_KeStackAttachProcess,L"KeStackAttachProcess"); // __asm // // __asm mov eax,eax // ntopenprcaddr=(DWORD)MmGetSystemRoutineAddress(&g_ProcessAddr); // // Findcodeaddr(0xffc875ff,0xdc75,ntopenprcaddr); __asm { // pushad lea eax,g_KeStackAttachProcess push eax call DWORD ptr DS:[ MmGetSystemRoutineAddress] push eax //传入 KeStackAttachProcess地址 //push 0E856h //push 570875FFh push 0875h push 0FF0C75FFh call Findcodeaddr mov KeStackAttachProcess_jmpaddr,eax //// KeStackAttachProcess里 CALL KiAttachProcess的地址 定位push dword ptr[ebp+8] // hook KeStackAttachProcess+7d lea ebx,yjxsoft_com_KeStackAttachProcess sub ebx,eax sub ebx,5 mov BYTE ptr [eax],0E9h mov dword ptr [eax+1],ebx //hook end ///////////// lea eax,g_ProcessAddr push eax call DWORD ptr DS:[ MmGetSystemRoutineAddress] push eax //传入 NtOpenProcess地址 push 0dc75h push 0ffc875ffh call Findcodeaddr mov ntopenprcaddr,eax ///NtOpenProcess里 CALL ObOpenObjectByPointer的地址 lea eax, g_ThreadAddr push eax call DWORD ptr DS:[ MmGetSystemRoutineAddress] push eax ////传入 NtOpenThread地址 push 0e075h push 0ffcc75ffh call Findcodeaddr mov ntopentrdaddr,eax //////存放 NtOpenThread 里 CALL ObOpenObjectByPointer的地址 lea eax,g_PointerAddr push eax call DWORD ptr DS:[ MmGetSystemRoutineAddress] mov ObOpenObjectByPointeraddr,eax //存放 ObOpenObjectByPointer地址 //hook KiAttachProcess begin lea eax,g_KeAttachAddr push eax call DWORD ptr DS:[ MmGetSystemRoutineAddress] push eax // 传入KeAttachProcess push 0e856h push 570875ffh call Findcodeaddr //查找KiAttachProcess地址 add eax,6h //指向 804f9b64// 804f9b63 e890feffff call nt!KiAttachProcess (804f99f8) mov ebx,dword ptr [eax] //取CALL 地址 add ebx,eax //当前地址+取出地址+4 add ebx,4h mov KiAttachProcessaddr,ebx //计算出 KiAttachProcess 这个未导出函数地址 sub eax,6h //mov KiAttachProcess -6 // HOOK KeAttachProcessPush->KiAttachProcessPush-5 mov dword ptr[eax],0xE9 //jmp lea ebx,yjxsoft_com_KiAttachProcess sub ebx,eax sub ebx,5 mov dword ptr[eax+1],ebx //hook KiAttachProcess end mov eax, KeServiceDescriptorTable mov eax,[eax] //address of KeServiceDescriptorTable mov ssdtaddr,eax mov eax,ssdtaddr add eax,2e8h //0xBA * 4 ntreadvirtualmemoryaddr ssdt186 mov eax,DWORD PTR [eax] mov oldreadaddr,eax mov ebx,DWORD PTR [eax+3h] mov readpush,ebx add eax,7h mov readjmpaddr,eax mov eax,ssdtaddr add eax,454h //0x115*4 ntwritevirtualmemoryaddr ssdt227 mov eax,DWORD PTR [eax] mov oldwriteaddr,eax mov ebx,DWORD PTR [eax+3h] mov writepush,ebx add eax,7h mov writejmpaddr,eax cli mov eax,cr0 and eax,not 10000h mov cr0,eax mov ebx,ssdtaddr mov eax,yjxsoft_com_NtReadVirtualMemory mov DWORD ptr [ebx+2e8h],eax // lea ebx,DWORD ptr [ebx+2e8h] // mov hr,ebx mov eax,yjxsoft_com_NtWriteVirtualMemory mov DWORD ptr [ebx+454h],eax // lea ebx,DWORD ptr [ebx+454h] // mov hw,ebx mov ebx,ntopenprcaddr mov BYTE ptr [ebx],0e9h /* int 3*/ mov eax,offset yjxsoft_com_OpenProcess lea eax,yjxsoft_com_OpenProcess sub eax,ebx sub eax,5h mov DWORD ptr [ebx+1h],eax /*lea ebx,DWORD ptr[ebx+1h] mov h1,ebx*/ mov ebx,ntopentrdaddr mov BYTE ptr [ebx],0e9h mov eax,offset yjxsoft_com_OpenTread sub eax,ebx sub eax,5h //计算跳转地址 mov DWORD ptr [ebx+1h],eax //紧接着 E9后边写 跳转地址 lea ebx,DWORD ptr[ebx+1h] // mov h2,ebx // mov eax,90h // mov BYTE ptr [ebx+4],al mov eax,cr0 or eax,10000h mov cr0,eax sti } // //;///////////////////////////////////////////////////////////////// // void jxcom_UnHook() { __asm { pushad cli mov eax,cr0 and eax,not 10000h mov cr0,eax mov eax,ssdtaddr mov ebx,DWORD ptr [oldreadaddr] mov DWORD ptr [eax+2e8h],ebx mov ebx,DWORD ptr [oldwriteaddr] mov DWORD ptr [eax+454h],ebx mov eax,ntopenprcaddr mov dword PTR [eax],0ffc875ffh mov WORD ptr [eax+4h],0dc75h mov eax,ntopentrdaddr mov dword PTR [eax],0ffcc75ffh mov WORD ptr [eax+4h],0e075h mov eax,cr0 or eax,10000h mov cr0,eax sti popad } } //yjxsoft_com_UnHook end //;////////////////////////////////////////////////////////////////////
2021-12-13 16:56:40 18.25MB 郁金香驱动 vc++ delphi 38-51课
1