问题同标题!先谢谢各位大哥啦

解决方案 »

  1.   

    没有高手知道吗?我在网上看,说CreateMutex创建互斥量后用CloseHandle可关闭  可是不行啊!最主要的是怎么知道其句柄呢?
      

  2.   

    http://www.cnblogs.com/deeplymove/archive/2006/04/15/376156.html
    http://blog.csdn.net/iiprogram/archive/2006/05/24/752291.aspx
      

  3.   

    如果互斥量是你自己创建的,那么用CreateMutex创建的时候返回的就是其handle,如果只知道互斥量的名字,不会 -_-!
      

  4.   

    没有高手在吗?  CloseHandle 可以关闭其它程序创造的互斥量句柄不?怎样取得互斥量句柄
      

  5.   

    有没高手存在啊 哭了!谁可帮俺解决,俺重金谢过!现金 QB  QQ会员 等等。。随便要什么,俺都给
      

  6.   

    同一个互斥体可以有好几个句柄,最初是用CreateMutex创建的,但是以后还可以用OpenMutex来生成指向这个互斥体的另外的句柄,我感觉只知道互斥体的名字,是不可能获取到其句柄的,而且只有这个互斥体的所有句柄都被close以后这个互斥体才会自动销毁。
      

  7.   

    楼上的哥哥,您讲的很对!
    Process Explorer 这个软件他可以显示出一个程序所有的Mutex句柄 且可以关闭其句柄,他是用什么方法做到的?
      

  8.   

    HANDLE WINAPI OpenMutex(
      DWORD dwDesiredAccess,
      BOOL bInheritHandle,
      LPCTSTR lpName
    );lpName就是mutex的名字,楼主的问题是什么?OpenMutex不成功?还有句柄只是进程访问系统资源的接口,只对本进程有效,closehandle也只是关闭的本进程对系统资源的占用,其它进程如果还有相应句柄的话,系统是不会释放的.process exploer也只是关闭了相应进程里的mutex的句柄而已.
      

  9.   

    我需要的就是像 process exploer 一样的功能!楼上的哥哥知道怎么实现吗?
      

  10.   

    OpenMutex的工作方式是这样的,如果LPCTSTR这个互斥体不存在,那么OpenMutex返回0;
    如果已经存在LPCTSTR这个互斥体,那么OpenMutex返回一个指向LPCTSTR的句柄,但是这个句柄并不是用CreateMutex创建LPCTSTR时产生的句柄而是重新生成的,所以就算把这个句柄close了,也只是使LPCTSTR的累加数减1,而不能彻底关闭这个LPCTSTR。
    不过既然有可以列举互斥体和句柄的软件,猜测应该有可以枚举所有互斥体的API,继续关注
      

  11.   

    谢谢楼上哥哥关注!
    我发现process exploer这个软件很好,所以特别想知道他的功能是如何实现的!楼上哥哥CloseHandle 为什么可以关闭本进程的Mutex,却关闭不了其它进程的?(是在知道句柄的情况下,句柄是用process exploer这个软件查到的!)
      

  12.   

    CloseHandle会首先检查有没有对那个对象句柄的访问权,如果连访问权都没有当然无法关闭它,如果函数返回0,可以用GetLastError看一下错误信息。
      

  13.   

    那有别的函数可以关闭吗?  process exploer 这个软件就可以关闭,我很想知道怎样实现,哥哥帮帮忙,小弟以后总之感激不尽
      

  14.   

    强制关闭mutex可能导致程序死锁,崩溃...还不如直接干掉那个进程.
      

  15.   

    不行啊 我需要的是关闭mutex
      

  16.   

    我直接说白了吧 我要做一个游戏的双开器 直接修改了游戏文件发现会出错,最近发现process exploer这个软件把那游戏的mutex关了一点问题都没有,但是我自己无法用程序实现!
      

  17.   

    procexp 是通过DeviceIoControl来关闭的
      

  18.   

    他自己的exe里面包含一个sys, 首先把文件后面的数据拷贝出来生成
    c:system32\drivers\PROCEXP90.SYS
    然后用 ZwLoadDriver来加载驱动。
    然后CreateFile ( \\.\PROCEXP90 ) 打开那个驱动。
    以后的通信全部通过DeviceIoControl来控制。所以你要实现比较困难。
      

  19.   

    这么难呀,看来又要放弃了!
    楼上的哥哥如果有时间,能不能写个代码出来,小弟愿意RMB作为报酬!
      

  20.   

    给你一个简单实现的思路
    在那个游戏中创建一个远程线程序, 可通过插入dll来实现.
    那个dll只是做一下CloseHandle的操作.
    这个handle一般是存放在exe的.data节中. 就算不是, 也一定有一个固定的内存地址.你只要分析下那个exe.  中断在CreateMutexA后面, 看他把调用函数后的eax的值放到
    哪个内存地址就知道了.如果你愿给RMB我也不介意. 首先你告诉我是哪款游戏.
      

  21.   

    就是QQ游戏啦! 那个QQ游戏大厅,以前是直接修改文件来双开,可是现在修改文件后双开玩火拼斗地主就会掉线!
      

  22.   

    给你一个简单实现的思路
    在那个游戏中创建一个远程线程序, 可通过插入dll来实现.
    那个dll只是做一下CloseHandle的操作.
    这个handle一般是存放在exe的.data节中. 就算不是, 也一定有一个固定的内存地址.你只要分析下那个exe.  中断在CreateMutexA后面, 看他把调用函数后的eax的值放到
    哪个内存地址就知道了.
    ==========================================================================牛xx
      

  23.   

    QQ游戏不行. 大厅版本太多. 数据位置一般都不一样.
    先插入线程.
    切换到ring0,便利句柄表, 找到匹配的name mutex,在去关.我帮你找找代码先.