如果我使用回调例程函数,我可以获得线程、进程和PEPROCESS等信息,我认为我可以使用它,但我不这么认为。还有,在内核基础上监视特定进程的API调用不是很容易吗?我尝试使用内核中的用户模式头访问PEB结构,并在LDR字段中对Flink做了一些事情,但每次都出现BSOD。
ghhkc1vu1#
API调用监控(API hooking)与内核回调有很大的不同。如果你只是对R3 API调用感兴趣,你可以在程序中使用诸如ApiMonitor之类的实用程序或诸如minhook/mhook/detours之类的R3 hooking引擎。内核回调由Windows内核提供,用于通知内核驱动程序关键行为,特别是对于防病毒解决方案。请注意,PatchGuard禁止内核挂钩。对于第二个问题,您需要__try/__except来捕获访问无效内存时可能出现的异常。从内核的Angular 来看,任何用户内存指针都是不可信和不安全的,要么指针无效,要么指针不驻留(分页)。
1条答案
按热度按时间ghhkc1vu1#
API调用监控(API hooking)与内核回调有很大的不同。如果你只是对R3 API调用感兴趣,你可以在程序中使用诸如ApiMonitor之类的实用程序或诸如minhook/mhook/detours之类的R3 hooking引擎。内核回调由Windows内核提供,用于通知内核驱动程序关键行为,特别是对于防病毒解决方案。请注意,PatchGuard禁止内核挂钩。
对于第二个问题,您需要__try/__except来捕获访问无效内存时可能出现的异常。从内核的Angular 来看,任何用户内存指针都是不可信和不安全的,要么指针无效,要么指针不驻留(分页)。