
03.10.2023, 15:40
|
|
Постоянный
Регистрация: 18.03.2017
Сообщений: 410
С нами:
4818548
Репутация:
133
|
|
Сообщение от F0RQU1N and
ищещь по строке название функции тебе нужной
переходишь по хрефу и видишь что чуть выше куда то записывается адрес функции
переходишь в нее
видишь 7 аргументов, скорее всего первый это какой-то контекст у lua или сол2(сам посмотри в дебагере что туда передается и откуда, мне лень) а остальные шесть скорей всего то что передается в луашную функу
Нет, это не верно. То что ты нашел это какие-то внутренности для sol2.
Все луа функции это lua_CFunction -> int (__cdecl*)(lua_State* L)
Переходить нужно по этому
Далее идешь на lua_pushcclosure и видишь функцию которая туда передается
sub_10072F70 это и есть "setFixedCameraPosition"
Вот, достает аргументы с луа стека и вызывает установку позиции камеры
Вызвать это будет не так-то просто, потому что надо получить lua_State* от moonloader, в котором зарегистрированы эти функции. Уже пахнет насилием и хуками мунлоадера или луа скриптом заглушкой который по братски сделает require плагина и не будет выгружаться, а в плагине конечно должна быть точка входа lualib_open, сам плагин измазан глобальной переменной и с заряженным патроном в револьвере, ждать момента когда можно будет прострелить колено
Ладно построили велосипед с палками вместо колес, вызываем луа функцию из С без враперов
Lua:
Код:
lua_getglobal
(
L
,
"setFixedCameraPosition"
)
;
lua_pushnumber
(
L
,
x
)
;
lua_pushnumber
(
L
,
y
)
;
lua_pushnumber
(
L
,
z
)
;
lua_pushnumber
(
L
,
rx
)
;
lua_pushnumber
(
L
,
ry
)
;
lua_pushnumber
(
L
,
rz
)
;
lua_pcall
(
L
,
6
,
0
,
0
)
;
Красота...
Но можно же вызвать сразу нормальную С функцию, вот же указатель в v1 и this в v2, а остальное наши аргументы. Окей, сидите под дебагерами и реверсите
В любом случае если и получится, то запах не очень. В первом случае обмазались калом чтобы получить lua_State* и потом заюзали враперы на lua api, получилось
C++:
Код:
lua
[
"setFixedCameraPosition"
]
(
1
,
2
,
3
,
4
,
5
,
6
)
и ждем выстрела в колено
Во втором случае захардкодили кое-как одну функцию и все равно обмазались калом во время процесса реверсинга
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|