首页
社区
课程
招聘
[求助]第一次想破解一个软件,出问题了,请求帮助;
发表于: 2013-8-14 23:07 4102

[求助]第一次想破解一个软件,出问题了,请求帮助;

2013-8-14 23:07
4102
我第一次想根踪一个DLL,用OD加载这个DLL想分析一下,结果OD一会就退出了,请求大侠提点一下,不胜感谢。。

按理说加载一个DLL后,如果过一会就会退出的话,肯定在DLL入口函数里有退出代码,但我看了DLL的入口代码没有退出部份,郁闷。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 112
活跃值: (57)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
2
您试着换个OD看看?
http://download.csdn.net/detail/lostspeed/5276703
OllyICE_1.10_byPediy_GoodOnWin7X64.rar

我用的这个版本的OD, 在Win7X64下,用OD加载这个DLL,  没有退出啊?
您说的一会就退出了, "一会"是多久啊?
2013-8-15 01:30
0
雪    币: 112
活跃值: (57)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
3
wm818329.dll 的逆向工程
/// wm818329.dll 的逆向工程
/// 用OD可以正常加载, 运行了N久, 不会退出
/// 没壳, 直接扔到IDA中, 整理出代码
/// @note
/// wm818329.dll 作用 : 注册3个自定义消息
/// "WM_HOOKEX_XY"
/// "WM_HOOKEX_XY1"
/// "WM_HOOKEX_XY2"

#include "stdafx.h"
#include <windows.h>


int (__stdcall *g_fnRegisterWindowMessageA)(char *);

HMODULE g_hModule           =   NULL;
BOOL    g_bMsgRegisterOk    =   FALSE;

const char * pcUserMsg1 = "WM_HOOKEX_XY";
const char * pcUserMsg2 = "WM_HOOKEX_XY1";
const char * pcUserMsg3 = "WM_HOOKEX_XY2";

BOOL __stdcall MyRegisterWindowMessage(char * pcUserMsg);

BOOL APIENTRY DllMain( HMODULE hinstDLL,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
    )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        {
            g_hModule = hinstDLL;
            DisableThreadLibraryCalls(hinstDLL);
            if (!g_bMsgRegisterOk)
            {
                /// 没有注册过 或 没注册上
                g_bMsgRegisterOk = MyRegisterWindowMessage((char *)pcUserMsg1);
                g_bMsgRegisterOk += MyRegisterWindowMessage((char *)pcUserMsg2);
                if (g_bMsgRegisterOk)
                    g_bMsgRegisterOk = MyRegisterWindowMessage((char *)pcUserMsg3);
            }
        }
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

BOOL __stdcall MyRegisterWindowMessage(char * pcUserMsg)
{
    HMODULE hMoudule    =   NULL;
    BOOL    bResult     =   TRUE;

    if (NULL == g_fnRegisterWindowMessageA)
    {
        hMoudule = GetModuleHandleA("user32.dll");
        if (NULL != hMoudule)
            g_fnRegisterWindowMessageA = (int (__stdcall *)(char *))GetProcAddress(hMoudule, "RegisterWindowMessageA");
    }

    if (NULL != g_fnRegisterWindowMessageA)
        bResult = g_fnRegisterWindowMessageA(pcUserMsg);
    else
        bResult = FALSE;

    return bResult;
}
2013-8-15 02:23
0
雪    币: 398
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
靠,楼上大牛,我也放IDA里分析过了,我分析的代码怎么这么乱呢?求指点一二呀。。
我用OD加载后,等10几秒左右就会OD退出,楼上二位都说不会退出,看来真是OD有问题,我换个版本再分析。。
2013-8-15 22:45
0
游客
登录 | 注册 方可回帖
返回
//