Просмотр полной версии : dsetup
huntsmenhell
18.11.2012, 12:33
Добрый утро всем! Есть ли у кого исходный код dsetup.dll (Interlude) ?
А для чего вам исходники? Обычно чтобы внедрить какой-то код в ла2 заменяют dsetup на фейк. dsetup должна экспортировать такую функцию и возвращать ноль -
int DirectXSetupGetVersion(void)
{
return 0;
}
и вот так вот экспортировать на С++ например (dsetup.def) -
LIBRARY "dsetup"
EXPORTS
DirectXSetupGetVersion @11
huntsmenhell
18.11.2012, 21:23
Все так и есть, ошибка такова:
l2.exe - Ошибка приложение (заголовок)
Ошибка при инициализации приложения (0xc0000005). Для выхода из приложения нажмите кномпку "ОК". (Нажимаешь ОК, и еще одно такое же окно вылитает).
huntsmenhell
20.11.2012, 18:54
В чем проблема может быть? Код:
bool SetHooks(void)
{
FARPROC addr;
HMODULE hEngine = LoadLibraryA("engine.dll"), hNtDlll = LoadLibraryA("ntdll.dll");
MODULEINFO modinfo;
GetModuleInformation(GetCurrentProcess(), hEngine, &modinfo, sizeof(MODULEINFO));
hEngineStart = (unsigned int) hEngine;
hEngineEnd = hEngineStart + modinfo.SizeOfImage - 1;
GetModuleInformation(GetCurrentProcess(), hNtDlll, &modinfo, sizeof(MODULEINFO));
hNtDllStart = (unsigned int) hNtDlll;
hNtDllEnd = hNtDllStart + modinfo.SizeOfImage - 1;
if ((KiUserExceptDispADR = (unsigned int) GetProcAddress(LoadLibraryA("ntdll.dll"), "KiUserExceptionDispatcher")) == 0)
return false;
if (*(unsigned char*) (KiUserExceptDispADR) == 0xFC)
KiUserExceptDispADR++;
if ((addr = GetProcAddress(LoadLibraryA("ws2_32.dll"), "connect")) == 0)
return false;
true_connect = (_connect) splice((unsigned char*) addr, new_connect);
if ((addr = GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPa cket@@@Z")) == 0)
return false;
true_AddNetworkQueue = (_AddNetworkQueue) splice((unsigned char*) addr, new_AddNetworkQueue);
if ((addr = (FARPROC) GetSendPacketAddress()) == 0)
return false;
true_SendPacket = (_SendPacket) splice((unsigned char*) addr, new_SendPacket);
if ((addr = GetProcAddress(hEngine, "?MasterProcessPreRender@UInteractionMaster@@QAEXPA VUCanvas@@@Z")) == 0)
return false;
true_MasterProcessPreRender = (_MasterProcessPreRender) splice((unsigned char*) addr, new_MasterProcessPreRender);
if ((addr = GetProcAddress(hEngine, "?DrawTextTTFToCanvas@UCanvas@@QAEHHHPB_WPBVFontDra wInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z")) == 0)
return false;
true_DrawTextTTFToCanvas = (_DrawTextTTFToCanvas) addr;
if ((addr = GetProcAddress(hEngine, "?Render@FPlayerSceneNode@@UAEXPAVFRenderInterface@ @@Z")) == 0)
return false;
true_Render = (_Render) splice((unsigned char*) addr, new_Render);
TitleReplaceHook();
return true;
}
А откуда код? Один в один "похожи" на мои исходники :D
don.kein
02.12.2012, 21:44
Это код одной клиент серверной защиты, чтоб заработало под Interlude надо найти виртуальный адрес sendpacket, а как его искать никто не говорит, даже за деньги)
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot