Пользователь
-
Автор темы
- #1
Сделал свой лоадер для кряка ав на легаси чтобы не инжектить 3 дллки. Все работает и чит инжектится без проблем. Без дебаггера чит крашит при заходе на карту, а с дебаггером все работает. В чем может быть проблема?
C++:
std::memcpy(reinterpret_cast<void*>(0x1B250000), bin1, sizeof(bin1));
std::memcpy(reinterpret_cast<void*>(0x1B270000), bin2, sizeof(bin2));
std::memcpy(reinterpret_cast<void*>(0x2B920000), bin3, sizeof(bin3));
std::memcpy(reinterpret_cast<void*>(0x6D450000), bin4, sizeof(bin4));
std::memcpy(reinterpret_cast<void*>(0x1B290000), bin5, sizeof(bin5));
std::memcpy(reinterpret_cast<void*>(0x1B240000), bin6, sizeof(bin6));
//std::cout << "fixing imports..." << std::endl;
for (const auto& current_import : g_imports)
{
HMODULE hmodule = LoadLibraryA(std::get< 1 >(current_import).c_str());
if (!hmodule)
continue;
uint32_t function = (uint32_t)GetProcAddress(hmodule, std::get< 2 >(current_import).c_str());
if (!function)
continue;
*reinterpret_cast<uint32_t*>(std::get< 0 >(current_import)) = function;
}
*(int*)(0x2B9A82BC) = 0xEB;
*(int*)(0x1B25F250) = 0;
*(int*)(0x1B260164) = 0;
*(int*)(0x1B260158) = 0;
*(int*)(0x1B260148) = 0;
*(int*)(0x1B260138) = 0;
//std::cout << "calling entry..." << std::endl;
(reinterpret_cast<awInit>(0x2B982DC0))(0x1B290000);
//std::cout << "done!" << std::endl;
return EXIT_SUCCESS;