标 题: 【原创】VEH-硬件断点+dll劫持内存补丁 学习加密三内存补丁一节时做的。高手莫要见笑. 下面是用了加密三中的CrackMeNet.exe做的示范. 代码: //设置硬件断点函数 void SetHwBreakpoint() { //添加VEH 参数1=1表示插入Veh链的头部,=0表示插入到VEH链的尾部 AddVectoredExceptionHandler(1, VectoredHandler); //寄存器相关的结构体 CONTEXT _ConText = {CONTEXT_DEBUG_REGISTERS}; //得到当前线程 HANDLE hThread = GetCurrentThread(); // 得到指定线程的环境(上下文) GetThreadContext(hThread, &_ConText); //给调试寄存器值 if (0X0 == _ConText.Dr0 && 0X0 == _ConText.Dr1 && 0X0 == _ConText.Dr2) { _ConText.Dr0 = 0X00401489; _ConText.Dr1 = 0X0; _ConText.Dr2 = 0X0; _ConText.Dr3 = 0x0; _ConText.Dr7 = 0x405; // 设置线程的环境(上下文) SetThreadContext(hThread, &_ConText); } if (0X0 != _ConText.Dr0 || 0X0 != _ConText.Dr1 || 0X0 != _ConText.Dr2 || 0X0 != _ConText.Dr3) { MessageBox(NULL,"设置硬件断点成功..", "(^_^)", MB_OK); } else { MessageBox(NULL,"设置失败,", "提示", MB_OK); } } 代码: // VEH回调函数 LONG WINAPI VectoredHandler( PEXCEPTION_POINTERS ExceptionInfo ) { //判断是否为我们设置的异常地址 if(ExceptionInfo->ExceptionRecord->ExceptionAddress == (PVOID)0X00401489) { MessageBox(NULL, "成功触发异常", "(^_^)", MB_ICONINFORMATION); // 修改当前异常中断的EIP ExceptionInfo->ContextRecord->Eip = 0x00401721;//指向要执行代码的内存地址 // 处理异常. return EXCEPTION_CONTINUE_EXECUTION; } return EXCEPTION_CONTINUE_SEARCH; } 代码: ALCDECL MemCode_connect(void) { SetHwBreakpoint();//调用设置硬件断点 GetAddress("connect"); __asm JMP EAX; } 代码: 00401474 |. 6A 10 push 10 ; /AddrLen = 10 (16.) 00401476 |. 8D85 B0FDFFFF lea eax,[local.148] ; | 0040147C |. 50 push eax ; |pSockAddr 0040147D |. 8B8D 00FEFFFF mov ecx,[local.128] ; | 00401483 |. 51 push ecx ; |Socket 00401484 |. E8 43050000 call <jmp.&WS2_32.#4> ; \connect 00401489 |. 8985 04FEFFFF mov [local.127],eax ; --设置异常地址 0040148F |. 83BD 04FEFFFF>cmp [local.127],-1 代码: 00401721 |. 8BF4 mov esi,esp ; ---异常发生后直接跳到这里执行. 00401723 |. 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL 00401725 |. 68 887A4100 push CrackMeN.00417A88 ; |Title = "Crackne net-2" 0040172A |. 68 987A4100 push CrackMeN.00417A98 ; |Text = "Registration successful !" 0040172F |. 8B15 90B14100 mov edx,dword ptr ds:[41B190] ; | 00401735 |. 52 push edx ; |hOwner => 001D016C ('Pediy - Crackme (net) 20061204',class='myWindowClass') 00401736 |. FF15 D0D34100 call dword ptr ds:[<&USER32.MessageBoxA>>; \MessageBoxA
在08年初有想过剑走偏锋,利用类似debug api的方法来规避部分游戏检测机制,事实证明和之后的一些人想到一块去了。 一首来自雪域天国俄罗斯的歌,美妙绝伦的旋律加上略带伤感的空灵女声,简直浑然天成。另外网上有关此歌手的信息少之又少,也是为此歌增添了不少神秘色彩。 转自Miyazakehime@KeyFc 片冈终于在MMR日记上回忆起naricssu啦,大家也来回忆一下吧 ・ナルキッソス1・2:2005-2007 絵は1がみたおんしゃさん、2がごとPさん。 実験的な意味合いもあったのと>絵なし・声なし 内容的には、いつかどこかで考えていました。 ●キャスト 最初からイメージ出来てたました>脳内で 最初就已经在脑内设定好了 ※120円の春、スカレからの影響が大きいです。 1990年 1991年 1992年 |