exlporer.exe这两个函数已经搞定,但cmd.exe就是不行.甚至连取进程名字都取不到我怀疑是不是因为ring3的问题?哪位碰到这样的问题,怎么解决的,能告知否?

解决方案 »

  1.   

    试试Hook  "FindNextFileW"函数.因为是unicode的函数。
      

  2.   

    请问楼主, 你是什么系统? 98还是XP?
    你是用的修改输入节的方法还是用JMP跳转方法?
      

  3.   

    你用什么方式注入DLL?
    用GetMessage Hook吗?
    那不行,因为CMD.exe不是GUI程序,没有消息循环.
    必须列举进程列表,方法如下
    Win9X/2000:
    ToolHelp函数
    Process32First
    Process32NextModule32First
    Module32NextWinnt:
    PSAPI.DLL
    EnumProcess然后OpenProcess取得进程句柄另Winnt/2000下CMD.exe CALL CreateProcesW
    Win98下CMD.exe CALL CreateProcessA
      

  4.   

    补充一点,取得进程句柄后用DebugAPI调试CMD.EXE
    然后将注入代码写入进程中。
    看起来好像比较复杂,推荐一本书
    Matt Pietrek 著的《Windows 95 System Programming SECRETS》
    中文译名:《Windows 95 系統程式設計大奧秘》侯捷译
    已绝版,侯捷网站有下载
      

  5.   

    当然,在XP下也可用CreateRemoteProcess注入,相对简单一些。
      

  6.   

    解决办法:
    拦截CreateProcessA,CreateProcessW,及CreateRemoteThread函数,在他们的替换代码中使用
    CreateRemoteThread的方法注入Hook Dll.
    我有个例子是拦截ExitWindowsEx函数的,已经实验成功
    你可以下载看看:
    http://myproject.91x.net/AbortShutDown.jpg
    (不好意思,因为主页服务器不支持Rar文件的下载,所以我把它重命名了,将它下载下来扩展名该为rar就行了)