Всем привет,
Хочу показать, как избавиться от проверки PointBlank\PiercingBlow (CreateMutex)
________________________________
1. Понадобится PETools.
2. Понадобится Ida Pro\Free.
3. Понадобится Клиент игры.
_________________________
Свернуть ↑
1. PETools Делаем дамп, почти все клиенты под Themida.
2. Ida Открываем дамп, сделанный PETools.
3.Ищем проверку CreateMutex, для этого водим is running already (Alt+T)
4. Поднимаемся выше, пока не уведем Check multiple running >>>
5. Вот и изучили, jnz условие [75 4A] Занимает 2 байта.
Свернуть ↑Развернуть ↓
____________________________________
Теперь нужно написать, инжект кода.
Пример приведу на с#, дальше сами хоть с++.
Свернуть ↑
1.
Код:
const int PROCESS_VM_WRITE = 0x0020;
const int PROCESS_VM_OPERATION = 0x0008;
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool WriteProcessMemory(int hProcess, int lpBaseAddress,
byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesWritten);Code: C#
2.
Код:
Process process = new Process();
string Login = "Tester";
string Password = "1234";
string Patch = "D:/Games/PointBlank/";
int Addr = 0x408B1D; // Адрес функции jnz
process.StartInfo = new ProcessStartInfo
{
FileName = Patch + "PointBlank.exe",
Arguments = Login + " " + Password,
};
process.StartInfo.WorkingDirectory = Patch;
process.Start();
IntPtr processHandle = OpenProcess(0x1F0FFF, false, process.Id);
int bytesWritten = 0;
WriteProcessMemory((int)processHandle, Addr, new byte[] { 0x90, 0x90 }, 2, ref bytesWritten); //Nop (90)Code: C#
Свернуть ↑Развернуть ↓
Ну вот и все, теперь сколько душе угодно запустится клиентов.
Кому не нужен логин и пароль, Arguments за комментировать.