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

  #1  
Старый 10.11.2022, 00:04
Cake_
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами: 4793630

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

прив, еще летом я реверсил основные пакеты для авторизации на сервер через раксамп / взаимодействия с интерфейсом, но желания писать бота уже не было.

так как гении начали продавать это за 15к - заливаю бесплатно. Ниже найдете текстовик который я заполнял во время реверса и функции с отправкой/обработкой пакетов, краткое объяснения шагов захода.

Цитата:

@@packet name: SendDialogResponse
@@type: outbound
[#]parameters:
[1]uint8_t packetId
[2]uint16_t signalType // !!desirable value!! == 2
[3]uint32_t Unk
[4]uint32_t descriptorLength // !!desirable value!! == 16
[5]char descriptor // !!desirable value!! == "OnDialogResponse"
[6]uint32_t Unk
[7]uint32_t Unk
[8]uint16_t Unk
[9]uint16_t button
[10]uint8_t Unk
[11]uint16_t Unk
[12]uint32_t listItem
[13]uint8_t Unk
[14]uint32_t answerbackLength
[15]char answerback

================================================== ================================================== ===============================

@@packet name: SendHardwareSpecifications (Handshake)
@@type: outbound
@@comment: отправляется при получении пакета #34(ID_CONNECTION_REQUEST_ACCEPTED)
[#]parameters: // !!test values!!
[1]uint8_t packetId; // 215
[2]uint16_t signalType; // 1
[3]uint32_t Unk; // 51
[4]uint8_t Unk; // 0
[5]uint32_t str1_length; // 30
[6]char str1; // WD-WCC6Y2XZN97N190449674902806
[7]uint32_t str2_length; // 40
[8]char str2; // 1528FEE466C3A51C875E9D652EFA307F4B7725BE

================================================== ================================================== ======================================

@@packet name: SendAuthenticationQuery
@@type: outbound
@@comment: отправляется при нажатии кнопки подключения(с ввёденым паролем в инпут боксе)
[#]parameters: // !!test values!!
[1]uint8_t packetId; // 215
[2]uint16_t signalType; // 2
[3]uint32_t Unk; // 0
[4]uint32_t descriptor_length; // 18
[5]char descriptor; // OnPlayerStartLogin
[6]uint32_t Unk; // 2
[7]uint8_t Unk; // 115
[8]uint32_t str_pass_length; // 6
[9]char str_pass[6]; // 123123

================================================== ================================================== ======================================

@@packet name: ConfirmBrowserInitialization
@@type: outbound
@@comment: отправляется после Handshake'а
[#]parameters: // !!test values!!
[1]uint8_t packetId // 215
[2]uint16_t signalType // 2
[3]uint32_t Unk // 0
[4]uint32_t descriptor_length // 22
[5]char descriptor // EndedInitializeBrowser
[6]uint32_t unk // 0

================================================== ================================================== ===============================
функции захардкожены, т.к. нужны были лишь для проверки правильности заполненных последовательностей. бит. (как это не странно, некоторые участки кода удалены)

сниппеты использования:





Код:
#define ID_RADMIR_MESSAGE    215
// processnetwork
case
ID_RADMIR_MESSAGE
:
Packet_RadmirMsg
(
pkt
)
;
break
;
void
CBot
::
Packet_RadmirMsg
(
Packet
*
p
)
{
RakNet
::
BitStream
bsPacket
(
(
unsigned
char
*
)
p
->
data
,
p
->
length
,
false
)
;
uint32_t
uiStrLength
;
char
szStr
[
0x1000
]
;
bsPacket
.
ResetReadPointer
(
)
;
bsPacket
.
IgnoreBits
(
64
)
;
bsPacket
.
Read
(
uiStrLength
)
;
if
(
uiStrLength

Send
(
&
bsData
,
HIGH_PRIORITY
,
UNRELIABLE_SEQUENCED
,
0
)
;
}
// отправляется через 1.5 - 3 сек после получении пакета #34(ID_CONNECTION_REQUEST_ACCEPTED)
void
CChiefBot
::
SendHandshake
(
void
)
{
RakNet
::
BitStream bsHandshake
;
bsHandshake
.
Write
(
(
uint8_t
)
215
)
;
bsHandshake
.
Write
(
(
uint16_t
)
1
)
;
bsHandshake
.
Write
(
(
uint32_t
)
51
)
;
bsHandshake
.
Write
(
(
uint8_t
)
0
)
;
bsHandshake
.
Write
(
(
uint32_t
)
30
)
;
bsHandshake
.
Write
(
"WD-WCC6Y2XZN97N190449674902806"
,
30
)
;
bsHandshake
.
Write
(
(
uint32_t
)
40
)
;
bsHandshake
.
Write
(
"1528FEE466C3A51C875E9D652EFA307F4B7725BE"
,
40
)
;
m_pRakClient
->
Send
(
&
bsHandshake
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
RakNet
::
BitStream bsBrowser
;
bsBrowser
.
Write
(
(
uint8_t
)
215
)
;
bsBrowser
.
Write
(
(
uint16_t
)
2
)
;
bsBrowser
.
Write
(
(
uint32_t
)
0
)
;
bsBrowser
.
Write
(
(
uint32_t
)
22
)
;
bsBrowser
.
Write
(
"EndedInitializeBrowser"
,
22
)
;
bsBrowser
.
Write
(
(
uint32_t
)
0
)
;
m_pRakClient
->
Send
(
&
bsBrowser
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
}
// использование в void CBot::Packet_RadmirMsg( Packet* p )
void
CChiefBot
::
SendAuthenticationQuery
(
void
)
{
RakNet
::
BitStream bsAuthQuery
;
bsAuthQuery
.
Write
(
(
uint8_t
)
215
)
;
bsAuthQuery
.
Write
(
(
uint16_t
)
2
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
0
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
18
)
;
bsAuthQuery
.
Write
(
"OnPlayerStartLogin"
,
18
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
2
)
;
bsAuthQuery
.
Write
(
(
uint8_t
)
115
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
6
)
;
bsAuthQuery
.
Write
(
"123123"
,
6
)
;
m_pRakClient
->
Send
(
&
bsAuthQuery
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
}


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

  #2  
Старый 10.11.2022, 01:26
kwedle
Познающий
Регистрация: 14.12.2018
Сообщений: 36
С нами: 3902646

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

@FakeSince что с лицом?
 
Ответить с цитированием

  #3  
Старый 10.11.2022, 02:59
манку хлебал
Постоянный
Регистрация: 19.10.2015
Сообщений: 300
С нами: 5561187

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

Ты проделал нереально сложную работу, результаты которой выложил в открытый доступ, красавчик. Расскажи как ты научился реверсить это все, если конечно не секрет
 
Ответить с цитированием

  #4  
Старый 10.11.2022, 13:42
Михаил Бластов
Постоянный
Регистрация: 10.07.2019
Сообщений: 453
С нами: 3602995

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

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

гении начали продавать это за 15к
бля, что в этом такого? реверс не быстро происходит. а продавать начали еще в марте если что
 
Ответить с цитированием

  #5  
Старый 10.11.2022, 13:58
Sargon
Новичок
Регистрация: 10.08.2007
Сообщений: 1
С нами: 9870033

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

Цитата:
Сообщение от Михаил Бластов  

реверс не быстро происходит
дело нескольких минут
 
Ответить с цитированием

  #6  
Старый 10.11.2022, 14:31
Михаил Бластов
Постоянный
Регистрация: 10.07.2019
Сообщений: 453
С нами: 3602995

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

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

дело нескольких минут
нет
 
Ответить с цитированием

  #7  
Старый 10.11.2022, 15:35
kru_tin
Участник форума
Регистрация: 17.09.2020
Сообщений: 127
С нами: 2976285

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

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

дело нескольких минут
при условии что ты знаешь как устроена структура пакета)))))
 
Ответить с цитированием

  #8  
Старый 10.11.2022, 21:22
Sekondr For
Участник форума
Регистрация: 31.07.2022
Сообщений: 100
С нами: 1994099

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

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

прив, еще летом я реверсил основные пакеты для авторизации на сервер через раксамп / взаимодействия с интерфейсом, но желания писать бота уже не было.
так как гении начали продавать это за 15к - заливаю бесплатно. Ниже найдете текстовик который я заполнял во время реверса и функции с отправкой/обработкой пакетов, краткое объяснения шагов захода.

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

сниппеты использования:





Код:
#define ID_RADMIR_MESSAGE    215
// processnetwork
case
ID_RADMIR_MESSAGE
:
Packet_RadmirMsg
(
pkt
)
;
break
;
void
CBot
::
Packet_RadmirMsg
(
Packet
*
p
)
{
RakNet
::
BitStream
bsPacket
(
(
unsigned
char
*
)
p
->
data
,
p
->
length
,
false
)
;
uint32_t
uiStrLength
;
char
szStr
[
0x1000
]
;
bsPacket
.
ResetReadPointer
(
)
;
bsPacket
.
IgnoreBits
(
64
)
;
bsPacket
.
Read
(
uiStrLength
)
;
if
(
uiStrLength

Send
(
&
bsData
,
HIGH_PRIORITY
,
UNRELIABLE_SEQUENCED
,
0
)
;
}
// отправляется через 1.5 - 3 сек после получении пакета #34(ID_CONNECTION_REQUEST_ACCEPTED)
void
CChiefBot
::
SendHandshake
(
void
)
{
RakNet
::
BitStream bsHandshake
;
bsHandshake
.
Write
(
(
uint8_t
)
215
)
;
bsHandshake
.
Write
(
(
uint16_t
)
1
)
;
bsHandshake
.
Write
(
(
uint32_t
)
51
)
;
bsHandshake
.
Write
(
(
uint8_t
)
0
)
;
bsHandshake
.
Write
(
(
uint32_t
)
30
)
;
bsHandshake
.
Write
(
"WD-WCC6Y2XZN97N190449674902806"
,
30
)
;
bsHandshake
.
Write
(
(
uint32_t
)
40
)
;
bsHandshake
.
Write
(
"1528FEE466C3A51C875E9D652EFA307F4B7725BE"
,
40
)
;
m_pRakClient
->
Send
(
&
bsHandshake
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
RakNet
::
BitStream bsBrowser
;
bsBrowser
.
Write
(
(
uint8_t
)
215
)
;
bsBrowser
.
Write
(
(
uint16_t
)
2
)
;
bsBrowser
.
Write
(
(
uint32_t
)
0
)
;
bsBrowser
.
Write
(
(
uint32_t
)
22
)
;
bsBrowser
.
Write
(
"EndedInitializeBrowser"
,
22
)
;
bsBrowser
.
Write
(
(
uint32_t
)
0
)
;
m_pRakClient
->
Send
(
&
bsBrowser
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
}
// использование в void CBot::Packet_RadmirMsg( Packet* p )
void
CChiefBot
::
SendAuthenticationQuery
(
void
)
{
RakNet
::
BitStream bsAuthQuery
;
bsAuthQuery
.
Write
(
(
uint8_t
)
215
)
;
bsAuthQuery
.
Write
(
(
uint16_t
)
2
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
0
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
18
)
;
bsAuthQuery
.
Write
(
"OnPlayerStartLogin"
,
18
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
2
)
;
bsAuthQuery
.
Write
(
(
uint8_t
)
115
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
6
)
;
bsAuthQuery
.
Write
(
"123123"
,
6
)
;
m_pRakClient
->
Send
(
&
bsAuthQuery
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
}


на этом всё.
Братанчик его можно было бы оформить ешо короче и оптимизирование( а Ладна тут и написано.Я тупой кароче)
 
Ответить с цитированием

  #9  
Старый 11.11.2022, 01:36
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от манку хлебал  

Ты проделал нереально сложную работу
Ахуеть какая нереально сложная работа посмотреть строки в хекс эдиторе лол. Тут половина полей названа unk, хотя там интуитивно понятно почти со всеми полями за что оно отвечает
 
Ответить с цитированием

  #10  
Старый 11.11.2022, 01:38
Михаил Бластов
Постоянный
Регистрация: 10.07.2019
Сообщений: 453
С нами: 3602995

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

слушайте, раз вы тут пиздец какие крутые реверсеры - зареверсите пакетики интерфейсов аризоны и cef в общем
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.