Как вызвать игровую функцию?

PropilTalant

Пользователь
Сообщения
19
Реакции
1
Всем привет! Пишу свой первый интернал чит используя с++ на игру BLOCKPOST. Сделал получение координат всех игроков, но не могу найти видовую матрицу для преобразования координат из 3д в 2д. Сама игра сделана на юнити. В дампе нашел такую функцию
```

[Token(Token = "0x60000A1")]
[Address(RVA = "0x323270", Offset = "0x322670", VA = "0x10323270")]
public Vector3 WorldToScreenPoint(Vector3 position)
{
return default(Vector3);
}
```
и такую
```

[Token(Token = "0x17000031")]
public Matrix4x4 worldToCameraMatrix
{
[Token(Token = "0x600009C")]
[Address(RVA = "0x323C60", Offset = "0x323060", VA = "0x10323C60")]
get
{
return default(Matrix4x4);
}
}
```

но как ими пользоваться не могу понять. Подскажите что сделать
 

Darwin

Команда форума
Администратор
Сообщения
949
Реакции
518
Матрица нужна для WorldToScreen для того что бы преобразовать координаты и нарисовать что то на игроке либо на предмете
 

PropilTalant

Пользователь
Сообщения
19
Реакции
1
Матрица нужна для WorldToScreen для того что бы преобразовать координаты и нарисовать что то на игроке либо на предмете
Привет! Спасибо что ответил:) Я знаю для чего нужна матрица. Мне она необходима как раз для WorldToScreen. Проблема в том, что я не знаю как ее получить. Можешь подсказать с этим?
 

PropilTalant

Пользователь
Сообщения
19
Реакции
1
Я нашел в дапме (il2cpp) эти 2 функции, но не знаю как именно их вызвать. Можешь помочь с этим?
 

Darwin

Команда форума
Администратор
Сообщения
949
Реакции
518
Например есть адрес
Код:
"Address": 6764048,
      "Name": "Hyperstrange.PBD.PlayerComponents.PlayerHitProcessorComponent$$SetCurrentHitPoints",
      "Signature": "void Hyperstrange_PBD_PlayerComponents_PlayerHitProcessorComponent__SetCurrentHitPoints (Hyperstrange_PBD_PlayerComponents_PlayerHitProcessorComponent_o* __this, float hitPoints, const MethodInfo* method);",
      "TypeSignature": "vifi"

Вызываем его
Код:
FunctionName = (ReturnType (*)(put all, params here))(baseAddress + AddressOfFunction);
Итак, в нашем случае должно быть что-то вроде этого:
Код:
PlayerSetCurrentHitPoints = (void (*)(Hyperstrange_PBD_PlayerComponents_PlayerHitProcessorComponent_o* __this, float hitPoints, const MethodInfo* method))(baseAddress + 0x06764048);

Выучи il2cpp call api functions
поймешь как это работает
 

PropilTalant

Пользователь
Сообщения
19
Реакции
1
Например есть адрес
Код:
"Address": 6764048,
      "Name": "Hyperstrange.PBD.PlayerComponents.PlayerHitProcessorComponent$$SetCurrentHitPoints",
      "Signature": "void Hyperstrange_PBD_PlayerComponents_PlayerHitProcessorComponent__SetCurrentHitPoints (Hyperstrange_PBD_PlayerComponents_PlayerHitProcessorComponent_o* __this, float hitPoints, const MethodInfo* method);",
      "TypeSignature": "vifi"

Вызываем его
Код:
FunctionName = (ReturnType (*)(put all, params here))(baseAddress + AddressOfFunction);
Итак, в нашем случае должно быть что-то вроде этого:
Код:
PlayerSetCurrentHitPoints = (void (*)(Hyperstrange_PBD_PlayerComponents_PlayerHitProcessorComponent_o* __this, float hitPoints, const MethodInfo* method))(baseAddress + 0x06764048);

Выучи il2cpp call api functions
поймешь как это работает
Благодарю! :)
 
Верх Низ