Archive for the ‘Windows’ Category

乾坤大挪移inline hook

乾坤大挪移inline hook

几个驱动开发常识

用堆栈中的锁变量来加锁是没有意义的,因为每个线程来执行都会用各自的锁了。
DRIVER_OBJECT中有一个派遣函数数组MajorFunctions[IRP_MJ_MAXIMUM_FUNCTION],还有一个单独的DriverUnload。
IoCreateDeviceSecure可以使应用层程序不具备管理员权限的情况下与驱动通信。

UNICODE_STRING uniStr = RTL_CONSTANT_STRING(L"uniStr");
UNICODE_STRING uniStr;
RtlInitUnicodeString(&uniStr, L"uniStr");

32位fastcall第一、二个参数使用ecx和edx传递。
64位使用rcx、rdx、r8和r9传递第一至四个参数。

指令前缀分为普通前缀(Prefixes)、指示性前缀(Mandatory Prefixes)和64位扩展前缀(REX Prefixes)。

LIST_ENTRY.Flink指向下一个LIST_ENTRY
LIST_ENTRY.Blink指向前一个LIST_ENTRY
LIST_ENTRY structure

禁用任务管理器

以前写过禁用任务管理器,当时的刚学Windows程序设计不久,手法拙劣。用的是Timer找任务管理器的窗口,然后干掉它。今天偶然看到另一种方法,其实也是老方法了,只是我才疏学浅才接触到。核心思想就是独占任务管理器的二进制文件。示例代码如下:

HANDLE hFile = CreateFile("C:\\Windows\\System32\\taskmgr.exe", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
 if(INVALID_HANDLE_VALUE == hFile)
 {
  return -1;
 }
 Sleep(10000);
 CloseHandle(hFile);
 return 0;

这样10s内就无法呼出任务管理器了。

网络编程总结

网络编程总结

PsSetLoadImageNotifyRoutine

试了下PsSetLoadImageNotifyRoutine的功能,代码和结果如下:

PsSetLoadImageNotifyRoutine

notepad

XueTr和PowerTool FullImageName不正确,有待研究。

无觅相关文章插件,快速提升流量