ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Крашит игру из-за DLL (https://forum.antichat.xyz/showthread.php?t=1507582)

qwertyrus 03.04.2024 22:55

Переписать external cheat в internal для MTA оказалось труднее, чем я думал(инжект работает и не банит). Заранее извиняюсь если код выглядит плохо, только учусь. Крашит после инжекта, пробовал изменять функцию world_to_screen, крашит в if'ах(внутри функции). Помогите если не трудно

C++:





Код:

#include "pch.h"
#include
#include
#include
#include
#include
#include
std
::
vector

world_to_screen
(
std
::
vector
>
ViewMatrix1
,
float
x
,
float
y
,
float
z
)
{
std
::
vector

badcord
=
{
-
1
,
-
1
}
;
std
::
vector

result
(
2
)
;
float
screenz
=
(
z
*
ViewMatrix1
[
2
]
[
2
]
)
+
(
y
*
ViewMatrix1
[
1
]
[
2
]
)
+
(
x
*
ViewMatrix1
[
0
]
[
2
]
)
+
ViewMatrix1
[
3
]
[
2
]
;
if
(
screenz
=
screenx
&&
screenx
>=
0
&&
1080
>=
screeny
&&
screeny
>=
0
)
{
result
[
0
]
=
static_cast

(
screenx
)
;
result
[
1
]
=
static_cast

(
screeny
)
;
return
result
;
}
else
{
return
badcord
;
}
}
DWORD WINAPI
MainThread
(
HMODULE hModule
)
{
AllocConsole
(
)
;
system
(
"title First project"
)
;
FILE
*
f
;
freopen_s
(
&
f
,
"CONOUT$"
,
"w"
,
stdout
)
;
//printf("Test 1");
Sleep
(
200
)
;
DWORD offsetview
=
0xB6FA2C
;
bool
espstatus
=
false
;
DWORD
*
cped
=
(
DWORD
*
)
0xB6F5F0
;
float
*
myhealth
=
(
float
*
)
(
*
cped
+
0x540
)
;
float
*
myarmour
=
(
float
*
)
(
*
cped
+
0x548
)
;
DWORD
*
xyz
=
(
DWORD
*
)
(
*
cped
+
0x14
)
;
float
*
x
=
(
float
*
)
(
*
xyz
+
0x30
)
;
float
*
y
=
(
float
*
)
(
*
xyz
+
0x30
+
4
)
;
float
*
z
=
(
float
*
)
(
*
xyz
+
0x30
+
8
)
;
std
::
vector
>
ViewMatrix
(
4
,
std
::
vector

(
4
)
)
;
while
(
!
GetAsyncKeyState
(
VK_END
)
)
{
if
(
GetAsyncKeyState
(
VK_INSERT
)
)
{
espstatus
=
true
;
}
if
(
GetAsyncKeyState
(
VK_DELETE
)
)
{
espstatus
=
false
;
}
for
(
int
i
=
0
;
i
=
4.0f
)
{
DWORD
*
pointercoords
=
(
DWORD
*
)
(
cpedsearch
+
0x14
)
;
float
*
hisx
=
(
float
*
)
(
*
cpedsearch
+
0x30
)
;
float
*
hisy
=
(
float
*
)
(
*
cpedsearch
+
0x34
)
;
float
*
hisz
=
(
float
*
)
(
*
cpedsearch
+
0x38
)
;
std
::
vector

onscreen
=
world_to_screen
(
ViewMatrix
,
*
hisx
,
*
hisy
,
*
hisz
)
;
//далее будет рисование, но пока упустим
}
}
}
if
(
GetAsyncKeyState
(
VK_END
)
)
{
FreeConsole
(
)
;
fclose
(
f
)
;
}
FreeLibraryAndExitThread
(
hModule
,
0
)
;
return
0
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD  ul_reason_for_call
,
LPVOID lpReserved
)
{
switch
(
ul_reason_for_call
)
{
case
DLL_PROCESS_ATTACH
:
DisableThreadLibraryCalls
(
hModule
)
;
//disables attach and detach notifications
CloseHandle
(
CreateThread
(
nullptr
,
0
,
(
LPTHREAD_START_ROUTINE
)
MainThread
,
hModule
,
0
,
nullptr
)
)
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}


SobFoX; 04.04.2024 00:26

MTA:SA Forks Anticheat Bypass

Since dutchman101 provided a protection with full anticheat for forks, i think it`s a time to fun INFO: https://wiki.multitheftauto.com/wiki/Forks_Ful...

www.unknowncheats.me

qwertyrus 04.04.2024 01:04

Цитата:

Сообщение от SobFoX;

MTA:SA Forks Anticheat Bypass

Since dutchman101 provided a protection with full anticheat for forks, i think it`s a time to fun INFO: https://wiki.multitheftauto.com/wiki/Forks_Ful...

www.unknowncheats.me


Спасибо конечно, но как это изменит краш из за функции вычисления координат на экране?

SobFoX; 04.04.2024 08:50

Цитата:

Сообщение от qwertyrus

Спасибо конечно, но как это изменит краш из за функции вычисления координат на экране?

Start by doing what I sent you, if you don't want to get a permanent ban from mta

qwertyrus 04.04.2024 18:17

Цитата:

Сообщение от SobFoX;

Start by doing what I sent you, if you don't want to get a permanent ban from mta

Скопировал данный код, выдает много ошибок, библиотеку minhook установил и добавил в проект.

upd ошибок осталось 4

Vintik 05.04.2024 15:29

А если убрать 76 строку (
Код:

world_to_screen
) — крашит?

qwertyrus 05.04.2024 15:34

Цитата:

Сообщение от Vintik

А если убрать 76 строку (
Код:

world_to_screen
) — крашит?

Нет. Крашит только с ней. Без нее все ок, функция написана вроде правильно, потому что external работало, а щас переписав под интернал что-то пошло не так.

Vintik 05.04.2024 15:58

Цитата:

Сообщение от qwertyrus

C++:





Код:

for
(
int
i
=
1
;
i
=
4.0f
)
{
DWORD
*
pointercoords
=
(
DWORD
*
)
(
cpedsearch
+
0x14
)
;
float
*
hisx
=
(
float
*
)
(
*
cpedsearch
+
0x30
)
;
float
*
hisy
=
(
float
*
)
(
*
cpedsearch
+
0x34
)
;
float
*
hisz
=
(
float
*
)
(
*
cpedsearch
+
0x38
)
;
std
::
vector

onscreen
=
world_to_screen
(
ViewMatrix
,
*
hisx
,
*
hisy
,
*
hisz
)
;
}



Как минимум, ошибка заключается в том, что координаты неправильно считываются (
Код:

pointercoords
вместо
Код:

cpedsearch
).

C++:





Код:

float
*
hisx
=
(
float
*
)
(
*
pointercoords
+
0x30
)
;
float
*
hisy
=
(
float
*
)
(
*
pointercoords
+
0x34
)
;
float
*
hisz
=
(
float
*
)
(
*
pointercoords
+
0x38
)
;



И перебор игроков у тебя неверный. Вроде должно быть так:

Цитата:


0xB74490 - Содержит указатель на указатель. Этот указатель:
  • +0 = Содержит указатель на первый элемент в пуле CPed
  • +4 = Содержит указатель на карту байтов, которая обозначает, какие элементы используются в пуле CPed
  • +8 = [dword] Максимальное число элементов в пуле CPed
  • +12 = [dword] Текущее число элементов в пуле CPed


qwertyrus 05.04.2024 16:31

Цитата:

Сообщение от Vintik

Как минимум, ошибка заключается в том, что координаты неправильно считываются (
Код:

pointercoords
вместо
Код:

cpedsearch
).

C++:





Код:

float
*
hisx
=
(
float
*
)
(
*
pointercoords
+
0x30
)
;
float
*
hisy
=
(
float
*
)
(
*
pointercoords
+
0x34
)
;
float
*
hisz
=
(
float
*
)
(
*
pointercoords
+
0x38
)
;



И перебор игроков у тебя неверный. Вроде должно быть так:

Про поинтер, я видимо когда переписывал не заметил и не то вписал, а за перебор спасибо, проверю через некоторое время и отвечу, не можешь помочь с ошибками которые на скрине?

Vintik 05.04.2024 16:43

Цитата:

Сообщение от qwertyrus

Скопировал данный код, выдает много ошибок, библиотеку minhook установил и добавил в проект.
upd ошибок осталось 4

В исходном файле (который тебе скинули) действительно эти функции не определены. Может, там еще какая-нибудь зависимость...

@SobFoX; what you can say about his issue? maybe there are other dependencies because i can't see defenition of this function in code and even in minhook source.


Время: 03:45