首页
社区
课程
招聘
[原创]围绕SwapContext的一点代码
发表于: 2012-3-4 12:50 12247

[原创]围绕SwapContext的一点代码

2012-3-4 12:50
12247

这次的胡乱探究原因在于看到了一个08年的帖子:
标 题:HOOK SwapContext 枚举隐藏进程(学习笔记4)
作 者:bzhkl
时 间:2008-12-11 12:01
链 接:http://bbs.pediy.com/showthread.php?t=78464
都是很老的东西了,可惜很菜才开始关注

这篇帖子讲了HOOK SwapContext 枚举隐藏进程的方法
下面是我虚拟机的WIN XP SP3  调试的代码:

/*********************************************************************
nt!KiSwapContext:
8054696c 83ec10          sub     esp,10h
8054696f 895c240c        mov     dword ptr [esp+0Ch],ebx
80546973 89742408        mov     dword ptr [esp+8],esi
80546977 897c2404        mov     dword ptr [esp+4],edi
8054697b 892c24          mov     dword ptr [esp],ebp
8054697e 648b1d1c000000  mov     ebx,dword ptr fs:[1Ch]
80546985 8bf1            mov     esi,ecx                       //自己修改处
80546987 8bbb24010000    mov     edi,dword ptr [ebx+124h]
8054698d 89b324010000    mov     dword ptr [ebx+124h],esi
80546993 8a4f58          mov     cl,byte ptr [edi+58h]
80546996 e8f5000000      call    nt!SwapContext (80546a90)     //作者修改处
8054699b 8b2c24          mov     ebp,dword ptr [esp];
8054699e 8b7c2404        mov     edi,dword ptr [esp+4]
805469a2 8b742408        mov     esi,dword ptr [esp+8]
805469a6 8b5c240c        mov     ebx,dword ptr [esp+0Ch]
805469aa 83c410          add     esp,10h
805469ad c3              ret
805469ae 8bff            mov     edi,edi
/**********************************************************************/
__declspec (naked) VOID Fake_Function()
{
	_asm
	{
		mov     esi,ecx                  //2 Byte
	    mov     edi,dword ptr [ebx+124h] //6 Byte
        mov     dword ptr [ebx+124h],esi //6  Byte
        mov     cl,byte ptr [edi+58h]    //3  Byte
	}
	_asm
	{
	     _emit 0x90     //CALL SwapContext
         _emit 0x90
         _emit 0x90
         _emit 0x90
		_emit 0x90
		_emit 0x90     //JMP  BACK
         _emit 0x90
         _emit 0x90
         _emit 0x90
         _emit 0x90  
         _emit 0x90  
         _emit 0x90  
	}
}

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

上传的附件:
收藏
免费 6
支持
分享
最新回复 (4)
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
膜拜啊~~~~~~~~~~~~~~~

很牛啊................
2012-3-4 13:00
0
雪    币: 207
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
每次任务切换的时候,建立的新KernelStack中都会保存调用该次任务切换SwapContext的返回地址!所以第二次尝试失败
膜拜楼主
2012-3-4 20:50
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
4
底子没打好,有时候

RtlCopyMemory((BYTE*)Fake_Function+ 48,JNZ_JMP,6);

会导致蓝屏,呃。。。。为什么呢?
2012-3-10 20:10
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
5
有没有人解答一下上面的问题?已经WPOFF()了,有时候会蓝屏,说是地址写错误。。
2012-3-28 22:15
0
游客
登录 | 注册 方可回帖
返回
//