Судя по отзывам, куча народу по сей день ищет "геодату от бога". Есть естественно "умные люди" желающие продать как билдер, так и сами билды клиента, опираясь на сложности реверса, ум, и прочий мега-бред. В свое время, озадачивался поиском ребилда локаций для новых клиентов, и создавал трид на ЗГ...выясняли кучу инфы и т.д...но ее терли с наших же просьб Посему, опираясь на "потребность", создадим тридик и тут, с начинанием(лично мое "начинание" это клиент Хелиос(UNP-PTS), "что имел, то и взял" + С++) от меньшего к большему :
Запилим инлайн патч функцию:
1) Для билдера, как обычно, убираем лок нитей ОМП с 4х на 1н поток(Наша задача, загрузиться ранее чем инициализация UGameEngine::Init, посему восстанавливая DirectX компонент, разворачиваемся как DSetup с функциями, и начинаем чудеса):
2) Далеко не отходим, и патчим 3 перехода:
И билдим с командами: buildzone map=xx_yy width=65536
В итоге имеем: билд квадрата целиком + билд с закрытой локации(если чар"павн" установлен в той самой закрытой локации).
Далее что нам интересно, и как обычно это - "хочу все и сразу". Тут мы можем, либо:
1) Билдим с разных "закрытых локаций" и мержим билды.
2) Хардкод координат на квадрате(Как аналог оставлен Cruma квадрат от самих корейцев) в итоге указываем координаты руками(заведомо их зная).
3) Получить координаты ULevel'а и билдить с SIP.
4) .........(тут могут...но не хотят рассказывать люди, чьи профиты вылезли со слов Fyyre либо Sauron, и они очень любят все "впаривать")
---
В атаче билдер для Хелиос ПТС клиента руофа.
---
П.С - Совершенно не хотим претендовать к "обломщикам продаж" и прочему....Это просто наше IMHO и наши "ковыряния в клиенте" Спасибо за внимание.
П.С2 - В скором времени дополним информации с pathnode информацией с самого клиента, через его ULevel. Инфой с "мануал" билдом. Инфой с инитом координат для SIP.
П.С3 - Трид еще и тупо для того, чтобы инфу не просрать бывает моменты, когда тупо зыбываем :\
Запилим инлайн патч функцию:
Код:
bool InlinePatch(wchar_t * sModule, char * sFunction, int offset, unsigned char value)
{
DWORD oldProtect;
unsigned char * functionAddress;
functionAddress = static_cast<unsigned char *>(GetModuleFunc(sModule, sFunction)) + offset;
if(functionAddress == nullptr)
{
return false;
}
if(!VirtualProtect(functionAddress, 1, PAGE_READWRITE, &oldProtect))
{
return false;
}
*functionAddress = value;
if(!VirtualProtect(functionAddress, 1, oldProtect, &oldProtect))
{
return false;
}
return true;
}
Код:
if(!InlinePatch(L"engine.dll", "?Init@UGameEngine@@UAEXH@Z", 0x2CD, 0x01))
{
MessageBox(nullptr, L"Invalide inline patch function address 1!", L"UGameEngine::Init", MB_OK);
}
if(!InlinePatch(L"engine.dll", "?Init@UGameEngine@@UAEXH@Z", 0x2D1, 0x01))
{
MessageBox(nullptr, L"Invalide inline patch function address 2!", L"UGameEngine::Init", MB_OK);
}
Код:
if(!InlinePatch(L"engine.dll", "?buildWorldStructure@FWorldBuilder@@QAEHPAVULevel@@PA_WPAVUViewport@@HH@Z", 0x1E61, 0x84))
{
MessageBox(nullptr, L"Invalide inline patch function address 3!", L"UGameEngine::Init", MB_OK);
}
if(!InlinePatch(L"engine.dll", "?buildWorldStructure@FWorldBuilder@@QAEHPAVULevel@@PA_WPAVUViewport@@HH@Z", 0x6D6, 0x84))
{
MessageBox(nullptr, L"Invalide inline patch function address 4!", L"UGameEngine::Init", MB_OK);
}
if(!InlinePatch(L"engine.dll", "?buildWorldStructure@FWorldBuilder@@QAEHPAVULevel@@PA_WPAVUViewport@@HH@Z", 0xD9E, 0x85))
{
MessageBox(nullptr, L"Invalide inline patch function address 5!", L"UGameEngine::Init", MB_OK);
}
В итоге имеем: билд квадрата целиком + билд с закрытой локации(если чар"павн" установлен в той самой закрытой локации).
Далее что нам интересно, и как обычно это - "хочу все и сразу". Тут мы можем, либо:
1) Билдим с разных "закрытых локаций" и мержим билды.
2) Хардкод координат на квадрате(Как аналог оставлен Cruma квадрат от самих корейцев) в итоге указываем координаты руками(заведомо их зная).
3) Получить координаты ULevel'а и билдить с SIP.
4) .........(тут могут...но не хотят рассказывать люди, чьи профиты вылезли со слов Fyyre либо Sauron, и они очень любят все "впаривать")
---
В атаче билдер для Хелиос ПТС клиента руофа.
---
П.С - Совершенно не хотим претендовать к "обломщикам продаж" и прочему....Это просто наше IMHO и наши "ковыряния в клиенте" Спасибо за внимание.
П.С2 - В скором времени дополним информации с pathnode информацией с самого клиента, через его ULevel. Инфой с "мануал" билдом. Инфой с инитом координат для SIP.
П.С3 - Трид еще и тупо для того, чтобы инфу не просрать бывает моменты, когда тупо зыбываем :\