-
-
[求助]关于破解CreateMutex的问题
-
发表于: 2007-9-19 22:26 5090
-
最近在破解一个游戏外挂,他用到了CreateMutex来创建互斥对象。。。我等小菜没有办法,只有破解之,又由于这东西加了个牛壳(Themida),所以采用内存补丁的办法
于是写了几行代码:
#include <windows.h>
#include <stdio.h>
voidmain()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
DWORD BaseAddress=0x401dd0;
unsigned char original[2]={0x74,0x0d};
unsigned char new_bytes[2]={0xeb,0x0d};//这两行破解检测
DWORD y;
::GetStartupInfo(&si);
if(CreateProcess("waigua.exe",NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&si,&pi))
{
::ResumeThread(pi.hThread);
::WaitForInputIdle(pi.hProcess,INFINITE);
::SuspendThread(pi.hThread);
::WriteProcessMemory (pi.hProcess,(void *)BaseAddress,new_bytes,2,&y);
::ResumeThread(pi.hThread);
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
getchar();
}
结果没什么效果,我怀疑是在我调用WaitForInputIdle之前,他己经用CreateMutex完成了检测。。。。
所以请问各位大侠有没有办法帮帮我!!!谢谢了。。
于是写了几行代码:
#include <windows.h>
#include <stdio.h>
voidmain()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
DWORD BaseAddress=0x401dd0;
unsigned char original[2]={0x74,0x0d};
unsigned char new_bytes[2]={0xeb,0x0d};//这两行破解检测
DWORD y;
::GetStartupInfo(&si);
if(CreateProcess("waigua.exe",NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&si,&pi))
{
::ResumeThread(pi.hThread);
::WaitForInputIdle(pi.hProcess,INFINITE);
::SuspendThread(pi.hThread);
::WriteProcessMemory (pi.hProcess,(void *)BaseAddress,new_bytes,2,&y);
::ResumeThread(pi.hThread);
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
getchar();
}
结果没什么效果,我怀疑是在我调用WaitForInputIdle之前,他己经用CreateMutex完成了检测。。。。
所以请问各位大侠有没有办法帮帮我!!!谢谢了。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: