百度空间 | 百度首页 
               
 
文章列表
 
2009-07-06 11:31
好久没顾得上写blog了,感谢一直关注本blog的朋友。获取线程当前状态,是挂起还是终止,没有直接的API.这里把自己经常用的这段代码贴出来,与大家分享吧。

#include <stdio.h>
#include <windows.h>
#include <winbase.h>
#include <ntsecapi.h>


#define UNICODE
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#define STATUS_SUCCESS              ((NTSTATUS) 0x00000000)
#
类别:windows sdk开发 | 评论(6) | 浏览()
 
2009-03-04 02:18
网上有一篇关于这个问题的文章,题目叫《防止全局钩子的侵入》,作者不祥。文中简单分析了一下钩子的原理,然后使用了微软的Detours库进行 API拦截。如果只是为了拦截一个函数,使用Detours好像有点儿浪费。本文不使用Detours库,直接对LoadLibraryExW函数进行拦 截。
先说一下全局钩子是怎么进入到我们的程序里来的。假如有个程序A安装了WH_GETMESSAGE的全局钩子,钩子函数在B.dll中,那么当其它程 序在调用GetMessage函数从自己的消息队列中取消息的时候,系统发现程序A安装了WH_GETMESSAGE的全局钩子,就会检查调用 GetMessage的
类别:代码杂谈 | 评论(4) | 浏览()
 
2009-03-04 01:51
DWORD GetFunctionAddress( HMODULE phModule,char* pProcName )
类别:代码杂谈 | 评论(0) | 浏览()
 
2009-03-03 17:29
.text:0040A4CB MyMessageBox    proc near             
.text:0040A4CB
.text:0040A4CB var_24          = dword ptr -24h
.text:0040A4CB var_14          = byte ptr -14h
.text:0040A4CB var_C           = byte ptr -0Ch
.t
类别:代码杂谈 | 评论(3) | 浏览()
 
2009-03-02 23:34
typedef struct _SYSTEM_SERVICE_TABLE
{
    PNTPROC    ServiceTable ;    // array of entry points
    PULONG    CounterTable ;    // array of usage counters . be NULL
    ULONG    ServiceLimit ;    // number of table entries
    UCHAR*  
类别:windows内核探索 | 评论(1) | 浏览()
 
2009-02-26 12:45
类别:windows内核探索 | 评论(0) | 浏览()
 
2009-02-25 13:23
// MainProcessDll.cpp : Defines the entry point for the DLL application.
//
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

char g_waiguaFullPath[0x100] = {0};
DWORD g_FunAddr = 0;
DWORD g_PatchFunc = 0;
DWORD g_PatchAllHookFun = 0;
DWORD g_CmdLen = 5;
BYTE g_Cmd[0x14] = {0};
LPVOID g_mem = NULL;
DWORD g_hookflag = 0;

WCHAR tt[] = L"tt";

typedef HANDLE (CA
类别:游戏分析 | 评论(9) | 浏览()
 
2009-02-24 09:44
【文章标题】: 必杀技公布——用特征码定位关键代码,秒杀MFC程序
【文章作者】: 书呆彭
【下载地址】: 自己搜索下载
【使用工具】: VC与OllyICE
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
   本文所讲的方法,其实是一个很古老的方法了。以前,考虑到此法的杀伤力巨大,不便于公布。
 
类别:代码杂谈 | 评论(3) | 浏览()
 
2009-02-23 17:01
类别:代码杂谈 | 评论(0) | 浏览()
 
2009-02-16 11:29

假设我们有一个木马程序,它运行后会释放出一个dll,注入到游戏程序中去。现在,我们如果要调试这个dll,我们就需要在游戏进程中拦截到它,然后再调试它的功能。

因此,调试的步骤就是:

1. 启动游戏,让游戏正常运行起来。用OD附加上。

2. 下断bp LoadLibraryA,启动木马程序。让其dll注入。

3. 断下后,说明注入成功.这个时候可以跟踪木马释放出的dll在游戏中的动作。

4. 继续断下注入dll中的其他导出函数,进行调试,明确其各个导出函数。

注:

类别:游戏分析 | 评论(8) | 浏览()
 
     
 
 
文章分类
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

这样的方法也就写着玩玩,根本不可靠. 除非对所用编译器的编译原理非常了解.
 

to:telneter _Demo = (void (*) (int (*) (const char *,...))) &buff[0]这一句实...
 

支持
 

大哥还是不会弄啊,复制的你上面的代码,不行啊
 

谢谢 好好学习 :)
 
     


©2009 Baidu