HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5481  
Старый 08.09.2021, 23:47
PawnHelp
Новичок
Регистрация: 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
;
}
 
Ответить с цитированием

  #5482  
Старый 09.09.2021, 01:05
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Дайте адрес, который вызывается, когда самп полностю проинициализировался (структуры там всякие и т.д.), если есть
 
Ответить с цитированием

  #5483  
Старый 09.09.2021, 01:21
#Northn
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами: 4609424

Репутация: 183


По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

Дайте адрес, который вызывается, когда самп полностю проинициализировался (структуры там всякие и т.д.), если есть
Конструктор CNetGame, но после его вызова, а не до
 
Ответить с цитированием

  #5484  
Старый 10.09.2021, 19:40
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

кроче хук 36 rpc create 3d text выводит в чат херню всякую

 
Ответить с цитированием

  #5485  
Старый 10.09.2021, 21:01
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

Цитата:
Сообщение от loganhackerdff  

кроче хук 36 rpc create 3d text выводит в чат херню всякую
кусок кода который ты показал просто прелестен, идеален. но может всё же покажешь как хукаешь, какая версия самп, ну или на крайний случай дашь хоть какуе-то информацию, кроме того как ты читаешь непонятно еще правильный ли битстрим.
 
Ответить с цитированием

  #5486  
Старый 10.09.2021, 23:30
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

Цитата:
Сообщение от SC6UT  

кусок кода который ты показал просто прелестен, идеален. но может всё же покажешь как хукаешь, какая версия самп, ну или на крайний случай дашь хоть какуе-то информацию, кроме того как ты читаешь непонятно еще правильный ли битстрим.
всё кароче,надо было bool на char заменить
 
Ответить с цитированием

  #5487  
Старый 12.09.2021, 21:58
kin4stat
Флудер
Регистрация: 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

 
Ответить с цитированием

  #5488  
Старый 18.09.2021, 14:19
vbg
Познающий
Регистрация: 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
)
;


Ну и не работает кароче. Изменяю память в цикле.
 
Ответить с цитированием

  #5489  
Старый 18.09.2021, 14:26
bottom_text
Постоянный
Регистрация: 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;

попробуй
 
Ответить с цитированием

  #5490  
Старый 18.09.2021, 14:37
#Northn
Флудер
Регистрация: 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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.