Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PointBlank\PiercingBlow. CreateMutex
#1
Всем привет,
Хочу показать, как избавиться от проверки PointBlank\PiercingBlow (CreateMutex)

[Изображение: image.png]
________________________________

1. Понадобится PETools.
2. Понадобится Ida Pro\Free.
3. Понадобится Клиент игры.
_________________________
Инструкция
____________________________________
Теперь нужно написать, инжект кода.
Пример приведу на с#, дальше сами хоть с++.

Клац

PointBlank
PiercingBlow
Ну вот и все, теперь сколько душе угодно запустится клиентов.
Кому не нужен логин и пароль, Arguments за комментировать.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Ответ
#2
first of all thank you so much for spreading this knowledge.
for a moment i still have a issue with piercing blow, with dumped code or original .exe file
i cannot find the call for a mutex or a jnz instruction, in dump even i can find access to string


again, tyvm for this thread

obs: xigncode already bypassed

[Изображение: 7N6JIFZ.png]

[Изображение: cEDd9Li.png]
Ответ
#3
Можно во много раз проще, без проблем с патчингом под изменение кода в клиенте. Достаточно убить глобальные мьютексы во всем клиенте, ибо они используются только для контроля запуска вторичных инстансов. Это можно сделать, например, так:
Код:
DWORD WINAPI SetupKernel(PVOID) {
    PVOID lib;
    while((lib = GetModuleHandleW(L"kernel32.dll")) == nullptr) {
        Sleep(10);
    }

    pHookCreateMutex = new Hook(wstring(L"kernel32.dll"), string("CreateMutexA"), &hCreateMutex);
    pHookCreateMutex->SetFlushCache(true);
    adrCreateMutex = reinterpret_cast<DWORD>(pHookCreateMutex->GetFunctionAddress());
    pHookCreateMutex->Apply();
    return 0;
}

Код:
HANDLE WINAPI hCreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) {
    const char* filter = "Global";
    if(strncmp(lpName, filter, strlen(filter)) != 0) {
        //try call original kernel function from virtual dll stub (minwin kernel)
        typedef HANDLE (*TCreateMutexA)(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
        TCreateMutexA oCreateMutex = (TCreateMutexA)GetProcAddress(GetModuleHandleA("api-ms-win-core-synch-l1-1-0.dll"), "CreateMutexA");
        return oCreateMutex;
    }

    return nullptr;
}
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#4
n3k0nation Написал:Можно во много раз проще, без проблем с патчингом под изменение кода в клиенте. Достаточно убить глобальные мьютексы во всем клиенте, ибо они используются только для контроля запуска вторичных инстансов. Это можно сделать, например, так:
Код:
DWORD WINAPI SetupKernel(PVOID) {
    PVOID lib;
    while((lib = GetModuleHandleW(L"kernel32.dll")) == nullptr) {
        Sleep(10);
    }

    pHookCreateMutex = new Hook(wstring(L"kernel32.dll"), string("CreateMutexA"), &hCreateMutex);
    pHookCreateMutex->SetFlushCache(true);
    adrCreateMutex = reinterpret_cast<DWORD>(pHookCreateMutex->GetFunctionAddress());
    pHookCreateMutex->Apply();
    return 0;
}

Код:
HANDLE WINAPI hCreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) {
    const char* filter = "Global";
    if(strncmp(lpName, filter, strlen(filter)) != 0) {
        //try call original kernel function from virtual dll stub (minwin kernel)
        typedef HANDLE (*TCreateMutexA)(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
        TCreateMutexA oCreateMutex = (TCreateMutexA)GetProcAddress(GetModuleHandleA("api-ms-win-core-synch-l1-1-0.dll"), "CreateMutexA");
        return oCreateMutex;
    }

    return nullptr;
}


can i have a better explanation about this code usage, sorry i'm not a c++ Expert, even a c++ coder, i'm just a Java coder and know a bit of c#
Ответ
#5
bola,
Create a DLL, then inject into the process
(ddraw) startup.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Ответ
#6
bola Написал:can i have a better explanation about this code usage, sorry i'm not a c++ Expert, even a c++ coder, i'm just a Java coder and know a bit of c#

Awiion i have created a DLL already, but as example, pHookCreateMutex is undefined,

new Hook ???

many things are unknown for me

and here comes the song...
Hello Darkness my Old friend
Ответ
#7
n3k0nation Написал:Можно во много раз проще, без проблем с патчингом под изменение кода в клиенте. Достаточно убить глобальные мьютексы во всем клиенте, ибо они используются только для контроля запуска вторичных инстансов. Это можно сделать, например, так:
Код:
DWORD WINAPI SetupKernel(PVOID) {
    PVOID lib;
    while((lib = GetModuleHandleW(L"kernel32.dll")) == nullptr) {
        Sleep(10);
    }

    pHookCreateMutex = new Hook(wstring(L"kernel32.dll"), string("CreateMutexA"), &hCreateMutex);
    pHookCreateMutex->SetFlushCache(true);
    adrCreateMutex = reinterpret_cast<DWORD>(pHookCreateMutex->GetFunctionAddress());
    pHookCreateMutex->Apply();
    return 0;
}

Код:
HANDLE WINAPI hCreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) {
    const char* filter = "Global";
    if(strncmp(lpName, filter, strlen(filter)) != 0) {
        //try call original kernel function from virtual dll stub (minwin kernel)
        typedef HANDLE (*TCreateMutexA)(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
        TCreateMutexA oCreateMutex = (TCreateMutexA)GetProcAddress(GetModuleHandleA("api-ms-win-core-synch-l1-1-0.dll"), "CreateMutexA");
        return oCreateMutex;
    }

    return nullptr;
}

Thank you!

(XignCode && CreateMutexA Patched)

[Изображение: y9edY4t.jpg]
Ответ
#8
Anykia Написал:Thank you!

(XignCode && CreateMutexA Patched)

[Изображение: y9edY4t.jpg]

How the hell have you done this
Ответ
#9
bola, i share only code snippet. Your can use any code with splice hook implement.
I compile my dll for point blank (wo host/port change and etc, only mutex processing), take it and dont worrySmile My dll have public export function: EmptyExport, u can add it into game PE as imported dll.

P.S: my dll needs minwin windows update (started from Windows Vista) and of course ms redistributable.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#10
n3k0nation Написал:bola, i share only code snippet. Your can use any code with splice hook implement.
I compile my dll for point blank (wo host/port change and etc, only mutex processing), take it and dont worrySmile My dll have public export function: EmptyExport, u can add it into game PE as imported dll.

P.S: my dll needs minwin windows update (started from Windows Vista) and of course ms redistributable.

Please God bless you, tyvm
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Share PointBlank Emulator v3.24 + Source :) UNKOWN 11 10,004 12-19-2024, 10:16 AM
Последний пост: Supakit4250
  To dumb pointblank.exe TomCodder 1 3,196 11-04-2023, 09:15 PM
Последний пост: sanglovepb22
  А как сейчас делать Дамп PointBlank? 3romba 10 3,515 03-18-2019, 02:15 PM
Последний пост: zOne62
  I have a some question for pointblank tools 0hLovely 0 1,454 07-13-2018, 04:08 AM
Последний пост: 0hLovely
  How to edit file pointblank th bmzproject 0 1,717 05-23-2018, 04:05 PM
Последний пост: bmzproject
  Устройство внутриигрового магазина PointBlank и PiercingBlow 3.0+ PROGRAMMATOR 0 5,362 02-16-2018, 03:53 PM
Последний пост: PROGRAMMATOR
  Items PointBlank? Codex1to 5 2,277 02-12-2018, 10:00 PM
Последний пост: Boris2105
  [Point Blank]Someone can help me DUMP PointBlank.exe Exile03 3 2,645 05-12-2017, 05:21 AM
Последний пост: TheBestGuy
  PointBlank ongame udp3 server Comandante9901 3 4,666 12-04-2016, 05:39 PM
Последний пост: Awiion

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)