为什么不能hook到VB中MsgBox弹出的messagebox?难道它不调用showwindow
或MessageBox??
各位高手请指点迷津!!!

解决方案 »

  1.   

    是的。 VB中MsgBox不调用MessageBox,而是:
    MsgBox
      +---rtcMsgBox --- MSVBVM60.DLL
             |
             +-----MessageBoxIndirectA --- USER32.DLL
                      |
                      +-----SoftModalMessageBox --- USER32.DLL
                               |
                               +----ShowWindow --- USER32.DLL
    因为ShowWindow是在USER32.DLL中内部调用的,你不能通过API HOOK监视。
      

  2.   

    大侠果然是高手,我用softice跟踪的结果也是这样的,真的谢谢你了.你也是跟出来的??我在解密几个控件,但有一个老外写的很麻烦,时不时弹个框出来,tmd,只好用钩子了.
    告诉我怎么给分?(别晕!!)
      

  3.   

    好像是通过问题旁边的[管理]吧。
    不要点问题本身。我不是通过softice跟踪的,太麻烦。在vchelp上有一个DebugApiSpy的东西
    可以用用。
      

  4.   

    作实验form出现后可以截获,但还是截不住那个控件的msgbox,我在CreateObject之前下钩子,但好像是在form创建之前弹出的框,所以才
    钩不到??全局消息钩子应该是自动把dll映射进每一个进程空间的啊,
    能不能帮我想一下,大侠???再加50分
      

  5.   

    解密这种工作不太好吧。那个OCX是不是VC写的?
    这样的话就应该是在MFC的DLL中调用了MessageBox.
    就应该拦截MessageBoxA了。你可以跟踪一下看看OCX中出来Msg时用的是什么函数就可以了。
      

  6.   

    是用VB写的,要是vc写的,我早就高定了,哪个vbvm60.dll我不太了解,我不是解密,只是付费无门,老外在中国又没有帐号,再说解也很简单,我只用在项目中,不传播。
    再次表达谢意,请帮帮我。
      

  7.   

    有没有跟踪到他的MsgBox怎么出来的?你用一下VCHelp上的DebugApiSpy跟踪一下吧。
      

  8.   

    我靠,你有5个星,真的是高手啊!我的信箱:[email protected]
    拜托了。