
16.02.2025, 21:56
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от TokyoQq
кто может помочь с хуком вот срочка из ida
ida pro:
Код:
.text:1008D077 68 D4 B2 0E 10 push offset aSampguiPng ; "sampgui.png"
то есть надо изменить sampgui.png на gui.png чет типо
C++:
Код:
patch
::
RedirectCall
(
0x100EB2D4
,
"gui.png"
)
;
Сообщение от Спойлер
ida pro:
Код:
void __thiscall CDXUTDialog::InitDefaultElements(CDXUTDialog *this)
{
struct tagRECT rc; // [esp+10h] [ebp-7Ch] BYREF
CDXUTElement a4; // [esp+20h] [ebp-6Ch] BYREF
CGrowableArray::SetTexture(this, 0, "sampgui.png");
CDXUTDialog::InitFont(this);
CDXUTElement::SetFont(&this->m_CapElement, 1, -1, 5);
SetRect(&rc, 17, 269, 241, 287);
CDXUTElement::SetTexture(&this->m_CapElement, 0, &rc, 0xFFFFFFFF);
this->m_CapElement.TextureColor.States[0] = 0xC80A0A0A;
this->m_CapElement.FontColor.States[0] = 0xFFD2D2D2;
CDXUTElement::SetFont(&this->m_CapElement, 1, 0xFFD2D2D2, 4);
DXUTBlendColor::Blend(&this->m_CapElement.TextureColor, 0, 10.0, 0.69999999);
DXUTBlendColor::Blend(&this->m_CapElement.FontColor, 0, 10.0, 0.69999999);
CDXUTElement::SetFont(&a4, 1, -1, 5);
CDXUTElement::SetFont(&a4, 1, 0xFFBEBEBE, 68);
a4.FontColor.States[1] = 0xC8C8C8C8;
CDXUTDialog::SetDefaultElement(this, 1, 0, &a4);
SetRect(&rc, 0, 0, 136, 54);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 5);
a4.TextureColor.States[0] = 0xC8FFFFFF;
a4.TextureColor.States[5] = 0xFF95B0D0;
a4.TextureColor.States[4] = 0xFFB92228;
a4.FontColor.States[4] = 0xFFFFFFFF;
a4.FontColor.States[0] = 0xFFC8C8C8;
CDXUTDialog::SetDefaultElement(this, 0, 0, &a4);
SetRect(&rc, 0, 0, 136, 54);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFu);
a4.TextureColor.States[4] = 0xFFB92228;
a4.TextureColor.States[5] = 0x3C505050;
a4.TextureColor.States[3] = 0xC8FFFFFF;
CDXUTDialog::SetDefaultElement(this, 0, 1, &a4);
SetRect(&rc, 0, 54, 27, 81);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 4);
a4.FontColor.States[1] = 0xC8C8C8C8;
a4.TextureColor.States[0] = 0x96FFFFFF;
a4.TextureColor.States[3] = 0xC8FFFFFF;
a4.TextureColor.States[5] = -1;
CDXUTDialog::SetDefaultElement(this, 2, 0, &a4);
SetRect(&rc, 27, 54, 54, 81);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 2, 1, &a4);
SetRect(&rc, 54, 54, 81, 81);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 4);
a4.FontColor.States[1] = 0xC8C8C8C8;
a4.TextureColor.States[0] = 0x96FFFFFF;
a4.TextureColor.States[3] = 0xC8FFFFFF;
a4.TextureColor.States[5] = -1;
CDXUTDialog::SetDefaultElement(this, 3, 0, &a4);
SetRect(&rc, 81, 54, 108, 81);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 3, 1, &a4);
SetRect(&rc, 7, 81, 247, 123);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 5);
a4.TextureColor.States[0] = 0xC8FFFFFF;
a4.TextureColor.States[4] = 0xFFB92228;
a4.TextureColor.States[3] = 0xFFB92228;
a4.TextureColor.States[1] = 0x46C8C8C8;
a4.FontColor.States[4] = 0xFFFFFFFF;
a4.FontColor.States[5] = 0xFF000000;
a4.FontColor.States[1] = 0xC8C8C8C8;
CDXUTDialog::SetDefaultElement(this, 4, 0, &a4);
SetRect(&rc, 272, 0, 325, 49);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
a4.TextureColor.States[0] = 0xC8FFFFFF;
a4.TextureColor.States[5] = 0xFF969696;
a4.TextureColor.States[3] = 0xFF969696;
a4.TextureColor.States[1] = 0x46FFFFFF;
CDXUTDialog::SetDefaultElement(this, 4, 1, &a4);
SetRect(&rc, 7, 123, 241, 265);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 0);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFB92228, 0xC8808080, 0);
CDXUTDialog::SetDefaultElement(this, 4, 2, &a4);
SetRect(&rc, 7, 266, 241, 289);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 0);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFC8C8C8, 0xC8808080, 0);
CDXUTDialog::SetDefaultElement(this, 4, 3, &a4);
SetRect(&rc, 1, 290, 280, 331);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
a4.TextureColor.States[0] = 0x96FFFFFF;
a4.TextureColor.States[3] = 0xC8FFFFFF;
a4.TextureColor.States[1] = 0x46FFFFFF;
CDXUTDialog::SetDefaultElement(this, 5, 0, &a4);
SetRect(&rc, 54, 54, 81, 81);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFB92228, 0xFF95B0D0, 0);
a4.TextureColor.States[4] = 0xFFF0F0F0;
a4.TextureColor.States[5] = 0xFFB92228;
a4.TextureColor.States[3] = 0xFFDCDCDC;
CDXUTDialog::SetDefaultElement(this, 5, 1, &a4);
SetRect(&rc, 243, 144, 265, 155);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFFFFFFF, 0xFFFFFFFF, 0);
CDXUTDialog::SetDefaultElement(this, 9, 0, &a4);
SetRect(&rc, 243, 124, 265, 144);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFFFFFFF, 0xFFFFFFFF, 0);
CDXUTDialog::SetDefaultElement(this, 9, 1, &a4);
SetRect(&rc, 243, 155, 265, 176);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFFFFFFF, 0xFFFFFFFF, 0);
CDXUTDialog::SetDefaultElement(this, 9, 2, &a4);
SetRect(&rc, 266, 123, 286, 167);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFB92228, 0xFF95B0D0, 0);
CDXUTDialog::SetDefaultElement(this, 9, 3, &a4);
CDXUTElement::SetFont(&a4, 0, -16777216, 4);
SetRect(&rc, 14, 90, 241, 113);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 0, &a4);
SetRect(&rc, 8, 82, 14, 90);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 1, &a4);
SetRect(&rc, 14, 82, 241, 90);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 2, &a4);
SetRect(&rc, 241, 82, 246, 90);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 3, &a4);
SetRect(&rc, 8, 90, 14, 113);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 4, &a4);
SetRect(&rc, 241, 90, 246, 113);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 5, &a4);
SetRect(&rc, 8, 113, 14, 121);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 6, &a4);
SetRect(&rc, 14, 113, 241, 121);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 7, &a4);
SetRect(&rc, 241, 113, 246, 121);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 6, 8, &a4);
CDXUTElement::SetFont(&a4, 0, 0xFF000000, 4);
SetRect(&rc, 14, 90, 241, 113);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 0, &a4);
SetRect(&rc, 8, 82, 14, 90);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 1, &a4);
SetRect(&rc, 14, 82, 241, 90);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 2, &a4);
SetRect(&rc, 241, 82, 246, 90);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 3, &a4);
SetRect(&rc, 8, 90, 14, 113);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 4, &a4);
SetRect(&rc, 241, 90, 246, 113);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 5, &a4);
SetRect(&rc, 8, 113, 14, 121);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 6, &a4);
SetRect(&rc, 14, 113, 241, 121);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 7, &a4);
SetRect(&rc, 241, 113, 246, 121);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTDialog::SetDefaultElement(this, 7, 8, &a4);
SetRect(&rc, 0, 0, 136, 54);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 0, -1, 5);
CDXUTDialog::SetDefaultElement(this, 7, 9, &a4);
SetRect(&rc, 13, 124, 241, 265);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 1, -1, 64);
CDXUTDialog::SetDefaultElement(this, 8, 0, &a4);
SetRect(&rc, 17, 269, 241, 287);
CDXUTElement::SetTexture(&a4, 0, &rc, 0xFFFFFFFF);
CDXUTElement::SetFont(&a4, 1, 0xFFFFFFFF, 64);
DXUTBlendColor::SetColor(&a4.TextureColor, 0xFFB92228, 0xC8808080, 0);
CDXUTDialog::SetDefaultElement(this, 8, 1, &a4);
}
умнее будет менять указатель на строку в push:
C++:
Код:
auto
samp_handle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
;
patch
::
SetPointer
(
samp_handle
+
0x8D078
,
"gui.png"
)
;
|
|
|

22.02.2025, 17:21
|
|
Новичок
Регистрация: 14.01.2024
Сообщений: 20
С нами:
1228197
Репутация:
3
|
|
C++:
Код:
#include
typedef
BOOL
(
WINAPI
*
IsDebuggerPresent_t
)
(
)
;
BOOL WINAPI
FakeIsDebuggerPresent
(
)
{
return
FALSE
;
}
void
HookIAT
(
)
{
DWORD
*
pIAT
=
(
DWORD
*
)
0x10035068
;
DWORD oldProtect
;
VirtualProtect
(
pIAT
,
sizeof
(
DWORD
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
*
pIAT
=
(
DWORD
)
FakeIsDebuggerPresent
;
VirtualProtect
(
pIAT
,
sizeof
(
DWORD
)
,
oldProtect
,
&
oldProtect
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD ul_reason_for_call
,
LPVOID lpReserved
)
{
if
(
ul_reason_for_call
==
DLL_PROCESS_ATTACH
)
{
HookIAT
(
)
;
}
return
TRUE
;
}
че делать если при инжекте

|
|
|

22.02.2025, 17:33
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от TokyoQq
DWORD* pIAT = (DWORD*)0x10035068;
я подозреваю, что 1 в начале адреса лишняя при работе из дллки
|
|
|

22.02.2025, 22:09
|
|
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами:
3119285
Репутация:
63
|
|
Сообщение от TokyoQq
C++:
Код:
#include
typedef
BOOL
(
WINAPI
*
IsDebuggerPresent_t
)
(
)
;
BOOL WINAPI
FakeIsDebuggerPresent
(
)
{
return
FALSE
;
}
void
HookIAT
(
)
{
DWORD
*
pIAT
=
(
DWORD
*
)
0x10035068
;
DWORD oldProtect
;
VirtualProtect
(
pIAT
,
sizeof
(
DWORD
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
*
pIAT
=
(
DWORD
)
FakeIsDebuggerPresent
;
VirtualProtect
(
pIAT
,
sizeof
(
DWORD
)
,
oldProtect
,
&
oldProtect
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD ul_reason_for_call
,
LPVOID lpReserved
)
{
if
(
ul_reason_for_call
==
DLL_PROCESS_ATTACH
)
{
HookIAT
(
)
;
}
return
TRUE
;
}
че делать если при инжекте

Тип инжекта поменять попробуй. Возможно билдишь длл под архитектуру х64. Возможно ему библиотек не хватает каких-то.
|
|
|

23.02.2025, 15:20
|
|
Познающий
Регистрация: 23.01.2022
Сообщений: 36
С нами:
2267665
Репутация:
8
|
|
какой оффсет обработчика RPC ClientCheck на R5?
|
|
|

23.02.2025, 16:03
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от 0xff65
какой оффсет обработчика RPC ClientCheck на R5?
дай этот оффсет на р3/r1
|
|
|

25.02.2025, 21:50
|
|
Новичок
Регистрация: 14.01.2024
Сообщений: 20
С нами:
1228197
Репутация:
3
|
|
есть ли в sampapi функа для посадки в машину, если есть в plugin sdk то дайте еще пожалуйста код получения cvehicle в plugin sdk по id машины
|
|
|

26.02.2025, 00:49
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от TokyoQq
есть ли в sampapi функа для посадки в машину, если есть в plugin sdk то дайте еще пожалуйста код получения cvehicle в plugin sdk по id машины
Получение CVehicle по иду
C++:
Код:
samp
::
CVehiclePool
*
pVehiclePool
=
samp
::
RefNetGame
(
)
->
GetVehiclePool
(
)
;
if
(
pVehiclePool
->
m_bNotEmpty
[
nId
]
)
{
samp
::
CVehicle
*
pSampVehicle
=
pVehiclePool
->
m_pObject
[
nId
]
;
// Самповский CVehicle
CVehicle
*
pVehicle
=
pSampVehicle
->
m_pGameVehicle
;
// Игровой CVehicle для Plugin SDK
}
Посадку в машину через PSDK можно осуществить через опкод 05CA.
C++:
Код:
Command
(
Хендл Игрока
,
Хендл тачки
,
Время
,
Сиденье
)
|
|
|

26.02.2025, 18:14
|
|
Новичок
Регистрация: 14.01.2024
Сообщений: 20
С нами:
1228197
Репутация:
3
|
|
C++:
Код:
CPed
*
playerPed
=
sampapi
::
v037r1
::
RefNetGame
(
)
->
m_pPools
->
m_pPlayer
->
m_pObject
[
i
]
->
m_pPlayer
->
m_pPed
->
m_pGamePed
;
почему крашит?
|
|
|

26.02.2025, 19:00
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от TokyoQq
C++:
Код:
CPed
*
playerPed
=
sampapi
::
v037r1
::
RefNetGame
(
)
->
m_pPools
->
m_pPlayer
->
m_pObject
[
i
]
->
m_pPlayer
->
m_pPed
->
m_pGamePed
;
почему крашит?
А ты уверен что этот CPed* существует?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|