 |
|

30.10.2023, 23:04
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
Сообщение от WeWorny
как мне сделать функцию StartAdditionalThread в отдельном файле. Чтобы при кнопке start вызывалась эта функция из другого файла
создаешь другой файл, вообще поебать какое расширение(принято .h), назовем его допустим hui.lol потом #include "hui.lol" в основном файле, и прописываешь реализацию функции в hui.lol, потом вызываешь функцию
|
|
|

02.11.2023, 19:50
|
|
Участник форума
Регистрация: 25.11.2021
Сообщений: 198
С нами:
2351419
Репутация:
48
|
|
C++:
Код:
void
func1
(
)
{
std
::
cout «
"func1"
;
}
void
func2
(
)
{
std
::
cout «
"func2"
;
}
int
main
(
)
{
while
(
true
)
{
func1
;
func2
;
}
return
0
;
}
- как вы видите у меня есть две функции, и третия основая, в которой я вызываю две эти функции, как мне в главной функции сделать что при вызове func1 - замараживалось на определенное время, но func2 продалжала работать, после разморозки функции func1, происходил код из func1, а потом опять замораживался, но func2 продалжал работу
|
|
|

02.11.2023, 20:48
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
Сообщение от WeWorny
void func1(){
std::cout « "func1";
}
void func2(){
std::cout « "func2";
}
int main() {
while(true) {
func1;
func2;
}
return 0;
} - как вы видите у меня есть две функции, и третия основая, в которой я вызываю две эти функции, как мне в главной функции сделать что при вызове func1 - замараживалось на определенное время, но func2 продалжала работать, после разморозки функции func1, происходил код из func1, а потом опять замораживался, но func2 продалжал работу
создать bool переменную, и если она фолс, то пропускать func1, а когда тебе надо, сделаешь ее true, если тебе по какому то таймеру надо, тогда запускай в отдельном потоке таймер и считай, потом делай true
|
|
|

03.11.2023, 17:52
|
|
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами:
3596877
Репутация:
183
|
|
Сообщение от percheklii
такой вопрос, можно это реализовать на c++ в asi плагине? адреса памяти то понятно, но samp.events реально?
Сообщение от Спойлер
Lua:
Код:
local
sampev
=
require
(
"samp.events"
)
local
memory
=
require
(
"memory"
)
memory
.
write
(
0x70476E
,
0x0B32
,
4
,
true
)
;
memory
.
write
(
0x70476A
,
0xE9575653
,
4
,
true
)
--NoPostFx
memory
.
write
(
0x53EA95
,
0xB7C7F0
,
4
,
true
)
;
memory
.
setfloat
(
0xB7C7F0
,
201
,
true
)
--Drawdist
memory
.
setuint8
(
getModuleHandle
(
"samp.dll"
)
+
0x9D170
,
0xC3
,
true
)
--FpsUnlock
memory
.
copy
(
0x4EB9A0
,
memory
.
strptr
(
"\xC2\x04\x00"
)
,
3
,
true
)
--NoRadio
memory
.
copy
(
0x866C94
,
memory
.
strptr
(
"$%d"
)
,
6
,
true
)
--NoMoneyZero
memory
.
write
(
0x52228E
,
0xB6EC1C
,
4
,
true
)
-- SensitivityFix
memory
.
write
(
5497324
,
235
,
1
,
true
)
--NoTargetBlip
memory
.
write
(
8931716
,
0
,
4
,
true
)
--FixBlackRoads
memory
.
setuint8
(
0x5909AB
,
0x1
,
true
)
--FastLoad
function
main
(
)
callFunction
(
0x7469A0
,
0
,
0
)
end
function
sampev
.
onServerMessage
(
color
,
text
)
if
text
:
find
(
"Чтобы завести транспорт"
)
or
text
:
find
(
"Чтобы закрыть транспорт"
)
then
sampSendChat
(
"/engine"
)
end
end
function
sampev
.
onShowTextDraw
(
id
,
data
)
data
.
text
=
data
.
text
:
gsub
(
"~w~galaxy%-rpg%.online~n~"
,
""
)
return
{
id
,
data
}
end
function
sampev
.
onDisplayGameText
(
style
,
time
,
text
)
return
{
4
,
2000
,
text
}
end
ну, просто 3 хука…
|
|
|

03.11.2023, 22:34
|
|
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами:
4598023
Репутация:
183
|
|
Сообщение от Digger Man
ну, просто 3 хука…
пытался помочь челику и найти в исходниках самп.луа адреса хуков, но не нашёл
может быть ты найдёшь?
|
|
|

03.11.2023, 23:23
|
|
Участник форума
Регистрация: 26.06.2018
Сообщений: 166
С нами:
4149151
Репутация:
213
|
|
Сообщение от Vintik
пытался помочь челику и найти в исходниках самп.луа адреса хуков, но не нашёл
может быть ты найдёшь?
там же пакеты хукаются, какие там могут быть адреса?
для того, чтоб найти адреса нужно знать что конкретно нужно хукать - можно хукнуть обработку пакетов и обрабатывать там, либо сразу же хукать функции, которые вызывает самп после прочтения пакета, а так же нужно знать версию сампа - на разных версиях разные адреса.
|
|
|

04.11.2023, 19:59
|
|
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами:
2614229
Репутация:
33
|
|
What is wrong with my code? When getting into a vehicle the game crashes (R1)
Что не так с моим кодом? При посадке в транспорт игра вылетает (R1)
C++:
Код:
bool
MemoryCheck
(
int
pAddress
,
unsigned
char
cByte
)
{
unsigned
long
dwProtect
[
2
]
;
unsigned
char
cValue
=
cByte
;
VirtualProtect
(
reinterpret_cast
(
pAddress
)
,
1
,
PAGE_READWRITE
,
&
dwProtect
[
0
]
)
;
memcpy
(
&
cValue
,
reinterpret_cast
(
pAddress
)
,
1
)
;
VirtualProtect
(
reinterpret_cast
(
pAddress
)
,
1
,
dwProtect
[
0
]
,
&
dwProtect
[
1
]
)
;
return
(
cValue
>
cByte
)
;
}
DWORD
GetVehicleCPEDPtr
(
)
{
unsigned
long
dwProtect
[
2
]
;
DWORD vehicleCPEDPtr
;
VirtualProtect
(
reinterpret_cast
(
0xBA18FC
)
,
sizeof
(
DWORD
)
,
PAGE_EXECUTE_READ
,
&
dwProtect
[
0
]
)
;
memcpy
(
&
vehicleCPEDPtr
,
reinterpret_cast
(
0xBA18FC
)
,
sizeof
(
DWORD
)
)
;
return
vehicleCPEDPtr
;
}
float
GetVehicleSpeed
(
DWORD vehicleCPEDPtr
)
{
unsigned
long
dwProtect
[
2
]
;
float
speedX
,
speedY
;
VirtualProtect
(
reinterpret_cast
(
vehicleCPEDPtr
+
0x44
)
,
sizeof
(
float
)
,
PAGE_EXECUTE_READ
,
&
dwProtect
[
0
]
)
;
memcpy
(
&
speedX
,
reinterpret_cast
(
vehicleCPEDPtr
+
0x44
)
,
sizeof
(
float
)
)
;
VirtualProtect
(
reinterpret_cast
(
vehicleCPEDPtr
+
0x44
)
,
sizeof
(
float
)
,
dwProtect
[
0
]
,
&
dwProtect
[
1
]
)
;
VirtualProtect
(
reinterpret_cast
(
vehicleCPEDPtr
+
0x48
)
,
sizeof
(
float
)
,
PAGE_EXECUTE_READ
,
&
dwProtect
[
0
]
)
;
memcpy
(
&
speedY
,
reinterpret_cast
(
vehicleCPEDPtr
+
0x48
)
,
sizeof
(
float
)
)
;
VirtualProtect
(
reinterpret_cast
(
vehicleCPEDPtr
+
0x48
)
,
sizeof
(
float
)
,
dwProtect
[
0
]
,
&
dwProtect
[
1
]
)
;
float
speed
=
(
speedX
+
speedY
)
*
4.0f
;
return
speed
;
}
int
WINAPI
Thread
(
)
{
while
(
*
(
DWORD
*
)
0xC8D4C0
!=
9
)
Sleep
(
100
)
;
InitHook
(
)
;
while
(
true
)
{
if
(
MemoryCheck
(
0xBA18FC
,
1
)
)
{
if
(
GetVehicleCPEDPtr
(
)
!=
0
)
{
float
speed
=
GetVehicleSpeed
(
GetVehicleCPEDPtr
(
)
)
;
if
(
speed
>=
0
&&
speed
60
&&
speed
120
&&
speed
180
)
{
speed
=
33
;
}
else
{
speed
=
0
;
}
}
}
}
return
0
;
}
The addresses are fine since in the cheat engine, when you obtain both speeds, add them and multiply them by 4, the returned value is the correct one.
С адресами все в порядке, поскольку в чит-движке, когда вы получаете обе скорости, складываете их и умножаете на 4, возвращаемое значение является правильным.
|
|
|

08.11.2023, 05:43
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от ччбчлчлчъ ччччшчьпьппзвжв
???
Функция PsSetLoadImageNotifyRoutine (ntddk.h) - Windows drivers
Подпрограмма PsSetLoadImageNotifyRoutine регистрирует обратный вызов, предоставленный драйвером, который впоследствии уведомляется при загрузке образа (или сопоставлен в память).
learn.microsoft.com
Или через ssdt хукай LdrLoadDll
|
|
|

08.11.2023, 05:57
|
|
Постоянный
Регистрация: 08.03.2016
Сообщений: 332
С нами:
5358262
Репутация:
213
|
|
Сообщение от F0RQU1N and
Или через ssdt хукай LdrLoadDll
Она лежит в ntdll.dll, так что в ядре можно перехватить только сусколлы, которые она использует
|
|
|

08.11.2023, 07:53
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от percheklii
адреса памяти то понятно, но samp.events реально?
Исходник - RakHook 1.0-beta
RakHook - библиотека, которая добавляет события RakNet'a (входящие/исходящие пакеты и RPC), эмуляцию и отправку пакетов и RPC. Есть одновременная поддержка версий 0.3.7-R1, 0.3.7-R3-1, 0.3.7-R4 и 0.3DL-R1. Функции std::uintptr_t rakhook::samp_addr(std::uintptr_t offset = 0); // получить адрес...
www.blast.hk
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|