VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 632|回复: 1

[求助] DLL中的MessageBox为什么没有弹出来?

[复制链接]
44_avatar_middle
online_vip hahacker 发表于 2017-11-24 18:03:39 | 显示全部楼层 |阅读模式
3驿站币
测试LPK的劫持

  1. // 入口函数

  2. BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved)
  3. {
  4.         if (dwReason == DLL_PROCESS_ATTACH)
  5.         {
  6.                 DisableThreadLibraryCalls(hModule);

  7.                 for (INT i = 0; i < sizeof(m_dwReturn) / sizeof(DWORD); i++)
  8.                 {
  9.                         m_dwReturn[i] = TlsAlloc();
  10.                 }
  11.                 //LpkEditControl这个数组有14个成员,必须将其复制过来
  12.                 memcpy(LpkEditControl+1, (int*)GetAddress("LpkEditControl") + 1,sizeof(LpkEditControl) - 1);

  13.                 TCHAR szAppName[MAX_PATH]  = TEXT("Test.exe");        //请改为相应的Dll宿主文件名
  14.                 TCHAR szFullPath[MAX_PATH] = {0};
  15.                 int nLength = 0;
  16.                 nLength = GetModuleFileName(NULL, szFullPath, MAX_PATH);
  17.                 PathStripPath(szFullPath);
  18.                 if (StrCmpI(szAppName, szFullPath) == 0)
  19.                 {
  20.                         if(Load())
  21.                         {
  22.                                 hiJack(); //劫持代码, 实现自己的功能-------------------------------------------------------------------
  23.                         }


复制代码


如果hiJack中没有MessageBox时,会输出调试信息。


  1. void hiJack()
  2. {
  3.         OutputDebugString("hiJack成功!");
  4. }
复制代码


DLL中的MessageBox为什么没有弹出来?

但是当有MessageBox时,

  1. void hiJack()
  2. {
  3.         MessageBox(NULL, "hiJack成功!", "Test", MB_OK);
  4.         OutputDebugString("hiJack成功!");
  5. }
复制代码


结果是什么都没有弹出来,而且下面“hiJack成功!”字符串也没有输出出来,

可能是MessageBox是模态对话框,阻塞了下面的OutputDebugString的输出。

问题是,这个对话框没有弹出来,,

为什么没弹出来呢?DLL中不是可能使用MessageBox的吗?求助老大。





上一篇:VC++中物理设备
下一篇:CListCtrl的GetItem在DBUG运行正常RELEASE提示错误

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

17_avatar_middle
online_supermod Koma 发表于 2017-11-28 14:26:22 | 显示全部楼层
此时user32.dll都没加载吧,用GetMoudleHandle("user32.dll")判断是不是为空,可能你得动态重定向调用MsgBox

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

GMT+8, 2018-12-11 05:08

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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