Просмотр полной версии : Rguard interlude
Hi, My friends i write in English because my Russian is very bad.
This is my First post but i need help i search response for my problem but anyone can give me good fix ;)
This is a part of code form Rguard H5
unsigned int GetSendPacketAddress(void)
{
HMODULE hEngine = LoadLibraryA("engine.dll");
unsigned int startVMT = (unsigned int) hEngine + 0x51F658;
unsigned int AddNetworkQueue = (unsigned int) GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPa cket@@@Z");
unsigned int currVMT = startVMT;
if (AddNetworkQueue == 0)
{
return 0;
}
while (true)
{
if (*(unsigned int*) currVMT == AddNetworkQueue)
{
return *(unsigned int*) (currVMT - 0xA4);
}
currVMT++;
if (currVMT - startVMT > 10000)
{
return 0;
}
}
return 0;
}
I need fix only this part for interlude 746 protocol [EU]
Добавлено через 52 минуты
Fix like this is okey Ya ?
unsigned int GetSendPacketAddress(void)
{
HMODULE hEngine = LoadLibraryA("engine.dll");
unsigned int UNHandlerTable = (unsigned int)GetProcAddress(hEngine, "??_7UNetworkHandler@@6BUObject@@@");
return (UNHandlerTable + 0x48) + 0x6C;
}
return (UNHandlerTable + 0x48) + 0x68;
I do like this:
DWORD sendPacketAddr = 0;
int __fastcall new_AddNetworkQueue(unsigned int This, unsigned int EDX, TNetworkPacket *NetworkPacket)
{
if (sendPacketAddr == 0)
{
UNetworkHandler* UNH;
UNH = (UNetworkHandler*)This;
__asm
{
mov ecx,UNH;
mov eax,[ecx + 48h];
mov ecx,[eax]
mov edx,[ecx + 68h]//IL
mov sendPacketAddr,edx;
}
true_SendPacket = (_SendPacket) splice((unsigned char*) sendPacketAddr, new_SendPacket);
}
.....
And need another recursed version function Splice for Interlude:
unsigned int splice(unsigned char *addr, void *hook_fn)
{
if (*addr == 0xE9)
{
//splice> jmp operand found, calc jump addr and retry splice on this addr
unsigned int jmpAddr = (unsigned int)addr + (*(int*)((unsigned int)addr + 1)) + 5;
return splice((unsigned char*)jmpAddr, hook_fn);
}
unsigned char *saved = alloc_rwx_mem();
int cb = splicing_length(addr);
unsigned long oldprotect;
for (int i = 0; i < cb; i++)
{
saved[i] = addr[i];
}
write_jmp(saved + cb, addr + cb);
VirtualProtect(addr, 5, PAGE_EXECUTE_READWRITE, &oldprotect);
write_jmp(addr, hook_fn);
VirtualProtect(addr, 5, oldprotect, &oldprotect);
return (unsigned int) saved;
}
void write_jmp(unsigned char *addr, void *dest)
{
*addr = 0xE9;
*(int*) (addr + 1) = (unsigned char*) dest - (addr + 5);
}
int splicing_length(void *codePtr)
{
int cb = 0;
do
{
cb += instruction_length((char*) codePtr + cb);
}
while (cb < 5);
return cb;
}
Thanks ;)
i've one more Questions this is clean main.cpp from h5
http://pastebin.com/raw.php?i=S0z0uqzt
i want to draw on l2window
I've correct GetSendPacketAddress
I Changed ?DrawTextTTFToCanvas@UCanvas@@QAEHHHPB_WPBVFontDra wInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z
to :
?DrawTextToCanvas@UCanvas@@UAEKHHKPBGKKKMHW4L2Font Type@@HHKHHHPAV?$TArray@PAVFL2ColorFontInfo@@@@GW4 EFontExceptionType@@H@Z
but i've problem with
true_MasterProcessPreRender
and
true_Render
Client will crash with this
No log in protection
if (!SetHooks())
{
ErrorExit("Protection is not attached this client!");
Sleep(INFINITE);
}
I think addr is good but problem is in function anyone have idea how to fix this problem ?
Уважаемые пользователи, расскажите решили ли вопрос с Dsetup для Interlude 746. Месяц кручу верчу и не в какую . Может у вас есть готовое решение поделитесь, я отблагодарю.
Уважаемые пользователи, расскажите решили ли вопрос с Dsetup для Interlude 746. Месяц кручу верчу и не в какую . Может у вас есть готовое решение поделитесь, я отблагодарю.
Смотря в чем именно вопрос.
Смотря в чем именно вопрос.
В готовом Dsetup под ФТ гварт и ему подобного.
Добавлено через 8 часов 26 минут
Смотря в чем именно вопрос.
Если есть у вас готовый, скиньте в лс пожалуйста и ваш кошелек сразу.
Или подскажите что куда вписать. Правда пробовал могу скинуть что делал. Не как не получается. Снял с Енгине темиду раскрыл её. Писал в дсетуп но не то (
Готовой нет.
Я как понял у вас есть исходники какой то из защит и вы не можете их заставить работать в ИЛ. Напишите в личку что именно не получается.
wongerlt
31.08.2017, 21:17
Hello, what can be wrong with this guard, in windows xp ping about 10 sec.
send packet about 10 sec, receive about ~1-2 sec.
vBulletin® v3.6.11, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot