Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 21 Дек 2018
- Сообщения
- 383
- Реакции
- 11
Привет всем, нашёл данный исходник экстернал чита (который использует драйвер) на всем знакомом форуме
Практически всё нужное обновил, кроме данных функций ( Getcliente, getcliententitybyid , creatactor ). Ранее с экстерналом не работал (ну попытки были, но чисто изучение драйвера, не по функционалу). Таких реализаций данных функций не видел (т.к. в интернале всё работает через игровые классы).
Вот собственно функции, чтобы не смотреть отдельно исходник.
Можете пожалуйста объяснить как это обновить можно? Я пытался и по названиям ( и по похожим ) искать в дампе игры через иду, в псевдокоде совсем другой код. Хочется понять как вообще такую реализацию находят (если что, под рукой исходника движка нету, т.к. не сохранял, а с гитхаба его удалили недавно).
Спасибо заранее!
Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама).Практически всё нужное обновил, кроме данных функций ( Getcliente, getcliententitybyid , creatactor ). Ранее с экстерналом не работал (ну попытки были, но чисто изучение драйвера, не по функционалу). Таких реализаций данных функций не видел (т.к. в интернале всё работает через игровые классы).
Вот собственно функции, чтобы не смотреть отдельно исходник.
C++:
IActor* __fastcall Getcliente(int id)
{
int64 v2; // rax
__int16 _Id; // si
int64 v4; // rdi
int64 j; // rbx
IActor* iActor; // rcx
int64 v7; // rax
__int64 i; // rax
int64 v9; // rcx
v2 = Read<int64>((DWORD64)this + 0x30);
v4 = (int64)this;
j = Read<int64>((DWORD64)v2);
if (j == v2)
return 0;
int oooo = 0;
while (1)
{
iActor = Read<IActor*>((DWORD64)j + 0x28);
if (iActor)
{
if (Read<DWORD>((DWORD64)iActor + 0x20) == id)
{
return iActor;
}
}
v7 = Read<int64>((DWORD64)j + 0x10);
if (Read<BYTE>((DWORD64)v7 + 0x19))
{
for (i = Read<int64>((DWORD64)j + 0x8); !Read<BYTE>((DWORD64)i + 0x19); i = Read<int64>((DWORD64)i + 0x8))
{
if (j != Read<int64>((DWORD64)i + 0x10))
break;
j = i;
}
j = i;
}
else
{
v9 = Read<int64>((DWORD64)v7);
for (j = Read<int64>((DWORD64)j + 0x10); !Read<BYTE>((DWORD64)v9 + 0x19); v9 = Read<int64>((DWORD64)v9))
j = v9;
}
if (j == Read<int64>((DWORD64)v4 + 0x30))
return 0i64;
}
return 0;
}
int32 GetclientEntityId()
{
int64 v1 = Read<int64>((DWORD64)this + 0x50);
int64 v2 = Read<int64>((DWORD64)v1 + 0x48);
if (v2)
v2 = Read<int64>((DWORD64)v2 + 0x10);
if (!v2)
return 0;
int32 v4 = Read<int32>((DWORD64)v2 + 0x20);
if (!v4)
return 0;
return v4;
}
__int64 __fastcall CreatActor(ActorStruct* ActorStruct)
{
int64 v2; // rax
__int16 _Id; // si
int64 v4; // rdi
int64 j; // rbx
IActor* iActor; // rcx
int64 v7; // rax
__int64 i; // rax
int64 v9; // rcx
v2 = Read<int64>((DWORD64)this + 0x30);
v4 = (int64)this;
j = Read<int64>((DWORD64)v2);
if (j == v2)
return 0;
ActorStruct->size = Getactorsize();
int oooo = 0;
while (1)
{
iActor = Read<IActor*>((DWORD64)j + 0x28);
if (iActor)
{
ActorStruct->Actor[oooo] = iActor;
oooo++;
if (oooo >= ActorStruct->size)
break;
}
v7 = Read<int64>((DWORD64)j + 0x10);
if (Read<BYTE>((DWORD64)v7 + 0x19))
{
for (i = Read<int64>((DWORD64)j + 0x8); !Read<BYTE>((DWORD64)i + 0x19); i = Read<int64>((DWORD64)i + 0x8))
{
if (j != Read<int64>((DWORD64)i + 0x10))
break;
j = i;
}
j = i;
}
else
{
v9 = Read<int64>((DWORD64)v7);
for (j = Read<int64>((DWORD64)j + 0x10); !Read<BYTE>((DWORD64)v9 + 0x19); v9 = Read<int64>((DWORD64)v9))
j = v9;
}
if (j == Read<int64>((DWORD64)v4 + 0x30))
return 0i64;
}
return 0;
}
Можете пожалуйста объяснить как это обновить можно? Я пытался и по названиям ( и по похожим ) искать в дампе игры через иду, в псевдокоде совсем другой код. Хочется понять как вообще такую реализацию находят (если что, под рукой исходника движка нету, т.к. не сохранял, а с гитхаба его удалили недавно).
Спасибо заранее!