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

  #1  
Старый 30.03.2016, 21:13
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

Как работают подобные сайты? (Не реклама)

Возможно ли сделать что то подобное чисто для себя?
 
Ответить с цитированием

  #2  
Старый 30.03.2016, 22:55
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

Как взять строку из чата и проверить ее на наличие ключевого слова? Для SF надо.
 
Ответить с цитированием

  #3  
Старый 30.03.2016, 23:34
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

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

Как взять строку из чата и проверить ее на наличие ключевого слова? Для SF надо.
Хукаешь RPC_ScrClientMessage и strstr
 
Ответить с цитированием

  #4  
Старый 30.03.2016, 23:42
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

Цитата:
Сообщение от Woofing Giraffe  

Хукаешь RPC_ScrClientMessage и strstr
чет сложно) Можно подробней?
 
Ответить с цитированием

  #5  
Старый 30.03.2016, 23:43
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

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

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

чет сложно) Можно подробней?
https://www.blast.hk/wiki/tutorials:api_lesson_raknet
 
Ответить с цитированием

  #6  
Старый 31.03.2016, 00:10
Vasiliy77
Новичок
Регистрация: 21.06.2015
Сообщений: 22
С нами: 5733802

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

Почему при каждом запуске консоли значение адреса всегда разное, а в Cheat Engine оно не меняется? Код прилагаю ниже.

Цитата:
Сообщение от Спойлер  


C++:





Код:
DWORD offsets
[
]
=
{
0x6FCF3
}
;
// смещение
DWORD addressdllsamp
=
(
DWORD
)
getModuleHandleRemote
(
PID
,
"samp.dll"
)
;
// адрес samp.dll
DWORD ippointer1
=
mem
->
ReadPointer
(
addressdllsamp
,
offsets
,
1
)
;
printf
(
"Address samp.dll [2]: 0x%x \n=====================\n"
,
addressdllsamp
)
;
printf
(
"[2] Adress: 0x%x / value = %d\n"
,
ippointer1
,
mem
->
Read
(
ippointer1
,
16
)
)
;
// ВОТ ТУТ value = всегда разное число


C++:





Код:
HMODULE AC
::
getModuleHandleRemote
(
DWORD processId
,
const
char
*
moduleName
)
{
HANDLE snap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
processId
)
;
if
(
snap
==
INVALID_HANDLE_VALUE
)
return
NULL
;
MODULEENTRY32 moduleEntry
;
moduleEntry
.
dwSize
=
sizeof
(
moduleEntry
)
;
bool
found
=
Module32First
(
snap
,
&
moduleEntry
)
==
TRUE
;
while
(
found
)
{
if
(
strcmp
(
moduleEntry
.
szModule
,
moduleName
)
==
0
)
return
CloseHandle
(
snap
)
,
moduleEntry
.
hModule
;
found
=
Module32Next
(
snap
,
&
moduleEntry
)
==
TRUE
;
}
CloseHandle
(
snap
)
;
return
NULL
;
}


C++:





[CODE]
DWORD AC
::
ReadPointer
(
DWORD base
,
DWORD
*
offsets
,
int
count
)
{
for
(
int
i
=
0
;
i



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

  #7  
Старый 31.03.2016, 23:21
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Почему при каждом запуске консоли значение адреса всегда разное, а в Cheat Engine оно не меняется? Код прилагаю ниже.

Цитата:
Сообщение от Спойлер  


C++:





Код:
DWORD offsets
[
]
=
{
0x6FCF3
}
;
// смещение
DWORD addressdllsamp
=
(
DWORD
)
getModuleHandleRemote
(
PID
,
"samp.dll"
)
;
// адрес samp.dll
DWORD ippointer1
=
mem
->
ReadPointer
(
addressdllsamp
,
offsets
,
1
)
;
printf
(
"Address samp.dll [2]: 0x%x \n=====================\n"
,
addressdllsamp
)
;
printf
(
"[2] Adress: 0x%x / value = %d\n"
,
ippointer1
,
mem
->
Read
(
ippointer1
,
16
)
)
;
// ВОТ ТУТ value = всегда разное число


C++:





Код:
HMODULE AC
::
getModuleHandleRemote
(
DWORD processId
,
const
char
*
moduleName
)
{
HANDLE snap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
processId
)
;
if
(
snap
==
INVALID_HANDLE_VALUE
)
return
NULL
;
MODULEENTRY32 moduleEntry
;
moduleEntry
.
dwSize
=
sizeof
(
moduleEntry
)
;
bool
found
=
Module32First
(
snap
,
&
moduleEntry
)
==
TRUE
;
while
(
found
)
{
if
(
strcmp
(
moduleEntry
.
szModule
,
moduleName
)
==
0
)
return
CloseHandle
(
snap
)
,
moduleEntry
.
hModule
;
found
=
Module32Next
(
snap
,
&
moduleEntry
)
==
TRUE
;
}
CloseHandle
(
snap
)
;
return
NULL
;
}


C++:





[CODE]
DWORD AC
::
ReadPointer
(
DWORD base
,
DWORD
*
offsets
,
int
count
)
{
for
(
int
i
=
0
;
i



потому что CE использует оффсеты от начала модуля (например samp.dll + 1337)
 
Ответить с цитированием

  #8  
Старый 31.03.2016, 23:09
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

1. Как можно поворачивать игрока?

2. Как можно удобней записать 72 точки телепорта, содержащие 3 координаты каждая?
 
Ответить с цитированием

  #9  
Старый 31.03.2016, 23:22
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

1. Как можно поворачивать игрока?
2. Как можно удобней записать 72 точки телепорта, содержащие 3 координаты каждая?
  1. Через матрицу и структуру(только Z)
  2. смотря как дальше использовать хочешь. CVector вполне удобно
 
Ответить с цитированием

  #10  
Старый 31.03.2016, 23:39
QGate
Познающий
Регистрация: 27.03.2016
Сообщений: 78
С нами: 5331145

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

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

Через матрицу и структуру(только Z)
А можно подробней?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.