首页
社区
课程
招聘
[原创]老鸟飞过。。。来坛里几个月了发一下新手学习笔记(未完。。)
发表于: 2010-12-12 14:59 5968

[原创]老鸟飞过。。。来坛里几个月了发一下新手学习笔记(未完。。)

2010-12-12 14:59
5968

目的:学习
     发帖目的: 共同学习和记录学习 (每星期希望都能坚持发。。)
     内容:对反跟踪技术原理的学习。。
     虽然看雪那本书上讲了很多,但本菜 还是认为 自己动手 坐一下比较好,虽然很简单。。
     第一节:对peb标志位的检测:


相应扩展习题:(在双进程保护中进行解除) Exam_CrackMe4.rar
相应示例代码:
#include <stdio.h>
#include <Windows.h>
BOOL WINAPI IsDebuggerPresent(void);

int WINAPI WinMain(          HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
)

{
       
        HWND        hDebug;
        if(IsDebuggerPresent())
        {
                hDebug=GetForegroundWindow();       
                SendMessage(hDebug,WM_CLOSE,NULL,NULL);                //终止od
                return        FALSE;
        }
        MessageBox(NULL,"NOT FOUND OD!","SEARCH",MB_OK);
                return        TRUE;
}

很简单 自己动手,但也可以学很多东西。。

2.调试时间限制:加密解密上 提到过:但没有真正让我感受到 所以自己就动手写了:


示例源码:
#include <stdio.h>
#include <windows.h>

int WINAPI WinMain(          HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
)
{
        DWORD        dTime1;
        DWORD        dTime2;
        dTime1=GetTickCount();
        GetCurrentProcessId();//加入你自己的认为可能会断下的地方放入 获取tickcount函数之间
        GetCurrentProcessId();
        GetCurrentProcessId();
        GetCurrentProcessId();
        GetCurrentProcessId();
        dTime2=GetTickCount();
        if(dTime2-dTime1>100)        // 如果时延过大判定 其为处于调试状态
        {
                MessageBox(NULL,"FOUND!","SEARCH",MB_OK);
        }
        else
        {
                MessageBox(NULL,"Not FOUND!","SEARCH",MB_OK);
       
        }
        return TRUE;
}

未完待续。。。。
希望在雪坛里里面,加速进步。。。。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
2
自己顶了。。。
2010-12-12 15:01
0
雪    币: 239
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
lz,加油!
2010-12-12 15:07
0
游客
登录 | 注册 方可回帖
返回
//