开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1977|回复: 3
收起左侧

[C/C++] 谁能看得懂这个代码的,麻烦大家帮忙改成易的有木有

[复制链接]
结帖率:47% (16/34)
发表于 2012-3-20 09:49:26 | 显示全部楼层 |阅读模式   福建省南平市
10精币
#include "stdafx.h"#include "windows.h"#include "TlHelp32.h"const TCHAR QQ_GAME[] = _T("QQGame.exe");const TCHAR QQ_THREAD_DLL[] = _T("TenSLX.dll");typedef   enum   _THREADINFOCLASS   {   ThreadBasicInformation,   ThreadTimes,   ThreadPriority,   ThreadBasePriority,   ThreadAffinityMask,   ThreadImpersonationToken,   ThreadDescriptorTableEntry,   ThreadEnableAlignmentFaultFixup,   ThreadEventPair_Reusable,   ThreadQuerySetWin32StartAddress,   ThreadZeroTlsCell,   ThreadPerformanceCount,   ThreadAmILastThread,   ThreadIdealProcessor,   ThreadPriorityBoost,   ThreadSetTlsArrayAddress,   ThreadIsIoPending,   ThreadHideFromDebugger,   ThreadBreakOnTermination,   MaxThreadInfoClass }   THREADINFOCLASS;typedef LONG (__stdcall *_pfnZwQueryInformationThread) (  IN   HANDLE   ThreadHandle,   IN   THREADINFOCLASS   ThreadInformationClass,   OUT   PVOID   ThreadInformation,   IN   ULONG   ThreadInformationLength,   OUT   PULONG   ReturnLength   OPTIONAL   );HANDLE m_GameProcessHandle;//记录QQ_THREAD_DLL信息BYTE  * m_pmodBaseAddr; DWORD   m_dwmodBaseSize;_pfnZwQueryInformationThread m_pfnZwQueryInformationThread;BOOL StartPatch();//PATCHQQ主函数DWORD EnablePrivilege (LPCTSTR name);//提权函数BOOL ListProcessModules(DWORD dwPID);//枚举指定进程的模块BOOL ListProcessThreads( DWORD dwOwnerPID);//枚举指定进程创建的线程,并结束掉QQ保护线程PVOID ShowThreadInfo(DWORD tid);//获取线程的起始地址int _tmain(int argc, _TCHAR* argv[]){  m_pfnZwQueryInformationThread =(_pfnZwQueryInformationThread)\    GetProcAddress   (LoadLibrary(_T("ntdll.dll")),"ZwQueryInformationThread");  if (StartPatch())  {    printf("可以CE附加QQ游戏大厅了\n");  }  else    printf("失败!\n");  return 0;}BOOL StartPatch(){  if(0!=EnablePrivilege (SE_DEBUG_NAME))    {    return FALSE;    }  HANDLE hProcessSnap;  PROCESSENTRY32 pe32;  hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );  if( hProcessSnap == INVALID_HANDLE_VALUE )  {    return FALSE;  }  pe32.dwSize = sizeof( PROCESSENTRY32 );  if( !Process32First( hProcessSnap, &pe32 ) )  {    CloseHandle( hProcessSnap );    return FALSE;  }  BOOL bStartGame = FALSE;  do  {    if (_tcscmp(pe32.szExeFile, QQ_GAME) == 0)    {      bStartGame = TRUE;      m_GameProcessHandle = OpenProcess(PROCESS_VM_WRITE|PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION,\        FALSE, pe32.th32ProcessID);      if (m_GameProcessHandle == NULL)      {        return FALSE;      }      for (int i=0; i<5;i++)      {        if (!ListProcessModules(pe32.th32ProcessID))        {          return FALSE;        }      }      if (!ListProcessThreads(pe32.th32ProcessID))      {        return FALSE;      }    }  } while( Process32Next( hProcessSnap, &pe32 ) );  if (!bStartGame)  {    MessageBox(NULL,_T("运行QQ大厅后才能使用"),_T("提示"),MB_OK);    return FALSE;  }  CloseHandle( hProcessSnap );  return TRUE;}DWORD EnablePrivilege (LPCTSTR name)  {    HANDLE hToken;    BOOL rv;    //设置结构     TOKEN_PRIVILEGES priv = { 1, {0, 0, SE_PRIVILEGE_ENABLED} };    // 查找权限值     LookupPrivilegeValue (      0,      name,      &priv.Privileges[0].Luid      );    // 打开本进程Token     OpenProcessToken(      GetCurrentProcess (),      TOKEN_ADJUST_PRIVILEGES,      &hToken      );    // 提权     AdjustTokenPrivileges (      hToken,      FALSE,      &priv,      sizeof priv,      0,      0      );    // 返回值,错误信息,如果操作成功,则应为ERROR_SUCCESS,为O     rv = GetLastError();    // 关闭Token     CloseHandle (hToken);    return rv;  }  BOOL ListProcessModules(DWORD dwPID){  HANDLE hModuleSnap = INVALID_HANDLE_VALUE;  MODULEENTRY32 me32;  hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID );  if( hModuleSnap == INVALID_HANDLE_VALUE )  {    return( FALSE );  }  me32.dwSize = sizeof( MODULEENTRY32 );  if( !Module32First( hModuleSnap, &me32 ) )  {    CloseHandle( hModuleSnap );    return( FALSE );  }  do  {    if (_tcscmp(me32.szModule, QQ_THREAD_DLL) == 0)    {      m_pmodBaseAddr = me32.modBaseAddr;      m_dwmodBaseSize = me32.modBaseSize;    }  }while( Module32Next( hModuleSnap, &me32 ));  CloseHandle( hModuleSnap );  return( TRUE );}BOOL ListProcessThreads( DWORD dwOwnerPID) {   HANDLE hThreadSnap = INVALID_HANDLE_VALUE;   THREADENTRY32 te32;   PVOID addr;  hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 );   if( hThreadSnap == INVALID_HANDLE_VALUE )     return( FALSE );   te32.dwSize = sizeof(THREADENTRY32 );   if( !Thread32First( hThreadSnap, &te32 ) )   {    CloseHandle( hThreadSnap );     return( FALSE );  }  do   {     if( te32.th32OwnerProcessID == dwOwnerPID )    {      addr = ShowThreadInfo(te32.th32ThreadID);      if(((DWORD)addr>(DWORD)m_pmodBaseAddr)&&((DWORD)addr<\        ((DWORD)m_pmodBaseAddr+(DWORD)m_dwmodBaseSize)))      {        HANDLE oth=OpenThread(THREAD_ALL_ACCESS,FALSE,te32.th32ThreadID);        //关闭这个线程        TerminateThread(oth, 0);      }    }  } while( Thread32Next(hThreadSnap, &te32 ) );   CloseHandle( hThreadSnap );  return( TRUE );}PVOID ShowThreadInfo(DWORD tid) {   PVOID                    startaddr;   HANDLE                   thread;       //thread = m_pfnOpenThread_ex(THREAD_ALL_ACCESS,FALSE,tid);  thread=OpenThread(THREAD_ALL_ACCESS,FALSE,tid);  if   (thread   ==   NULL)     return   FALSE;  m_pfnZwQueryInformationThread(thread,    ThreadQuerySetWin32StartAddress,       &startaddr,       sizeof(startaddr),       NULL);   CloseHandle   (thread);   return   startaddr; }


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:76% (16/21)
发表于 2012-3-20 10:38:28 | 显示全部楼层   江西省抚州市
QQ游戏辅助?楼主复制得太乱了,把源码贴上来,或截个图贴上来
回复

使用道具 举报

结帖率:47% (16/34)
 楼主| 发表于 2012-3-20 11:28:17 | 显示全部楼层   福建省南平市
me依恋love 发表于 2012-3-20 10:38
QQ游戏辅助?楼主复制得太乱了,把源码贴上来,或截个图贴上来

http://bbs.pediy.com/showthread.php?t=147811
回复

使用道具 举报

发表于 2012-3-20 17:00:07 | 显示全部楼层   福建省泉州市
王菲王菲王菲王菲为违法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表