如何实现 Unlocker 这个软件的解锁功能?
我用下面的代码使得一个文件被一个进程所占用,但是我现在想实现一个像 Unlocker 软件一样的解锁功能,怎么才能实现让这个被占用的文件再次能被运行呢?
BOOL hFileCope( LPCTSTR lpFileName,const DWORD dwRemoteProcessId)
{
BOOL bRet;
//提升自身权限
if(EnableDebugPriv(SE_DEBUG_NAME))
{
printf("add privilege error");
return FALSE;
}
//打开一个pid的进程,只要是存在的进程
HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwRemoteProcessId); //
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的进程中去,这样,只要pid的进程不退出,谁也动不了目标文件
bRet = DuplicateHandle( GetCurrentProcess(), hFile, hProcess, &hTargetHandle,
0, FALSE, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE);
CloseHandle( hProcess );
return bRet;
}
BOOL hFileCope( LPCTSTR lpFileName,const DWORD dwRemoteProcessId)
{
BOOL bRet;
//提升自身权限
if(EnableDebugPriv(SE_DEBUG_NAME))
{
printf("add privilege error");
return FALSE;
}
//打开一个pid的进程,只要是存在的进程
HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwRemoteProcessId); //
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的进程中去,这样,只要pid的进程不退出,谁也动不了目标文件
bRet = DuplicateHandle( GetCurrentProcess(), hFile, hProcess, &hTargetHandle,
0, FALSE, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE);
CloseHandle( hProcess );
return bRet;
}
...全文
相关推荐
DC-UNLOCKER解锁客户端
网络解锁客户端 手机解锁 网卡解锁 华为 ZTE中国移动联通等
VMware安装macOS完整教程 - Unlocker解锁工具使用指南含镜像
如何在VMware Workstation 17中安装macOS系统
解锁工具Unlocker v3.0.1
解锁 vm安装macos ,当前版本3.0.1,解锁后可正常看到 macos选项
首发 Unlocker For VMware15解锁安装macOS
Unlocker最新版,测试可用于最新版的VMware15.0 Pro版本,解压后以管理员身份运行win-install.cmd,不成功的请停掉VMware所有服务后重试,本人亲测可以。
unlocker3.02 适用于VMware15 解锁macOS 10.14
目前最新的版本,适用于解锁VMware 15版本的macOS安装 支持到10.14 macOS mojave。没有病毒,亲测有效,童叟无欺。


进程/线程/DLL
