 |
|

02.09.2022, 17:37
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от imring
ты про
Код:
RakClientInterface::RegisterAsRemoteProcedureCall
? в принципе можно, но я не помню, почему их не хотел использовать
Скорее из-за того, что на каждый РПЦ пришлось регать свой коллбек, но скорее всего я ошибаюсь
|
|
|

02.09.2022, 22:43
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от imring
ты про
Код:
RakClientInterface::RegisterAsRemoteProcedureCall
? в принципе можно, но я не помню, почему их не хотел использовать
про PluginAttach
|
|
|

03.09.2022, 18:10
|
|
Участник форума
Регистрация: 12.03.2015
Сообщений: 201
С нами:
5879736
Репутация:
128
|
|
Сообщение от SR_team
про PluginAttach
а как ты будешь через него исходящие пакеты ловить?
|
|
|

11.12.2022, 23:20
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Дайте по бошке не шарющему дебилу, из-за чего ошибка? я так пониаю я неправильно загрузил либу в проект (добавил в дерикторию и подключил include в свойствах проекта).
main.hpp:
Код:
#include
#include
#include "RakHook/rakhook.hpp"
using
namespace
std
;
LONG wHandle
;
char
buffer
[
64
]
=
{
0
}
;
// function
inline
void
set_pos
(
)
{
RakNet
::
BitStream rpc
;
rpc
.
Write
(
0
)
;
rpc
.
Write
(
0
)
;
rpc
.
Write
(
0
)
;
rakhook
::
emul_rpc
(
12
,
rpc
)
;
}
void
printStringNow
(
const
char
*
text
,
unsigned
int
time
,
unsigned
short
flag
,
bool
bPreviousBrief
)
{
(
(
void
(
__cdecl
*
)
(
const
char
*
,
unsigned
int
,
unsigned
short
,
bool
)
)
0x69F1E0
)
(
text
,
time
,
flag
,
bPreviousBrief
)
;
}
main.cpp:
Код:
#include "main.hpp"
LRESULT CALLBACK
WindowProc
(
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
switch
(
uMsg
)
{
case
WM_KEYUP
:
{
switch
(
wParam
)
{
case
0x31
:
{
*
reinterpret_cast
(
0xC81320
)
+=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
case
0x32
:
{
*
reinterpret_cast
(
0xC81320
)
-=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
case
0x33
:
{
set_pos
(
)
;
printStringNow
(
"spawn"
,
1000
,
NULL
,
false
)
;
}
}
}
}
return
CallWindowProcA
(
WNDPROC
(
wHandle
)
,
hwnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD fdwReason
,
LPVOID lpReserved
)
{
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
{
DisableThreadLibraryCalls
(
hModule
)
;
wHandle
=
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA:SA:MP"
)
,
GWL_WNDPROC
,
LONG
(
WindowProc
)
)
;
break
;
}
case
DLL_PROCESS_DETACH
:
{
break
;
}
}
return
TRUE
;
}
1670786225453.pngвайега52 · 11 Дек 2022 в 22:20' data-fancybox="lb-post-1213712" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/181345/" style="cursor: pointer;" title="1670786225453.png">
1670788896501.pngвайега52 · 11 Дек 2022 в 22:20' data-fancybox="lb-post-1213712" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/181349/" style="cursor: pointer;" title="1670788896501.png">

|
|
|

12.12.2022, 02:03
|
|
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами:
5145387
Репутация:
183
|
|
Сообщение от egaa
Дайте по бошке не шарющему дебилу, из-за чего ошибка? я так пониаю я неправильно загрузил либу в проект (добавил в дерикторию и подключил include в свойствах проекта).
main.hpp:
Код:
#include
#include
#include "RakHook/rakhook.hpp"
using
namespace
std
;
LONG wHandle
;
char
buffer
[
64
]
=
{
0
}
;
// function
inline
void
set_pos
(
)
{
RakNet
::
BitStream rpc
;
rpc
.
Write
(
0
)
;
rpc
.
Write
(
0
)
;
rpc
.
Write
(
0
)
;
rakhook
::
emul_rpc
(
12
,
rpc
)
;
}
void
printStringNow
(
const
char
*
text
,
unsigned
int
time
,
unsigned
short
flag
,
bool
bPreviousBrief
)
{
(
(
void
(
__cdecl
*
)
(
const
char
*
,
unsigned
int
,
unsigned
short
,
bool
)
)
0x69F1E0
)
(
text
,
time
,
flag
,
bPreviousBrief
)
;
}
main.cpp:
Код:
#include "main.hpp"
LRESULT CALLBACK
WindowProc
(
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
switch
(
uMsg
)
{
case
WM_KEYUP
:
{
switch
(
wParam
)
{
case
0x31
:
{
*
reinterpret_cast
(
0xC81320
)
+=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
case
0x32
:
{
*
reinterpret_cast
(
0xC81320
)
-=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
case
0x33
:
{
set_pos
(
)
;
printStringNow
(
"spawn"
,
1000
,
NULL
,
false
)
;
}
}
}
}
return
CallWindowProcA
(
WNDPROC
(
wHandle
)
,
hwnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD fdwReason
,
LPVOID lpReserved
)
{
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
{
DisableThreadLibraryCalls
(
hModule
)
;
wHandle
=
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA:SA:MP"
)
,
GWL_WNDPROC
,
LONG
(
WindowProc
)
)
;
break
;
}
case
DLL_PROCESS_DETACH
:
{
break
;
}
}
return
TRUE
;
}
библиотеку надо собрать через cmake
|
|
|

26.12.2022, 00:40
|
|
Познающий
Регистрация: 21.10.2019
Сообщений: 82
С нами:
3454978
Репутация:
8
|
|
Сообщение от imring
библиотеку надо собрать через cmake
Kak
|
|
|

29.12.2022, 23:26
|
|
Флудер
Регистрация: 08.11.2017
Сообщений: 4,787
С нами:
4480376
Репутация:
183
|
|
Сообщение от Pozzibros71299
Kak
Open windows promot
cd path_to_rakhook
mkdir build && cd build
cmake .. -A Win32
cmake --build .
результптом будет rakhook.lib который необходимо подключить к проекту, а так же добавить инклюды.
Однако это не всë, ракхук имеет доп закисимости в виде цианида, а тот зависит от полихука. Всë это нужно подключать к проекту.
Как сказал имринг - лучше собирать через симейк. Могу выложить пример проекта, но только после нг. к тому же он нестабилен из-за хуков @kin4stat
|
|
|

30.12.2022, 20:55
|
|
Флудер
Регистрация: 08.11.2017
Сообщений: 4,787
С нами:
4480376
Репутация:
183
|
|
Сообщение от Pozzibros71299
Kak
GitHub - AnWuPP/plugin
Contribute to AnWuPP/plugin development by creating an account on GitHub.
github.com
Мне сказали код говно, но да ладно. Собирал x86 компилятором студии.
открой папку в cmd в которой нужно собрать
Код:
Код:
git clone https://github.com/AnWuPP/plugin.git
cd plugin && code .
Если установлен VSCode - откроется.
Нужные расширения
Дальше сюда:
Выбираешь VS компилятор x86 или x86_64 (в зависимости чо есть в меню)
Дальше выбираешь Debug конфигурацию из меню
Создается кеш симейка,
Жмешь Build и ждёшь.
CMakeList.txt:
У меня там свой путь до папки с игрой, туда закинет файл OASys.asi. Измени путь, ну и название тоже.
Если есть вопросы - задавай. Отвечу если скилла хватит.
UPD: Изменил название, убрал путь до папки с игрой. MSVC будет собирать в Debug папку.
|
|
|

16.02.2024, 13:31
|
|
Новичок
Регистрация: 09.04.2021
Сообщений: 12
С нами:
2683670
Репутация:
3
|
|
do u know how to get memory offsets please ?
|
|
|

16.02.2024, 13:33
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от Rvmsitow
do u know how to get memory offsets please ?
какие именно?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|