- 博客(13)
- 资源 (38)
- 收藏
- 关注
原创 14.ring3-hook-WH_KEYBOARD和WH_KEYBOARD_LL的区别
转个问答:q:what is the difference between the working of two ? For WH_KEYBOARD_LLi read that it Installs a hook procedure that monitors low-level keyboard input events. What is meant bylow-level key
2012-09-21 11:02:02 8485
原创 13.ring3-反调试-CheckRemoteDebuggerPresent(ProcessDebugPort)
CheckRemoteDebuggerPresent这个API可以检测是否有调试器的存在,而且这个和PEB里面的BeingDebugged无关了。看一下CheckRemoteDebuggerPresent的声明: __in HANDLE hProcess, __in_out PBOOL pbDebuggerPresent);第一个参数是进程句柄,第
2012-09-19 16:10:26 7187 1
原创 12.ring3-反调试-IsDebuggerPresent
依赖于API的反调试这个函数会看PEB中的BeingDebugged是否为0,不为0就表示无调试器,否则表示有调试器.注意的是以前代码都会对这个函数首字节是否为0x64作判断,但在win7下,需要对应kernelBase中的IsDebuggerPresent,而不是kernel32中的IsDebuggerPresent//使用IsDebuggerPresent函数检测DbgToolTy
2012-09-19 15:14:50 5666
原创 LIST_ENTRY结构
typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRYLIST_ENTRY是一个常见的 Windows 2000 数据类型是 LIST_ENTRY 结构,内核使用该结构将所有
2012-09-17 10:41:10 1751
原创 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.l
2012-09-12 17:38:08 1498
原创 WOW64(判断32位程序运行在64位环境下)
WOW64 是 Windows-32-on-Windows-64 的缩写。它为现有的 32 位应用程序提供了 32 位的模拟,可以使大多数 32 位应用程序在无需修改的情况下运行在 Windows 64 位版本上。它类似于旧的 WOW32 子系统,负责在 Windows 32 位版本下运行 16 位的代码typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (H
2012-09-12 13:27:41 3945
原创 通过关键系统文件判断正确的操作系统版本
typedef struct tagTRANSLATION{ WORD langID; // language ID WORD charset; // character set (code page)} TRANSLATION;#define KeyFILENAMECHECK "\\kernel32.dll"DWOR
2012-09-12 12:49:31 1350
原创 rand和srand
标准库 提供两个帮助生成伪随机数的函数: int rand(void); 从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff)间的随机整数。 void srand(unsigned seed); 参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每次被调用的时候,
2012-09-12 11:02:20 605
原创 GetProcessImageFileNam取得EXE所在目录
一般是用GetModuleFileName,但这个函数需要对进程有可读可查询的权限,所以当进程只有可查询权限时,使用: HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, PID); if (hProcess) { char szPath[MAX_PATH] = {0}; GetProcessIma
2012-09-11 19:13:12 1248
原创 Detour注意点及原理
DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); DetourAttach((PVOID *)&g_pPresent, New_Present); DWORD nErr = DetourTransactionCommit(); DetourTransactionBegin();
2012-09-06 19:34:10 8657 1
原创 Detour Hook COM成员函数present和Hook 类成员函数
void * pPresent=NULL;//IDirect3DDevice9::Present函数地址指针 pPresent=(void*)*(DWORD*)(*(DWORD*)Device+0x44);//IDirect3DDevice9* Device DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread(
2012-09-06 15:06:36 5953 2
转载 Hook IDirect3DDevice9::Present
其实很简单.主要针对D3D游戏.主要思路:Hook IDirect3DDevice9::Present,在其中加入sleep函数.让系统获得更多的CPU时间片.试验游戏:剑网三(以D3D9为例) 学习各种外挂制作技术,马上去百度搜索 "魔鬼作坊" 点击第一个站 去那里学习喽。 具体实现步骤: 1.HOOK Direct3DCreate9来获得类型为LPDIRECT3D9的D
2012-09-05 19:54:36 9785 4
原创 WH_CALLWNDPROC
WH_CALLWNDPROC WH_CALLWNDPROC钩子监视SendMessage消息的传递,不管是系统内部调用的SendMessage()函数还是用户进程中调用的SendMessage()函数。 SendMessage()把消息直接交给窗口过程WndProc()来处理,WndProc()处理完消息后SendMessage()函数才返回(return resultV
2012-09-03 23:18:22 9887 2
debug.exe在win7-64下模拟
2015-08-25
SetStretchBltMode测试
2011-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人