zoukankan      html  css  js  c++  java
  • 在我的程序运行期间如何禁止某个程序运行?不需要枚举窗口或者FindWindow的方案。

    C/C++

    //VC-ConsoleWithApi 
    #include  

    //提权函数 
    void RaiseToDebugP() 

    HANDLE hToken; 
    HANDLE hProcess
    = GetCurrentProcess(); 
    if ( OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) ) 

      TOKEN_PRIVILEGES tkp; 
     
    if ( LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid) ) 
      { 
       tkp.PrivilegeCount
    = 1
       tkp.Privileges[
    0].Attributes = SE_PRIVILEGE_ENABLED; 
        
       BOOL bREt
    = AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0) ; 
      } 
      CloseHandle(hToken); 
    }     

      BOOL OccupyFile( LPCTSTR lpFileName ) 
      { 
          BOOL    bRet; 
         
    //提升自身权限 
          RaiseToDebugP(); 
      
    //打开一个pid为4的进程,只要是存在的进程,都可以 
       HANDLE hProcess = OpenProcess( PROCESS_DUP_HANDLE, FALSE, 4);    // 4为system进程号 
        
         
    if ( hProcess == NULL ) 
          {           
       
    return FALSE; 
          } 
        
          HANDLE hFile; 
          HANDLE hTargetHandle; 
      
    //以独占模式打开目标文件 
       hFile = CreateFile( lpFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);     
        
        
         
    if ( hFile == INVALID_HANDLE_VALUE ) 
          { 
              CloseHandle( hProcess ); 
             
    return FALSE; 
          } 
        
      
    //把文件句柄复制到pid=4的进程中去,这样,只要pid=4的进程不退出,谁也动不了目标文件 
      bRet = DuplicateHandle( GetCurrentProcess(), hFile, hProcess, &hTargetHandle,  
             
    0, FALSE, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE); 
        
          CloseHandle( hProcess ); 
        
         
    return bRet; 
      } 
       
       
     
    //入口函数 
      int main() 
      { 
          OccupyFile(
    "D:\\Program Files\\工具软件\\任务管理.exe"); 
        
         
    return 0
      }

    海阔天高
  • 相关阅读:
    Linux查看程序端口占用情况
    详解大端模式和小端模式
    HDFS之二:HDFS文件系统JavaAPI接口
    HBase之四--(1):Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
    HBase之七:事务和并发控制机制原理
    HBase源码分析:HTable put过程
    QueryPerformanceFrequency使用方法--Windows高精度定时计数
    mongoDB的基本使用----飞天博客
    Android使用DOM生成和输出XML格式数据
    黑马程序猿_Java 代理机制学习总结
  • 原文地址:https://www.cnblogs.com/chirs888888/p/1514959.html
Copyright © 2011-2022 走看看