【转】VC 隐藏模块

[cpp] view plain copy
 
 
print?
  1. void HideDll()  
  2. {  
  3.     HMODULE hMod = ::GetModuleHandle("MyHook.dll");  
  4.     PLIST_ENTRY Head,Cur;  
  5.     PPEB_LDR_DATA ldr;  
  6.     PLDR_MODULE ldm;  
  7.     __asm  
  8.     {  
  9.         mov eax , fs:[0x30]  
  10.         mov ecx , [eax + 0x0c] //Ldr  
  11.         mov ldr , ecx  
  12.     }  
  13.     Head = &(ldr->InLoadOrderModuleList);  
  14.     Cur = Head->Flink;  
  15.     do  
  16.     {  
  17.         ldm = CONTAINING_RECORD( Cur, LDR_MODULE, InLoadOrderModuleList);  
  18.         //printf("EntryPoint [0x%X]/n",ldm->BaseAddress);  
  19.         if( hMod == ldm->BaseAddress)  
  20.          {  
  21.             ldm->InLoadOrderModuleList.Blink->Flink =  
  22.                 ldm->InLoadOrderModuleList.Flink;  
  23.             ldm->InLoadOrderModuleList.Flink->Blink =  
  24.                 ldm->InLoadOrderModuleList.Blink;  
  25.             ldm->InInitializationOrderModuleList.Blink->Flink =  
  26.                 ldm->InInitializationOrderModuleList.Flink;  
  27.             ldm->InInitializationOrderModuleList.Flink->Blink =  
  28.                 ldm->InInitializationOrderModuleList.Blink;    
  29.             ldm->InMemoryOrderModuleList.Blink->Flink =  
  30.                 ldm->InMemoryOrderModuleList.Flink;  
  31.             ldm->InMemoryOrderModuleList.Flink->Blink =  
  32.                 ldm->InMemoryOrderModuleList.Blink;    
  33.             break;  
  34.          }  
  35.         Cur= Cur->Flink;  
  36.      }while(Head != Cur);  
  37. }  

void HideDll() { HMODULE hMod = ::GetModuleHandle("MyHook.dll"); PLIST_ENTRY Head,Cur; PPEB_LDR_DATA ldr; PLDR_MODULE ldm; __asm { mov eax , fs:[0x30] mov ecx , [eax + 0x0c] //Ldr mov ldr , ecx } Head = &(ldr->InLoadOrderModuleList); Cur = Head->Flink; do { ldm = CONTAINING_RECORD( Cur, LDR_MODULE, InLoadOrderModuleList); //printf("EntryPoint [0x%X]/n",ldm->BaseAddress); if( hMod == ldm->BaseAddress) { ldm->InLoadOrderModuleList.Blink->Flink = ldm->InLoadOrderModuleList.Flink; ldm->InLoadOrderModuleList.Flink->Blink = ldm->InLoadOrderModuleList.Blink; ldm->InInitializationOrderModuleList.Blink->Flink = ldm->InInitializationOrderModuleList.Flink; ldm->InInitializationOrderModuleList.Flink->Blink = ldm->InInitializationOrderModuleList.Blink; ldm->InMemoryOrderModuleList.Blink->Flink = ldm->InMemoryOrderModuleList.Flink; ldm->InMemoryOrderModuleList.Flink->Blink = ldm->InMemoryOrderModuleList.Blink; break; } Cur= Cur->Flink; }while(Head != Cur); }

 

【转】MFC 改变窗口类名

1,改变窗口类名:比如:MyClassName是自己想设置的类名
方法:打开资源视图,右击外挂窗口,属性改掉ClassName属性,若它为灰色,右击.rc文件改mfc Mode属性为false,再改
2,改变后在CTestCpp中的InitInstance()注册该窗口类名
WNDCLASS wc;

// 获取窗口类信息。MFC默认的所有对话框的窗口类名为 #32770
::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wc);

// 改变窗口类名
wc.lpszClassName = _T("MyClassName");

// 注册新窗口类,使程序能使用它
AfxRegisterClass(&wc);

jpg 改 rar 【转】VC 隐藏模块、MFC 改变窗口类名_VC