 |
|

08.09.2021, 23:47
|
|
Новичок
Регистрация: 06.09.2018
Сообщений: 6
С нами:
4045092
Репутация:
23
|
|
Всем приветик, помогите решить проблему с сервер коннектом
Код:
Код:
#define SAMP_CHAT_INFO_OFFSET 0x26E8C8
#define SAMP_FUNC_ADDTOCHATWND 0x67460
SAMPBase
*
pSAMP
;
void
mainThread
(
void
*
pvParams
)
{
if
(
pSAMP
)
{
while
(
!
pSAMP
->
tryInit
(
)
)
Sleep
(
100
)
;
while
(
!
pSAMP
->
isInited
)
continue
;
strcpy
(
pSAMP
->
getInfo
(
)
->
m_szHostAddress
,
"217.106.106.86"
)
;
pSAMP
->
getInfo
(
)
->
m_nPort
=
7024
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
{
pSAMP
=
new
SAMPBase
(
GetModuleHandle
(
"samp.dll"
)
)
;
_beginthread
(
mainThread
,
NULL
,
NULL
)
;
break
;
}
}
return
TRUE
;
}
|
|
|

09.09.2021, 01:05
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Дайте адрес, который вызывается, когда самп полностю проинициализировался (структуры там всякие и т.д.), если есть
|
|
|

09.09.2021, 01:21
|
|
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами:
4609424
Репутация:
183
|
|
Сообщение от AdCKuY_DpO4uLa
Дайте адрес, который вызывается, когда самп полностю проинициализировался (структуры там всякие и т.д.), если есть
Конструктор CNetGame, но после его вызова, а не до
|
|
|

10.09.2021, 19:40
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
кроче хук 36 rpc create 3d text выводит в чат херню всякую

|
|
|

10.09.2021, 21:01
|
|
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами:
3174020
Репутация:
213
|
|
Сообщение от loganhackerdff
кроче хук 36 rpc create 3d text выводит в чат херню всякую
кусок кода который ты показал просто прелестен, идеален. но может всё же покажешь как хукаешь, какая версия самп, ну или на крайний случай дашь хоть какуе-то информацию, кроме того как ты читаешь непонятно еще правильный ли битстрим.
|
|
|

10.09.2021, 23:30
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от SC6UT
кусок кода который ты показал просто прелестен, идеален. но может всё же покажешь как хукаешь, какая версия самп, ну или на крайний случай дашь хоть какуе-то информацию, кроме того как ты читаешь непонятно еще правильный ли битстрим.
всё кароче,надо было bool на char заменить
|
|
|

12.09.2021, 21:58
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от нубик)))
Помогите пожалуйста, нема курсора когда активна менюшка
Сообщение от Спойлер
213:
Код:
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
VK_HOME
)
)
{
renderW
=
!
renderW
;
SF
->
getSAMP
(
)
->
getMisc
(
)
->
ToggleCursor
(
renderW
)
;
}
попробуй
C++:
[CODE]
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
VK_HOME
)
)
{
renderW
=
!
renderW
;
SF
->
getSAMP
(
)
->
getMisc
(
)
->
ToggleCursor
(
renderW
?
2
:
0
)
;
// renderW
|
|
|

18.09.2021, 14:19
|
|
Познающий
Регистрация: 17.09.2017
Сообщений: 41
С нами:
4554871
Репутация:
63
|
|
Привет, хотел перевести на плюсы вот эту запись.
memory lua:
Код:
mem
.
setint8
(
0x969152
,
1
,
false
)
На с++ получилось что такое:
функция для записи в память:
Код:
template
void
writeMem
(
DWORD address
,
T value
)
{
DWORD oldProtect
=
0
;
VirtualProtectEx
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
sizeof
(
value
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
WriteProcessMemory
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
&
value
,
sizeof
(
value
)
,
0
)
;
VirtualProtectEx
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
sizeof
(
value
)
,
oldProtect
,
NULL
)
;
}
дальше вызываю в коде:
вызов функции в коде:
Код:
unsigned
char
driveOnWater
=
1
;
writeMem
(
0x969152
,
driveOnWater
)
;
Ну и не работает кароче. Изменяю память в цикле.
|
|
|

18.09.2021, 14:26
|
|
Постоянный
Регистрация: 28.06.2018
Сообщений: 676
С нами:
4145990
Репутация:
118
|
|
Сообщение от vbg
Привет, хотел перевести на плюсы вот эту запись.
memory lua:
Код:
mem
.
setint8
(
0x969152
,
1
,
false
)
На с++ получилось что такое:
функция для записи в память:
Код:
template
void
writeMem
(
DWORD address
,
T value
)
{
DWORD oldProtect
=
0
;
VirtualProtectEx
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
sizeof
(
value
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
WriteProcessMemory
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
&
value
,
sizeof
(
value
)
,
0
)
;
VirtualProtectEx
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
sizeof
(
value
)
,
oldProtect
,
NULL
)
;
}
дальше вызываю в коде:
вызов функции в коде:
Код:
unsigned
char
driveOnWater
=
1
;
writeMem
(
0x969152
,
driveOnWater
)
;
Ну и не работает кароче. Изменяю память в цикле.
unsigned char driveOnWater = 1;
*reinterpret_cast(0x969152) = driveOnWater;
попробуй
|
|
|

18.09.2021, 14:37
|
|
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами:
4609424
Репутация:
183
|
|
Сообщение от vbg
Привет, хотел перевести на плюсы вот эту запись.
memory lua:
Код:
mem
.
setint8
(
0x969152
,
1
,
false
)
На с++ получилось что такое:
функция для записи в память:
Код:
template
void
writeMem
(
DWORD address
,
T value
)
{
DWORD oldProtect
=
0
;
VirtualProtectEx
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
sizeof
(
value
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
WriteProcessMemory
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
&
value
,
sizeof
(
value
)
,
0
)
;
VirtualProtectEx
(
GetCurrentProcess
(
)
,
(
void
*
)
address
,
sizeof
(
value
)
,
oldProtect
,
NULL
)
;
}
дальше вызываю в коде:
вызов функции в коде:
Код:
unsigned
char
driveOnWater
=
1
;
writeMem
(
0x969152
,
driveOnWater
)
;
Ну и не работает кароче. Изменяю память в цикле.
Сообщение от vbg
mem.setint8(0x969152, 1, false)
последний аргумент -- false, соответственно протекцию снимать не нужно.
Значит, тебе достаточно просто использовать это:
C++:
Код:
*
reinterpret_cast
(
0x969152
)
=
1
;
А так, если ты хочешь повторить код как на луа:
C++:
Код:
template
void
writeMem
(
uintptr_t address
,
T value
,
bool
unprotect
=
false
)
{
DWORD old_protection
;
auto
address_
=
reinterpret_cast
(
address
)
;
if
(
unprotect
)
VirtualProtect
(
address_
,
sizeof
(
value
)
,
PAGE_EXECUTE_READWRITE
,
&
old_protection
)
;
memcpy
(
&
value
,
address_
,
sizeof
(
value
)
)
;
if
(
unprotect
)
VirtualProtect
(
address_
,
sizeof
(
value
)
,
old_protection
,
&
old_protection
)
;
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|