zoukankan      html  css  js  c++  java
  • 看下Windows Live Writer写博客是否方便

    贴一段C++代码看下语法高亮是否正常

     1 #ifdef __CHECK_CHEAT_TOOLS //检查作弊工具
     2 void CD3DApplication::CheckCheatTools()
     3 {
     4     static DWORD dwCurrentPID = GetCurrentProcessId();
     5     //检测变速齿轮等
     6     //////////////////////////////////////////////////////////////////////////
     7     BYTE* byte_pos = (BYTE*)::timeGetTime;
     8     BYTE* byte_pos2 = (BYTE*)::GetTickCount;
     9     //EndScene方法偏移为A8
    10     int* ppp = (int*)(*(int*)m_pd3dDevice + 0xA8);
    11     BYTE* byte_pos3 = (BYTE*)(*ppp);
    12     if (*byte_pos == 0xE9 || *byte_pos2 == 0xE9 || *byte_pos3 == 0xE9 || *byte_pos == 0xFF || *byte_pos2 == 0xFF ) // E9/FF52 jmp 指令
    13     {
    14         //结束进程
    15         ExitProcess(-1);
    16         return;
    17     }
    18     if(m_timerCheckCheatTools.IsTimeOut()) //10s检查一次
    19     {
    20         //检测进程
    21         // 现在我们将利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照
    22         //这个函数返回包含正在运行进程的快照句柄。
    23         //他的原形是:
    24         // HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags, DWORD th32ProcessID);
    25         // 我们将dwFlags设为TH32CS_SNAPPROCESS,th32ProcessID置为0。
    26 
    27         HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    28         if(hSnapShot == INVALID_HANDLE_VALUE)
    29         {
    30             m_timerCheckCheatTools.Reset(); //重置定时器
    31             return;
    32         }
    33         //现在我们获得了所有进程的信息。
    34         //将从hSnapShot中抽取数据到一个PROCESSENTRY32结构中
    35         //这个结构代表了一个进程,是ToolHelp32 API的一部分。
    36         //抽取数据靠Process32First()和Process32Next()这两个函数。
    37 
    38         PROCESSENTRY32* processInfo = new PROCESSENTRY32;
    39 
    40         // 必须设置PROCESSENTRY32的dwSize成员的值 ;
    41         processInfo->dwSize=sizeof(PROCESSENTRY32);
    42 
    43         //开始遍历
    44         BOOL bNext = Process32First(hSnapShot,processInfo);
    45         BOOL bFound = FALSE;
    46         HANDLE hProcess = NULL;
    47         BYTE byCheck1,byCheck2,byCheck3,byCheck4;
    48         /*
    49         00402f20 0x79
    50         00402f3c 0x6b
    51         00402f53 0x19
    52         00402f5c 0x61                                                            
    53         */
    54         SIZE_T sizeRet = 0;
    55         while(bNext)
    56         {
    57             if(processInfo->th32ProcessID != dwCurrentPID)
    58             {
    59                 hProcess = OpenProcess(PROCESS_VM_READ, FALSE, processInfo->th32ProcessID);
    60                 if (hProcess)
    61                 {
    62                     ReadProcessMemory(hProcess,(LPCVOID)0x00402f20,&byCheck1,1,&sizeRet);
    63                     ReadProcessMemory(hProcess,(LPCVOID)0x00402f3c,&byCheck2,1,&sizeRet);
    64                     ReadProcessMemory(hProcess,(LPCVOID)0x00402f53,&byCheck3,1,&sizeRet);
    65                     ReadProcessMemory(hProcess,(LPCVOID)0x00402f5c,&byCheck4,1,&sizeRet);
    66                     /*
    67                     //从ASpeeder里提取的生成随机dll名的函数部分代码.之所以提取这四个常数,是因为这段代码应该不常更新,所以地址应该不会变更.这样可以提高判断成功率
    68                     //而且这四个值是固化的专用值,比如第一个0x79就是设置生成的随机dll名首字符为"y".这样可以最大限度避免误判!
    69                     */
    70                     if(byCheck1 == 0x79 && byCheck2 == 0x6b && byCheck3 == 0x19 && byCheck4 == 0x61) 
    71                     {
    72                         bFound = TRUE;
    73                         break;
    74                     }
    75                     CloseHandle(hProcess);
    76                 }
    77             }
    78             bNext = Process32Next(hSnapShot,processInfo);
    79         }
    80         CloseHandle(hSnapShot); //关闭句柄
    81         delete processInfo;
    82         if(bFound)
    83         {
    84             ExitProcess(-1);
    85             return;
    86         }
    87         m_timerCheckCheatTools.Reset(); //重置定时器
    88     }
    89 }
    90 #endif //__CHECK_CHEAT_TOOLS //检查作弊工具
  • 相关阅读:
    PLSQL中使用二维存储结构---二维数组
    重启并发管理器
    Jackson优化使用实例
    Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)
    Java泛型简明教程
    理解JSON:3分钟课程
    java 电子书下载地址
    JAVA开发中相对路径,绝对路径全面总结
    Java关键字synchronized详解
    52 个超实用网站
  • 原文地址:https://www.cnblogs.com/Athrob/p/2514703.html
Copyright © 2011-2022 走看看