Нужно обойти взаимоисключение(Mutex) в одной программе,а как это сделать не пойму.
Программа при запуске создает мутекс,для того что бы не допустить запуска копии,а мне нужно как раз обойти этот мутекс. У кого какие мысли?
быстрый выход - открываешь бинарник проги хекс-редактором в поисках мютекса и меняешь произвольный байт в нем, все будет работать
если незнаешь какой мютекс примерно - дизасм проги и близко от то4ки входа будут апи-функци работы с мютексами CreateMutex или 4ето в этом роде. далее нужно подменить переход на противоположный и все будет опять таки работать как надо
я так понимаю, прога пытается создать именованый мютекс и проверяет получилось ли это.
Пример из Рихтера
Код:
HANDLE hMutex = CreateMutex(&sa, FALSE, "JeffObj");
if (GetLastError() == ERROR_ALREADY_EXISTS) {
// открыт описатель существующего объекта sa.lpSecurityDescriptor и второй параметр (FALSE) игнорируются
} else {
// создан совершенно новый объект sa.lpSecurityDescriptor и второй параметр (FALSE) используются при создании объекта
}
Ну и соответствено в проге будет реализован похожий алгоритм. И как сказал уже ProTeuS нужно изменить переход по if на обратный.