Другое С/С++ Вопрос - Ответ

CleanLegend

Известный
Всефорумный модератор
476
929
возможно ли, в DllMain или в потоке подключить/активировать класс CGameSA, но без d3d9 хука?
Да
Какие адресса у педа? X Y Z
И где хранятся педы? (Педы в локалке/Другие игроки в сампе или мта)
Можно на прямую искать через пул других педов:
C++:
for (int i = 0; i < 500; i++) {
        next = (DWORD*)(*ped + (0x7C4 * i));

        hundred = *(float*)(next + 0xE);

        if (i != 0 && hundred == 100.0f) {

            DWORD* player_info = (DWORD*)(next + 0x5);
            hp = *(float*)(next + 0x150);
            float* _x = (float*)(*player_info + 0x30);
            float* _y = (float*)(*player_info + 0x34);
            float* _z = (float*)(*player_info + 0x38);
          
        }
    }
лучше будет через samp, можно посмотреть структуры в собейте
 

SR_team

like pancake
BH Team
4,720
6,370
Подскажите, пожалуйста, с регуляркой, то я конкретно заебался уже с ней. В RPC_ScrCreate3DTextLabel читаю text, перевожу в строку и потом ловлю (пытаюсь) уже regex_match значения нужные значения. Но мой шаблон не проходит, как бы не извращался. Текст, например, такой:
Код:
{FF9900}*** Дом занят ***

{FFFFFF}Номер дома: {AFAFAF}614
{FFFFFF}Класс дома: {AFAFAF}1
{FFFFFF}Владелец: {AFAFAF}Dima_Ganja
{FFFFFF}Дверь: {3D9829}Открыта
{FFFFFF}Гараж: [ {FA736C}НЕТ {FFFFFF}]

Нужно достать, допустим число 614. Пытался следующим образом но как-то не особо получилось, где трабол:
C++:
std::string str = std::string(text);
std::smatch res;
if (std::regex_match(str, res, std::regex(R"(/\}(\d+)/g)")))
C++:
std::string str = std::string(text);
std::smatch res;
const std::regex re(R"((?:\{[0-9a-f]{6,8}\})?([\s\wа-я]+):\s(?:\{[0-9a-f]{6,8}\})?(\d+))", std::regex::icase);
if (std::regex_match(str, res, ку)){
    if (res[1].str() == "Номер дома")
        MessageBoxA(0, res[2].str().data(), "Номер дома", MB_OK);
}

Есть ли какой-нибудь offset, чтобы запихнуть игрока в машину?

P.S Без SAMPFUNCS и LUA
Нужно создать игровое событие или вызвать опкод. Пример первого есть в собе, пример второго в сампе
 
Последнее редактирование модератором:
  • Нравится
Реакции: CatKnight

nt_qwark

Участник
30
1
Да

Можно на прямую искать через пул других педов:
C++:
for (int i = 0; i < 500; i++) {
        next = (DWORD*)(*ped + (0x7C4 * i));

        hundred = *(float*)(next + 0xE);

        if (i != 0 && hundred == 100.0f) {

            DWORD* player_info = (DWORD*)(next + 0x5);
            hp = *(float*)(next + 0x150);
            float* _x = (float*)(*player_info + 0x30);
            float* _y = (float*)(*player_info + 0x34);
            float* _z = (float*)(*player_info + 0x38);
         
        }
    }
лучше будет через samp, можно посмотреть структуры в собейте
В мта все что я читаю - нули. Т.е. адреса не валид
 

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В мта все что я читаю - нули. Т.е. адреса не валид
Всё там валид, покажи как ты читаешь.
А вообще как и в сампе мта имеет собственную структуру педов в client.dll
 

leak.

Известный
37
4
каким образом можно посмотреть, активен ли поток .asi плагина(название плагина или потока)?
кроме MemHacker программы. может в чит энджейн как-то можно. подскажите, пожалуйста
 

CleanLegend

Известный
Всефорумный модератор
476
929
каким образом можно посмотреть, активен ли поток .asi плагина(название плагина или потока)?
кроме MemHacker программы. может в чит энджейн как-то можно. подскажите, пожалуйста
Через proccess hacker можно посмотреть
 
  • Нравится
Реакции: leak.

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
каким образом можно посмотреть, активен ли поток .asi плагина(название плагина или потока)?
кроме MemHacker программы. может в чит энджейн как-то можно. подскажите, пожалуйста
x64dbg (x86 ver), OllyDBG, IDA Pro Debugger
 
  • Нравится
Реакции: leak.

-raymond-

Известный
110
9
как отловить то что один игрок выстрелил в другого игрока и попал?
 

jenekbueno

Известный
157
69
в собейте, во входящих рпц, в частности RPC_ClientMessage при попытке перезаписать битстрим - краш, как я понял если длина новой строки больше чем старой, то поэтому крашит, в сф траблов не было с этим, кто понимает в чем проблема, помогите
 

Roger571

Известный
58
31
в собейте, во входящих рпц, в частности RPC_ClientMessage при попытке перезаписать битстрим - краш, как я понял если длина новой строки больше чем старой, то поэтому крашит, в сф траблов не было с этим, кто понимает в чем проблема, помогите
ClientMessage
Нужно записывать не только самому строку, но и ее новую длину dwStrLen (strlen)
 

jenekbueno

Известный
157
69
да неужели?) я как будто бы незнал)

upload_2018-10-20_10-4-53.png