|
[求助]内核层如何检查进程是否已经结束?(已解决,感谢大佬)
hhkqqs 最靠谱的方法,NtQuerySystemInformation的ProcessAndThreadInformation列举的进程ID全部都是有效进程,其他各种硬编码找信息的都是玩蛇2楼的大神还不睡觉吗? |
|
|
[求助]内核层如何检查进程是否已经结束?(已解决,感谢大佬)
这里还是给个已导出但未公开的内核API:ZwQuerySystemInformation获取系统进程的例子片段给楼主.后续的应该可以搞定了! }
最后于 2020-11-8 00:26
被低调putchar编辑
,原因:
|
|
|
[求助]谁有坏兔子(Ransom/BadRabbit)病毒样本,分享一下?
真货!调用已改的ClamAV开源引擎和官方病毒库可以检测出来!后面慢慢分析,我准备把这个防御功能加到我的监控里面,太好了!
最后于 2020-11-7 22:35
被低调putchar编辑
,原因:
|
|
|
[求助]谁有坏兔子(Ransom/BadRabbit)病毒样本,分享一下?
FleTime 来自卡饭论坛(https://bbs.kafan.cn/thread-2106519-1-1.html)解压密码infected我也想分析下!感谢楼上提供! |
|
|
有偿求解决,文件过滤驱动函数FltRegisterFilter调用失败返回0xc0000034的问题
//操作回调集 static CONST FLT_OPERATION_REGISTRATION operCallbacks[]={ { IRP_MJ_CREATE, //文件的创建 0, OnFltCreatePreCallback, OnFltCreatePostCallback, NULL }, { IRP_MJ_READ, //文件的读 0, OnFltReadPreCallback, OnFltReadPostCallback, NULL }, { IRP_MJ_WRITE, //文件的写 0, OnFltWritePreCallback, OnFltWritePostCallback, NULL }, { IRP_MJ_SET_INFORMATION, //文件的设置 0, OnFltSetInformationPreCallback, OnFltSetInformationPostCallback, NULL }, { IRP_MJ_QUERY_INFORMATION, //文件的查询 0, OnFltQueryInformationPreCallback, OnFltQueryInformationPostCallback, NULL }, { IRP_MJ_CLEANUP, //清理操作 0, OnFltCleanupPreCallback, OnFltCleanupPostCallback, NULL }, { IRP_MJ_CLOSE, //关闭操作 0, OnFltClosePreCallback, OnFltClosePostCallback, NULL }, {IRP_MJ_OPERATION_END} }; ... do{ .... //填写微过滤器注册结构 g_userGlobalInfo.g_fltRegistration.Size=sizeof(FLT_REGISTRATION); g_userGlobalInfo.g_fltRegistration.Version=FLT_REGISTRATION_VERSION; #if DBG g_userGlobalInfo.g_fltRegistration.Flags=0; #else g_userGlobalInfo.g_fltRegistration.Flags=FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP; #endif g_userGlobalInfo.g_fltRegistration.ContextRegistration=NULL; g_userGlobalInfo.g_fltRegistration.OperationRegistration=operCallbacks; g_userGlobalInfo.g_fltRegistration.FilterUnloadCallback=OnFltUnloadCallback; g_userGlobalInfo.g_fltRegistration.InstanceSetupCallback=OnFltInstanceSetupCallback; g_userGlobalInfo.g_fltRegistration.InstanceQueryTeardownCallback=OnFltInstanceQueryTearDownCallback; g_userGlobalInfo.g_fltRegistration.InstanceTeardownStartCallback=OnFltInstanceTearDownStartCallback; g_userGlobalInfo.g_fltRegistration.InstanceTeardownCompleteCallback=OnFltInstanceTearDownCompleteCallback; //注册微过滤器 ntStatus=FltRegisterFilter(pDriverObject, &g_userGlobalInfo.g_fltRegistration, &g_userGlobalInfo.g_pFltFilter); if(!NT_SUCCESS(ntStatus)){ KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "Failed to FltRegisterFilter[DriverEntry]!Status: 0x%08X\n", ntStatus )); break; } ... }while(FALSE); 我的MiniFileMonitor中FltRegisterFilter没有你说的那个现象,运行很稳定,你再检查下!
最后于 2020-11-4 14:40
被低调putchar编辑
,原因:
|
|
|
有偿求解决,文件过滤驱动函数FltRegisterFilter调用失败返回0xc0000034的问题
STATUS_OBJECT_NAME_NOT_FOUND
最后于 2020-11-4 11:47
被低调putchar编辑
,原因:
|
|
|
[讨论]驱动中如何隐藏进程和模块?
我晕!粗心大意!昨天写Deamon发现ObRegisterCallbacks连nt!ZwTerminateProcess都防不住,今天来找原因,结果逆向发现: nt!ZwTerminateProcess 内部就把:kThread->PreviousMode=KernelMode了。
最后于 2020-11-3 20:41
被低调putchar编辑
,原因:
|
|
|
[求助]关于64位处理器运行32位指令的疑问
又仔细调试了下大佬的代码: 一. 不屏蔽mov eax,a 源码 #define db(a) __asm __emit(a) DEBUG版调试结果: 一. 屏蔽mov eax,a 源码 #define db(a) __asm __emit(a) DEBUG版调试结果 rax寄存器的高32位对于WOW64兼容模式下运行的32位进程仍然是不可见的(在mov dword ptr ss:[ebp-c],eax这下个断点就可以看到eax的准确值了,我这个是调试得太块,直接F9步过了,但逻辑正确,只管结果就行了),这里是通过改变段选择子并进行远返回来进行x86/x64切换得出的。 好了!开会去咯!
最后于 2020-11-2 11:44
被低调putchar编辑
,原因:
|
|
|
[原创]Windbg调试的重要功能——内核态与用户态进行切换
好了!我有事情忙!空了再来看看!这里很不错! |
|
|
[原创]Windbg调试的重要功能——内核态与用户态进行切换
现在的笔记本跑几个虚拟机是没问题的。 你应该是这里培训教学的老师了吧!学校搭建云平台还不够玩? 我不是看雪论坛培训班的师生,是外面的!觉得这里能查到自己想要的东西,就来的这里。以后多关照哈! |
|
|
[原创]Windbg调试的重要功能——内核态与用户态进行切换
笔记本多大内存? |
|
|
[原创]Windbg调试的重要功能——内核态与用户态进行切换
相信来这里都是对底层研发感兴趣,想真正掌握点东西的高手!初来论坛!对这里的情况不太熟悉!别和我这一介草民一般见识!如有冒犯之处,还请多多海涵!! |
|
|
[原创]Windbg调试的重要功能——内核态与用户态进行切换
因为你牛逼啥! |
|
|
[原创] 剖析 InfinityHook 原理 掀起一场更激烈的攻与防恶战
这个地方技术交流氛围很浓!再不学习都要落伍了!平时忙完了手头的事情,就来多向大佬们学习! |
|
|
[原创]Windbg调试的重要功能——内核态与用户态进行切换
symchk /r C:\WINDOWS\system32\*.* /s SRV*D:\test*http://msdl.microsoft.com/download/symbols, 就可以下载全部符号表(太大了,时间会很长)。如果只调试内核就下载:系统内核模块及system32\drivers目录下就可以了。 |