History.txt
上传用户:bjwsw2004
上传日期:2014-10-10
资源大小:2404k
文件大小:2k
源码类别:

破解

开发平台:

MultiPlatform

  1. 3/15/2005
  2. ---------------------------
  3. 2k3下测试有点小问题,要改一下源码:xidt.cpp:
  4. --------------------------------------------------------------------------------
  5. BOOL AdjustTocken(LPCTSTR tocken)
  6. {
  7.   HANDLE hToken = NULL;
  8.   TOKEN_PRIVILEGES tkp;
  9.   BOOL bRet = FALSE;
  10.   tkp.PrivilegeCount = 1;
  11.   tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  12.   if ( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) &&
  13.     LookupPrivilegeValue(NULL, tocken, &tkp.Privileges[0].Luid) &&
  14.     (SetLastError(0),TRUE) &&
  15.     AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0) &&
  16.     GetLastError() == 0)
  17.   {
  18.     bRet = TRUE;
  19.   }
  20.   if(hToken) CloseHandle(hToken);
  21.   return bRet;
  22. }
  23. BOOL CXIdtApp::InitInstance()
  24. {
  25.   AdjustTocken(SE_LOAD_DRIVER_NAME);
  26. --------------------------------------------------------------------------------
  27. 3/14/2005
  28. -----------
  29. - First release
  30. 备份及恢复IDT的小工具,支持win2k/xp/2003。
  31. 主界面上有四个按钮:
  32. show : 查看当前idt.
  33. save : 存档:保存当前的idt到文件。
  34. load : 读档:从文件中读出idt.
  35. write: 将idt写入到系统中!
  36. 实现说明:
  37. 事实上,我写了一个dll,krmem.dll这个dll的功能很简单,从内核读入内存或向内核写入内存。利用这个功能,就可以写出这个idt工具了。事实上,还可以写出更多的好工具。
  38. krmem.dll导出三个函数:
  39. #define KRIMPORT __declspec(dllimport)
  40. KRIMPORT BOOL WINAPI KmOperation(IN const PVOID pSrc,OUT PVOID pdst,SIZE_T len);
  41. KRIMPORT BOOL WINAPI KReadMemory(IN const PVOID pSrc,OUT PVOID pdst,SIZE_T len);
  42. KRIMPORT BOOL WINAPI KWriteMemory(OUT PVOID pdst,IN const PVOID pSrc,SIZE_T len);
  43. KmOperation:相当于memcpy,只是copy的地址psrc和pdst都可以是内核地址。
  44. KReadMemory:读取内存,它是用KmOperation实现的。
  45. KWriteMemory:写入内存,它也是用KmOperation实现的。
  46. 程序通过sidt指令得到idt地址,通过KReadMemory或KWriteMemory实现idt表的读取和写入。
  47. 作者:goldenegg
  48. 原文:http://bbs.pediy.com/showthread.php?s=&postid=76530#post76530