首页
社区
课程
招聘
swapcontext中 调用 KeSetSystemAffinityThread 会bsod 有什么其他方法能代替这个函数的呢
发表于: 2012-10-15 23:54 7865

swapcontext中 调用 KeSetSystemAffinityThread 会bsod 有什么其他方法能代替这个函数的呢

2012-10-15 23:54
7865
如题

我hook了 swapcontext

调用 KeSetSystemAffinityThread  会 bsod
有什么其他方法能代替这个函数的呢

在里面想关联运行当前指令的cpu 但是当前的中断级别大于 dcplevel
请问 有什么办法能代替呢?

我如果加一个dcp的例程来解决这个方法
能否保证是同步的呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 199
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶一下 希望能有人帮忙
2012-10-19 21:58
0
雪    币: 225
活跃值: (339)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你hook swapcontext的目的是什么?是检查隐藏进程?如果是的话,好多方法比hook swapcontext好
2012-10-22 15:20
0
雪    币: 199
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不是 呵呵 问题解决了 是newethread 和 oldethread 颠倒了的原因。。
2012-11-11 11:55
0
雪    币: 199
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不颠倒了 就不需要调用这个了 呵呵KeSetSystemAffinityThread
2012-11-11 11:56
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
固定线程CPU...太邪恶了~
2012-11-11 15:15
0
雪    币: 14
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
给个更邪恶的 内存检测,皆是浮云
//*************************************************************************
void PreSwapContext(PETHREAD Thread)
{
	PEPROCESS Process = PsGetCurrentProcess();

	if(!IsXxxxProcess(Process))
		return;

	if(!g_EnablePatch)
		return;

	PatchXxxx(TRUE);

}
//*************************************************************************
void PostSwapContext(PETHREAD Thread)
{
	PEPROCESS Process = PsGetCurrentProcess();

	if(!IsXxxxProcess(Process))
		return;

	if(!g_EnablePatch)
		return;


	if(IsXxxxMainThread(Thread))
		PatchXxxx(FALSE);
	else
		PatchXxxx(TRUE);
	
}
//*************************************************************************
__declspec(naked) NewSwapContext()
{
	__asm
	{
		pushad
		push esi
		call PreSwapContext
		popad

		call OldSwapContext
		
		pushad
		push esi
		call PostSwapContext
		popad

		ret
	}
}
//*************************************************************************
2012-11-11 18:48
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
8
32位系统早就该淘汰了~
2012-11-11 21:40
0
雪    币: 14
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
64位系统也是一样滴,现代操作系统的设计原理都差不多的。
检测如果是一个线程,线程依赖线程调度,同样无视之。
Patchguard也是内存检测,由于用的是TimerDpc,不受线程调度影响,所以改成DPC分发时让检测线程,进程(或者说此时的虚拟内存为正确完整的),完全可以透明绕过任何检测。
难点是多CPU,多线程(或DPC)同时执行,如何保证相同进程的不同线程同时执行时的虚拟内存不一致才是最重要的,哎哟,扯远了,不说这个了
2012-11-11 22:35
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
10
用我的PageXX+DPC切入点切Cr3~对于HV关闭的PG确实ok。没HV的PG跟拔了牙的老虎一样~
2012-11-11 22:52
0
雪    币: 14
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好不容易从3到0,结果,世界已是-1
黑客帝国
2012-11-11 23:13
0
雪    币: 2120
活跃值: (73)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
ls大牛 表示看不懂啊
2012-11-12 00:19
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
13
是啊,我痛恨HV~因为HV对nested VT支持狗屎一样的吐血~
2012-11-13 04:31
0
游客
登录 | 注册 方可回帖
返回
//