VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 194|回复: 2

[求助] GetModuleHandleA 新手求教

[复制链接]
48_avatar_middle
在线会员 发表于 2019-3-13 14:44:55 | 显示全部楼层 |阅读模式
3驿站币
GetModuleHandleA 新手求教

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"
HMODULE b;
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
                b = (HMODULE)GetModuleHandleA("Dll1.dll");
                MessageBoxA(NULL, (LPCSTR)b, "Test!", MB_OK);
        case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}




句柄不是数字吗  怎么提示这个啊? 有老师给学生讲讲吗

最佳答案

查看完整内容

这里楼主不能直接强转成字符串,这样强转的话肯定打印不出来了 地址本身是个数字,所以要用格式化字符串的形式,转成字符串,比如:sprintf 之类的,之后再 MessageBoxA 出来才行




上一篇:来点难地-自定义数据类型
下一篇:学习逆向的知识顺序与逆向的前程?
81_avatar_middle
online_moderator 发表于 2019-3-13 14:44:56 | 显示全部楼层
这里楼主不能直接强转成字符串,这样强转的话肯定打印不出来了
地址本身是个数字,所以要用格式化字符串的形式,转成字符串,比如:sprintf 之类的,之后再 MessageBoxA 出来才行
48_avatar_middle
ico_lz  楼主| 发表于 2019-3-14 07:43:22 | 显示全部楼层
Debug 发表于 2019-3-13 14:44
这里楼主不能直接强转成字符串,这样强转的话肯定打印不出来了
地址本身是个数字,所以要用格式化字符串的 ...

谢谢老师 我明白了

HMODULE b;
long long  zhi;

char c[20] = { 0 };
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
                b = (HMODULE)GetModuleHandleA("Dll1.dll");
                zhi = (long long)b;
                sprintf_s(c, "%lld" ,zhi);
        MessageBoxA(NULL, c, "Test!", MB_OK);

        case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

而且我还测试了 X64  一样可以。老师真厉害
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-25 16:12

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表