Купи интериум и не мучайсяшо це таке и как это фиксить?
Вызвано исключение: нарушение доступа для чтения.
ntHeaders было 0xA8E4FD3D.
так не интересно, у меня недотрах. как это фикситьКупи интериум и не мучайся
Паттерн изменился.шо це таке и как это фиксить?
Вызвано исключение: нарушение доступа для чтения.
ntHeaders было 0xA8E4FD3D.
Соболезнуютак не интересно, у меня недотрах. как это фиксить
#define NOMINMAX
#include <Windows.h>
#include <cstdint>
#include <exception>
#include <vector>
std::uint8_t* PatternScan(void* module, const char* signature)
{
static auto pattern_to_byte = [](const char* pattern) {
auto bytes = std::vector<int>{};
auto start = const_cast<char*>(pattern);
auto end = const_cast<char*>(pattern) + strlen(pattern);
for (auto current = start; current < end; ++current) {
if (*current == '?') {
++current;
if (*current == '?')
++current;
bytes.push_back(-1);
}
else {
bytes.push_back(strtoul(current, ¤t, 16));
}
}
return bytes;
};
auto dosHeader = (PIMAGE_DOS_HEADER)module;
auto ntHeaders = (PIMAGE_NT_HEADERS)((std::uint8_t*)module + dosHeader->e_lfanew);
auto sizeOfImage = ntHeaders->OptionalHeader.SizeOfImage;
auto patternBytes = pattern_to_byte(signature);
auto scanBytes = reinterpret_cast<std::uint8_t*>(module);
auto s = patternBytes.size();
auto d = patternBytes.data();
for (auto i = 0ul; i < sizeOfImage - s; ++i) {
bool found = true;
for (auto j = 0ul; j < s; ++j) {
if (scanBytes[i + j] != d[j] && d[j] != -1) {
found = false;
break;
}
}
if (found) {
return &scanBytes[i];
}
}
return nullptr;
}
DWORD WINAPI OnDllAttach(LPVOID base)
{
while (!GetModuleHandleA("serverbrowser.dll"))
Sleep(1000);
try {
static uint8_t* fakePrimeStatus = PatternScan(GetModuleHandleW(L"client_panorama.dll"), "83 F8 05 5E 0F 94 C0 C3");
DWORD old_protect;
VirtualProtect(fakePrimeStatus, 3, PAGE_EXECUTE_READWRITE, &old_protect);
char patch[] = { 0x83, 0xF8, 0x00 }; // bytes for cmp instuction, 0x00 is so the instruction becomes cmp eax,0
memcpy(fakePrimeStatus, patch, 3);
VirtualProtect(fakePrimeStatus, 3, old_protect, nullptr);
FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
}
catch (const std::exception & ex) {
FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1);
}
}
BOOL WINAPI DllMain(
_In_ HINSTANCE hinstDll,
_In_ DWORD fdwReason,
_In_opt_ LPVOID lpvReserved
)
{
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hinstDll);
CreateThread(nullptr, 0, OnDllAttach, hinstDll, 0, nullptr);
return TRUE;
case DLL_PROCESS_DETACH:
return TRUE;
default:
return TRUE;
}
}
Куда его вставлять?Ну вот вам обновленная версия..
C++:#define NOMINMAX #include <Windows.h> #include <cstdint> #include <exception> #include <vector> std::uint8_t* PatternScan(void* module, const char* signature) { static auto pattern_to_byte = [](const char* pattern) { auto bytes = std::vector<int>{}; auto start = const_cast<char*>(pattern); auto end = const_cast<char*>(pattern) + strlen(pattern); for (auto current = start; current < end; ++current) { if (*current == '?') { ++current; if (*current == '?') ++current; bytes.push_back(-1); } else { bytes.push_back(strtoul(current, ¤t, 16)); } } return bytes; }; auto dosHeader = (PIMAGE_DOS_HEADER)module; auto ntHeaders = (PIMAGE_NT_HEADERS)((std::uint8_t*)module + dosHeader->e_lfanew); auto sizeOfImage = ntHeaders->OptionalHeader.SizeOfImage; auto patternBytes = pattern_to_byte(signature); auto scanBytes = reinterpret_cast<std::uint8_t*>(module); auto s = patternBytes.size(); auto d = patternBytes.data(); for (auto i = 0ul; i < sizeOfImage - s; ++i) { bool found = true; for (auto j = 0ul; j < s; ++j) { if (scanBytes[i + j] != d[j] && d[j] != -1) { found = false; break; } } if (found) { return &scanBytes[i]; } } return nullptr; } DWORD WINAPI OnDllAttach(LPVOID base) { while (!GetModuleHandleA("serverbrowser.dll")) Sleep(1000); try { static uint8_t* fakePrimeStatus = PatternScan(GetModuleHandleW(L"client_panorama.dll"), "83 F8 05 5E 0F 94 C0 C3"); DWORD old_protect; VirtualProtect(fakePrimeStatus, 3, PAGE_EXECUTE_READWRITE, &old_protect); char patch[] = { 0x83, 0xF8, 0x00 }; // bytes for cmp instuction, 0x00 is so the instruction becomes cmp eax,0 memcpy(fakePrimeStatus, patch, 3); VirtualProtect(fakePrimeStatus, 3, old_protect, nullptr); FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1); } catch (const std::exception & ex) { FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1); } } BOOL WINAPI DllMain( _In_ HINSTANCE hinstDll, _In_ DWORD fdwReason, _In_opt_ LPVOID lpvReserved ) { switch (fdwReason) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hinstDll); CreateThread(nullptr, 0, OnDllAttach, hinstDll, 0, nullptr); return TRUE; case DLL_PROCESS_DETACH: return TRUE; default: return TRUE; } }
в попуКуда его вставлять?
А как это компилировать, или чи как это инжектитьВсе игроки из лобби также видят значок ты prime, но игра начинается как нон-prime!??
code:
C++:uint8_t * prime = Utils :: PatternScan ( CLIENT_DLL , " A1 ? ? ? ? 85 C0 75 07 83 F8 05 0F 94 C0 C3"); DWORD old_protect; VirtualProtect ( prime, 5, PAGE_EXECUTE_READWRITE, & old_protect); char patch [] = { 0x31, 0xC0, 0xFE , 0xC0, 0xC3}; memcpy ( prime, patch, 5); VirtualProtect ( prime, 5, old_protect , nullptr);
Пожалуйста, авторизуйтесь для просмотра ссылки.
Моя группа в вк https://vk.com/nightwebew
ctrl+c -------- ctrl+v и все готово (не хочу помагать недо пастерам) сорянА как это компилировать, или чи как это инжектить
:(ctrl+c -------- ctrl+v и все готово (не хочу помагать недо пастерам) сорян
где и как это вызывать?Ну вот вам обновленная версия..
C++:#define NOMINMAX #include <Windows.h> #include <cstdint> #include <exception> #include <vector> std::uint8_t* PatternScan(void* module, const char* signature) { static auto pattern_to_byte = [](const char* pattern) { auto bytes = std::vector<int>{}; auto start = const_cast<char*>(pattern); auto end = const_cast<char*>(pattern) + strlen(pattern); for (auto current = start; current < end; ++current) { if (*current == '?') { ++current; if (*current == '?') ++current; bytes.push_back(-1); } else { bytes.push_back(strtoul(current, ¤t, 16)); } } return bytes; }; auto dosHeader = (PIMAGE_DOS_HEADER)module; auto ntHeaders = (PIMAGE_NT_HEADERS)((std::uint8_t*)module + dosHeader->e_lfanew); auto sizeOfImage = ntHeaders->OptionalHeader.SizeOfImage; auto patternBytes = pattern_to_byte(signature); auto scanBytes = reinterpret_cast<std::uint8_t*>(module); auto s = patternBytes.size(); auto d = patternBytes.data(); for (auto i = 0ul; i < sizeOfImage - s; ++i) { bool found = true; for (auto j = 0ul; j < s; ++j) { if (scanBytes[i + j] != d[j] && d[j] != -1) { found = false; break; } } if (found) { return &scanBytes[i]; } } return nullptr; } DWORD WINAPI OnDllAttach(LPVOID base) { while (!GetModuleHandleA("serverbrowser.dll")) Sleep(1000); try { static uint8_t* fakePrimeStatus = PatternScan(GetModuleHandleW(L"client_panorama.dll"), "83 F8 05 5E 0F 94 C0 C3"); DWORD old_protect; VirtualProtect(fakePrimeStatus, 3, PAGE_EXECUTE_READWRITE, &old_protect); char patch[] = { 0x83, 0xF8, 0x00 }; // bytes for cmp instuction, 0x00 is so the instruction becomes cmp eax,0 memcpy(fakePrimeStatus, patch, 3); VirtualProtect(fakePrimeStatus, 3, old_protect, nullptr); FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1); } catch (const std::exception & ex) { FreeLibraryAndExitThread(static_cast<HMODULE>(base), 1); } } BOOL WINAPI DllMain( _In_ HINSTANCE hinstDll, _In_ DWORD fdwReason, _In_opt_ LPVOID lpvReserved ) { switch (fdwReason) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hinstDll); CreateThread(nullptr, 0, OnDllAttach, hinstDll, 0, nullptr); return TRUE; case DLL_PROCESS_DETACH: return TRUE; default: return TRUE; } }
Начерти на стене кровью честного игрока и молись богам рейджа и легита. К тебе появится один из этих богов и даст флешку с .ехе файломгде и как это вызывать?
а кровь венозную или сосудную. надо было чтобы я был девственником или без разницы?Начерти на стене кровью честного игрока и молись богам рейджа и легита. К тебе появится один из этих богов и даст флешку с .ехе файлом
Смотря какого бога вызывать. Для рейджа сосудную, для легита венозная пойдёт. НЕ СМЕШИВАТЬ, иначе они оба появятся и начнут пиздится. Будет весело, но флешку с файлом не получишь.а кровь венозную или сосудную.
Без разницы, но в жопу тебя всё равно выебут.надо было чтобы я был девственником или без разницы?
Спасибо мне понравилось, но не помоглоСмотря какого бога вызывать. Для рейджа сосудную, для легита венозная пойдёт. НЕ СМЕШИВАТЬ, иначе они оба появятся и начнут пиздится. Будет весело, но флешку с файлом не получишь.
Без разницы, но в жопу тебя всё равно выебут.
ну а если серьёзно, то как?Смотря какого бога вызывать. Для рейджа сосудную, для легита венозная пойдёт. НЕ СМЕШИВАТЬ, иначе они оба появятся и начнут пиздится. Будет весело, но флешку с файлом не получишь.
Без разницы, но в жопу тебя всё равно выебут.
Качай visual studio, копируй туда эту поеботу и компиль ( В Гугл: Как компилировать в Visual Studio )ну а если серьёзно, то как?
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz