首页
社区
课程
招聘
[求助]修改进程PEB !为什么不起作用?
发表于: 2011-7-27 22:08 6444

[求助]修改进程PEB !为什么不起作用?

2011-7-27 22:08
6444
BOOL MyIsDebuggerPresent(VOID)
{
	__asm
	{
		mov eax, fs:[0x30]
		movzx eax,byte ptr [eax+2]
		mov eax,0      
	}
    return TRUE;
}
BOOL MyNtGlobalFlag(VOID)
{
	__asm
	{

        mov  eax, fs:[30]
        movzx eax,byte ptr [eax+0x68]
		mov  eax, 0


	}
    return TRUE;
}
BOOL MyProcessHeapFlags(VOID)
{
	__asm
	{
       mov eax, fs:[30h]
       mov eax, [eax+18h] //PEB.ProcessHeap
       mov eax, [eax+0ch] //PEB.ProcessHeap.Flags
	   mov eax, 2h

	}
    return TRUE;
}
BOOL MyProcessHeapForceFlags(VOID)
{
	__asm
	{
		mov eax, fs:[30h]
        mov eax, [eax+18h] //PEB.ProcessHeap
        mov eax, [eax+10h] //PEB.ProcessHeap.ForceFlags
        mov eax, 0
	}
    return TRUE;
}

VOID PEB_BYPASS()
{
   MyIsDebuggerPresent();
   MyNtGlobalFlag();
   MyProcessHeapFlags();
   MyProcessHeapForceFlags();
}

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
	switch(ul_reason_for_call) 
	{ 
	case DLL_PROCESS_ATTACH: 
		
		break; 
		
	case DLL_THREAD_ATTACH: 
		CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&PEB_BYPASS, NULL,0, NULL);
		break; 
		
	case DLL_THREAD_DETACH: 
		break; 
		
	case DLL_PROCESS_DETACH: 
		break; 
	} 
    return TRUE;
}

注入进程后无反映?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
帖子表意不明
改这些东西做什么,为了注入hs?
你改这么多,本来不想检测你的,但此时,都不得不检测你了!
2011-8-1 14:09
0
雪    币: 48
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
HS 会检测PEB标志位
2011-8-2 03:48
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
BOOL MyIsDebuggerPresent(VOID)
{
  __asm
  {
    mov eax, fs:[0x30]
    movzx eax,byte ptr [eax+2]
    mov eax,0      
  }
    return TRUE;
}
BOOL MyNtGlobalFlag(VOID)
{
  __asm
  {

        mov  eax, fs:[30]
        movzx eax,byte ptr [eax+0x68]
    mov  eax, 0

  }
    return TRUE;
}
BOOL MyProcessHeapFlags(VOID)
{
  __asm
  {
       mov eax, fs:[30h]
       mov eax, [eax+18h] //PEB.ProcessHeap
       mov eax, [eax+0ch] //PEB.ProcessHeap.Flags
    mov eax, 2h

  }
    return TRUE;
}
BOOL MyProcessHeapForceFlags(VOID)
{
  __asm
  {
    mov eax, fs:[30h]
        mov eax, [eax+18h] //PEB.ProcessHeap
        mov eax, [eax+10h] //PEB.ProcessHeap.ForceFlags
        mov eax, 0
  }
    return TRUE;
}

只看到读,没看到改
2011-8-2 12:58
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
5
BOOL MyIsDebuggerPresent(VOID)
{
  __asm
  {
    mov eax, fs:[0x30]
    movzx byte ptr [eax+2],0      
  }
    return TRUE;
}
BOOL MyNtGlobalFlag(VOID)
{
  __asm
  {

        mov  eax, fs:[30]
        movzx byte ptr [eax+0x68], 0

  }
    return TRUE;
}
BOOL MyProcessHeapFlags(VOID)
{
  __asm
  {
       mov eax, fs:[30h]
       mov eax, [eax+18h] //PEB.ProcessHeap
       mov dword ptr [eax+0ch],2h

  }
    return TRUE;
}
BOOL MyProcessHeapForceFlags(VOID)
{
  __asm
  {
    mov eax, fs:[30h]
        mov eax, [eax+18h] //PEB.ProcessHeap
        mov dword ptr [eax+10h] , 0
  }
    return TRUE;
}
2011-8-2 21:12
0
游客
登录 | 注册 方可回帖
返回
//