这里牛人很多,希望牛人都进来帮忙解决下~我要用VB来写个程序(A.exe)来保护 B.exe。
只要其他程序,如 C.exe 尝试对 B.exe 做出 OpenProcess 或 WriteProcessMemory 等动作,
我的程序 A.exe 就要把 C.exe 的 WriteProcessMemory 和 OpenProcess 都变成无效~(只有对B.exe无效);
或者我的程序A.exe 可以拦截 C.exe 的OpenProcess 和 WriteProcessMemory 参数来判断是否让其通过。请问,大家要如何实现这种Hook?有没有思路或者现成/简单的代码供参考?
应该不会是要ASM 来注入吧?

解决方案 »

  1.   

    VB hook全局API很复杂,要做很多walkaround。给你一个例子。http://hi.baidu.com/cxwr/blog/item/ac15ecc3ff89d556b319a884.html
      

  2.   

    纯vb做这些比较困难,最好用其它语言来完成dll给vb调用
      

  3.   


    说真的,在我还没有来这里发问,你给我那篇文章已经看过了,
    还有chenhui的我也参考过,连超级绿豆的也看过了。不过呢,超级绿豆的范本EXE(Apihook.exe)的hook notepad.exe 感觉上没有效果。
    我点击开起notepad的 按钮,notepad打开了,然后点开始拦截。接着我在notepad打开档案、保存档案、选择字体等,都没有被拦截下来,不知道为什么。。过程中也没有出错。我看了他的工程,好像是拦截comdgl32.dll中Opefile的api函数,但是范本中都没有效果不知道有没有高手给个解释?
      

  4.   

    hook这个OpenFile时,用的应该是线程钩子;而如果要hook OpenProcess,需要用系统钩子,而按照MSDN的说法,系统钩子必须处于一个独立的DLL中。这是用VB实现系统钩子的最大限制。
    所以你只有绕道而行。
      

  5.   

    哎!看来真的要找个通晓VC的人帮写DLL来给我vb程序调用不成?不知道其他高手还有没有更多的建议阿??
      

  6.   


    大哥,我看你的方法是ASM注入explorer.exe拦截方式。看来要纯VB做这方面也很难了~~ :(
      

  7.   

    为什么不学delphi来做DLL,和VB那么容易学,搞VC不是想累死.