123456

 
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 39 下一页

2012年9月17日

LIST_ENTRY结构

摘要: typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRYLIST_ENTRY是一个常见的 Windows 2000 数据类型是 LIST_ENTRY 结构,内核使用该结构将所有对象维护在一个双向链表中。一个对象分属多个链表是很常见的, Flink 成员是一个向前链接,指向下一个 LIST_ENTRY 结构, Blink 成员则是一个向后链接,指向前一个 LIST_ENTRY 结构。通常情况下,... 阅读全文

posted @ 2012-09-17 10:41 hgy413 阅读(331) 评论(0) 推荐(0) 编辑

2012年9月12日

LNK2005

摘要: 这个问题在编译Detours时遇到两次了,总结下:显示为:1.MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMTD.lib(typinfo.obj)2.MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & 阅读全文

posted @ 2012-09-12 17:38 hgy413 阅读(182) 评论(0) 推荐(0) 编辑

WOW64(判断32位程序运行在64位环境下)

摘要: WOW64 是 Windows-32-on-Windows-64 的缩写。它为现有的 32 位应用程序提供了 32 位的模拟,可以使大多数 32 位应用程序在无需修改的情况下运行在 Windows 64 位版本上。它类似于旧的 WOW32 子系统,负责在 Windows 32 位版本下运行 16 位的代码typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);LPFN_ISWOW64PROCESS fnIsWow64Process;BOOL IsWow64(){ BOOL bIsWow64 = FALSE; fnIsWo... 阅读全文

posted @ 2012-09-12 13:27 hgy413 阅读(219) 评论(0) 推荐(0) 编辑

通过关键系统文件判断正确的操作系统版本

摘要: typedef struct tagTRANSLATION{ WORD langID; // language ID WORD charset; // character set (code page)} TRANSLATION;#define KeyFILENAMECHECK "\\kernel32.dll"DWORD GetVersionExFromFile(OSVERSIONINFOEX &osvi){ BOOL bOsVersionInfoEx; TCHAR szSysDir[MAX_PATH] = {0}; TCHAR szFileNa... 阅读全文

posted @ 2012-09-12 12:49 hgy413 阅读(445) 评论(0) 推荐(0) 编辑

rand和srand

摘要: 标准库 提供两个帮助生成伪随机数的函数: int rand(void); 从srand(seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff)间的随机整数。 void srand(unsigned seed); 参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每次被调用的时候,它会查看: 1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用 srand(seed)一次来初始化它的起始值。 2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)... 阅读全文

posted @ 2012-09-12 11:02 hgy413 阅读(146) 评论(0) 推荐(0) 编辑

2012年9月11日

GetProcessImageFileNam取得EXE所在目录

摘要: 一般是用GetModuleFileName,但这个函数需要对进程有可读可查询的权限,所以当进程只有可查询权限时,使用: HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, PID); if (hProcess) { char szPath[MAX_PATH] = {0}; GetProcessImageFileName(hProcess, szPath, MAX_PATH); str = szPath; CloseHandle(hProcess); } 阅读全文

posted @ 2012-09-11 19:13 hgy413 阅读(217) 评论(0) 推荐(0) 编辑

2012年9月6日

Detour注意点及原理

摘要: DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourAttach((PVOID *)&g_pPresent, New_Present); DWORD nErr = DetourTransactionCommit();DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourDetach((PVOID *)&g_pPresent, New_Present); DWORD nErr = DetourTr.. 阅读全文

posted @ 2012-09-06 19:34 hgy413 阅读(957) 评论(0) 推荐(0) 编辑

Detour Hook COM成员函数present和Hook 类成员函数

摘要: void * pPresent=NULL;//IDirect3DDevice9::Present函数地址指针 pPresent=(void*)*(DWORD*)(*(DWORD*)Device+0x44);//IDirect3DDevice9* Device DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourAttach((PVOID *)&pPresent, New_Present); DWORD nErr = DetourTransactionCommit();HRESULT __stdc 阅读全文

posted @ 2012-09-06 15:06 hgy413 阅读(1147) 评论(0) 推荐(0) 编辑

2012年9月5日

Hook IDirect3DDevice9::Present

摘要: 其实很简单.主要针对D3D游戏.主要思路:Hook IDirect3DDevice9::Present,在其中加入sleep函数.让系统获得更多的CPU时间片.试验游戏:剑网三(以D3D9为例) 学习各种外挂制作技术,马上去百度搜索 "魔鬼作坊" 点击第一个站 去那里学习喽。具体实现步骤: 1.HOOK Direct3DCreate9来获得类型为LPDIRECT3D9的Direct3D对象的接口指针,它有一个成员函数为 IDirect3D9::CreateDevice,所以,只要根据Direct3D对象接口指针找到Direct3D对象的虚函数表,再根据虚函数表确定IDire 阅读全文

posted @ 2012-09-05 19:54 hgy413 阅读(786) 评论(0) 推荐(0) 编辑

2012年9月3日

vs2008 opengl配置

摘要: Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip无法从以上地址下载的话请使用下面的连接: http://upload.programfan.com/upfile/200607311626279.zip如果是VC++6,则应该将glut.h复制在“D:/Program Files/MicrosoftVisualStudio/VC98/Include/GL文件夹”如果是VisualStudio2008,把glut.h复制到D:\Program Files\ 阅读全文

posted @ 2012-09-03 23:18 hgy413 阅读(143) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 39 下一页

导航