 |
|

16.07.2020, 20:07
|
|
Познающий
Регистрация: 12.11.2019
Сообщений: 33
С нами:
3422638
Репутация:
8
|
|
в чем трабл а
1594915674293.pngreseller · 16 Июл 2020 в 19:07' data-fancybox="lb-post-530084" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/62635/" style="cursor: pointer;" title="1594915674293.png">

|
|
|

16.07.2020, 20:13
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
А где трабл и где код?
|
|
|

17.07.2020, 00:38
|
|
Постоянный
Регистрация: 07.03.2019
Сообщений: 966
С нами:
3782655
Репутация:
148
|
|
как взорвать машину в который ты сидишь? только не через SetHealth(0)
|
|
|

17.07.2020, 01:17
|
|
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами:
5145387
Репутация:
183
|
|
|
|
|

17.07.2020, 02:24
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами:
4272230
Репутация:
183
|
|
Сообщение от KiN4StAt
Назрело у меня пару вопросов
Первое:
Структура SAMP R3 Выглядит следующим образом:
Каким образом в ulPort попадает порт, у которого оффсет 1388?
Второе:
Как на хукнутом RakClientInterface реализовать перехват входящих RPC как в s0beit'е. Т.е. условно если сервер пытается сетнуть мне хп, у меня в чат вывелось, что сервер мне пытается поставить мне хп. Или например нопить входящие RPC.
Третье:
Почему-то при вызове addChatMessage в основном потоке, работает, а при вызове этой же функции в где-нибудь в другом месте крашит.
Потоки:
Код:
void
test
(
char
*
szParams
)
{
pSAMP
->
addMessageToChat
(
0xFFFFFFFF
,
"addMessageToChat causes exception in gta_sa.exe(samp.dll)"
)
;
}
void
mainThread
(
void
*
pvParams
)
{
if
(
pSAMP
)
{
while
(
!
pSAMP
->
tryInit
(
)
)
{
Sleep
(
100
)
;
}
pSAMP
->
addMessageToChat
(
0xFFFFFFFF
,
"addMessageToChatWorks here!"
)
;
pSAMP
->
addClientCommand
(
"test"
,
test
)
;
}
}
addMessageToChat:
Код:
void
SAMPFramework
::
addMessageToChat
(
D3DCOLOR cColor
,
const
char
*
szMsg
,
.
.
.
)
{
if
(
g_Chat
==
nullptr
)
return
;
void
(
__thiscall
*
AddToChatWindowBuffer
)
(
const
void
*
_this
,
int
iType
,
char
*
szText
,
char
*
szPrefix
,
DWORD cColor
,
DWORD cPrefixColor
)
=
(
void
(
__thiscall
*
)
(
const
void
*
,
int
,
char
*
,
char
*
,
DWORD
,
DWORD
)
)
(
dwSAMPAddr
+
SAMP_FUNC_ADDTOCHATWND
)
;
if
(
szMsg
==
NULL
)
return
;
va_list ap
;
char
tmp
[
512
]
;
memset
(
tmp
,
0
,
512
)
;
va_start
(
ap
,
szMsg
)
;
vsnprintf
(
tmp
,
sizeof
(
tmp
)
-
1
,
szMsg
,
ap
)
;
va_end
(
ap
)
;
return
AddToChatWindowBuffer
(
(
void
*
)
g_Chat
,
8
,
tmp
,
NULL
,
cColor
,
0x00
)
;
}
Само исключение:
Код:
Вызвано исключение по адресу 0x0A279392 (samp.dll) в gta_sa.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000007.
Стек вызовов пустой
1. Переведи 1388 в шестнадцатиричную систему.
2. Используй VMT Hook Manager.
3. Попробуй.
C++:
Код:
void
/*CChat::AddEntry*/
AddEntry
(
DWORD color
,
const
char
*
text
,
.
.
.
)
{
char
buf
[
128
]
{
0
}
;
va_list args
;
va_start
(
args
,
text
)
;
vsprintf_s
(
buf
,
text
,
args
)
;
va_end
(
args
)
;
// Адреса 100% действительны для 0.3.7-R1
reinterpret_cast
(
/*(DWORD)GetModuleHandle("samp.dll")*/
g_dwSAMPBase
+
0x63850
)
(
g_Chat
,
buf
)
;
reinterpret_cast
(
g_dwSAMPBase
+
0x64010
)
(
g_Chat
,
8
,
buf
,
nullptr
,
color
,
0
)
;
}
|
|
|

17.07.2020, 02:31
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Musaigen
1. Переведи 1388 в шестнадцатиричную систему.
2. Используй VMT Hook Manager.
3. Попробуй.
C++:
Код:
void
/*CChat::AddEntry*/
AddEntry
(
DWORD color
,
const
char
*
text
,
.
.
.
)
{
char
buf
[
128
]
{
0
}
;
va_list args
;
va_start
(
args
,
text
)
;
vsprintf_s
(
buf
,
text
,
args
)
;
va_end
(
args
)
;
// Адресса 100% действительны для 0.3.7-R1
reinterpret_cast
(
/*(DWORD)GetModuleHandle("samp.dll")*/
g_dwSAMPBase
+
0x63850
)
(
g_Chat
,
buf
)
;
reinterpret_cast
(
g_dwSAMPBase
+
0x64010
)
(
g_Chat
,
8
,
buf
,
nullptr
,
color
,
0
)
;
}
1. разобрался(1388 уже в 16-ричной был)
2. Не понял тебя. У меня есть хукнутый RakClient как в собейте. Меня интересует как в нем ловить входящие RPC.
3. Пофиксил. Взял Функцию из SAMP-API от LUCHARE
|
|
|

17.07.2020, 02:49
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами:
4272230
Репутация:
183
|
|
Сообщение от KiN4StAt
1. разобрался(1388 уже в 16-ричной был)
2. Не понял тебя. У меня есть хукнутый RakClient как в собейте. Меня интересует как в нем ловить входящие RPC.
3. Пофиксил. Взял Функцию из SAMP-API от LUCHARE
Хуки. RakClient не передаёт функцию, где принимаются входящие RPC. Хуки в конце файла samp.cpp.
|
|
|

17.07.2020, 02:51
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Так, ладно еще один вопрос. Как мне в ImGui вывести название сервера если оно не UTF-8, а хранится оно в char[257]
(в названии есть русские символы. шрифт подгрузил)
|
|
|

17.07.2020, 12:55
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
cp1251 преобразовать в utf8
|
|
|

17.07.2020, 14:06
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Dark_Knight
cp1251 преобразовать в utf8
А как без костылей это можно сделать, и по нормальному? Как я не пытался, не работает
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|