CodeAtom.h
上传用户:qc13828
上传日期:2007-06-21
资源大小:63k
文件大小:2k
源码类别:

ICQ弱点检测代码

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. // 预处理
  3. #pragma once
  4. #include <Windows.h>
  5. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7. // CODEATOM 结构
  8. typedef struct tagCODEATOM
  9. {
  10. DWORD dwAddress; // 地址
  11. UINT uRangeSize; // 范围大小
  12. UINT uStampSize; // 标识大小,不能大于 255
  13. BYTE bStamp[255]; // 标识数据
  14. BYTE bPatch[255]; // 替换数据
  15. PBYTE pbStart; // 内部使用的数据指针
  16. PBYTE pbEnd; // 内部使用的结束指针
  17. BOOL bPatched; // 内部使用的补丁标志
  18. }
  19. CODEATOM, *PCODEATOM;
  20. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  21. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  22. // CCodeAtom 类
  23. class CCodeAtom
  24. {
  25. public:
  26. // 执行文件并打补丁
  27. static UINT Execute(PTSTR ptzFileName, PCODEATOM pCa, 
  28. UINT uNum = 1, UINT uTry = 5, UINT uSleep = 400, BYTE bIgnore = '?');
  29. private:
  30. // 打补丁
  31. static BOOL Patch(HANDLE hProcess, PCODEATOM pCa, BYTE bIgnore);
  32. // 比较标识
  33. static BOOL EqualStamp(PBYTE pbData, PBYTE pbStamp, UINT uSize, BYTE bIgnore);
  34. // 写入补丁
  35. static BOOL WritePatch(HANDLE hProcess, DWORD dwAddress, PBYTE pbPatch, UINT uSize, BYTE bIgnore);
  36. };
  37. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////