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

traceattack

Известный
218
119
Есть ли у кого адрес указателя на угол трастеров гидры. Ну или название функи в SF, я чет не нашел 😢(Доступа к нормальному компу пока нет, а если на данном ведре запущу CE и запущу скан, хорошо будет если он хотя бы не расплавится)
 
Последнее редактирование:

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Назрело у меня пару вопросов
Первое:
Структура SAMP R3 Выглядит следующим образом:
1594506376030.png
Каким образом в ulPort попадает порт, у которого оффсет 1388?

Второе:
Как на хукнутом RakClientInterface реализовать перехват входящих RPC как в s0beit'е. Т.е. условно если сервер пытается сетнуть мне хп, у меня в чат вывелось, что сервер мне пытается поставить мне хп. Или например нопить входящие RPC.

Третье:
Почему-то при вызове addChatMessage в основном потоке, работает, а при вызове этой же функции в где-нибудь в другом месте крашит.
Потоки:
void test(char* szParams)
{
    pSAMP->addMessageToChat(0xFFFFFFFF, "addMessageToChat causes exception in gta_sa.exe(samp.dll)");
}

void mainThread(void *pvParams)
{
   
    if (pSAMP)
    {
        while (!pSAMP->tryInit())
        {
            Sleep(100);
        }
        pSAMP->addMessageToChat(0xFFFFFFFF, "addMessageToChatWorks here!");
        pSAMP->addClientCommand("test", test);
    }
}
addMessageToChat:
void SAMPFramework::addMessageToChat(D3DCOLOR cColor, const char* szMsg, ...)
{
    if (g_Chat == nullptr)
        return;

    void(__thiscall * AddToChatWindowBuffer) (const void* _this, int iType, char* szText, char* szPrefix, DWORD cColor, DWORD cPrefixColor) =
        (void(__thiscall*) (const void*, int, char*, char*, DWORD, DWORD)) (dwSAMPAddr + SAMP_FUNC_ADDTOCHATWND);

    if (szMsg == NULL)
        return;

    va_list ap;
    char tmp[512];
    memset(tmp, 0, 512);
    va_start(ap, szMsg);
    vsnprintf(tmp, sizeof(tmp) - 1, szMsg, ap);
    va_end(ap);

    return AddToChatWindowBuffer((void*)g_Chat, 8, tmp, NULL, cColor, 0x00);
}
Само исключение:
Вызвано исключение по адресу 0x0A279392 (samp.dll) в gta_sa.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000007.
Стек вызовов пустой
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
  • Нравится
Реакции: loganhackerdff

reseller

Потрачен
33
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в чем трабл а
1594915674293.png
 

MaksQ

Известный
967
834
как взорвать машину в который ты сидишь? только не через SetHealth(0)
 

imring

Ride the Lightning
Всефорумный модератор
2,362
2,545
  • Нравится
Реакции: MaksQ

Musaigen

abobusnik
Проверенный
1,607
1,365
Назрело у меня пару вопросов
Первое:
Структура SAMP R3 Выглядит следующим образом:
Каким образом в ulPort попадает порт, у которого оффсет 1388?

Второе:
Как на хукнутом RakClientInterface реализовать перехват входящих RPC как в s0beit'е. Т.е. условно если сервер пытается сетнуть мне хп, у меня в чат вывелось, что сервер мне пытается поставить мне хп. Или например нопить входящие RPC.

Третье:
Почему-то при вызове addChatMessage в основном потоке, работает, а при вызове этой же функции в где-нибудь в другом месте крашит.
Потоки:
void test(char* szParams)
{
    pSAMP->addMessageToChat(0xFFFFFFFF, "addMessageToChat causes exception in gta_sa.exe(samp.dll)");
}

void mainThread(void *pvParams)
{
 
    if (pSAMP)
    {
        while (!pSAMP->tryInit())
        {
            Sleep(100);
        }
        pSAMP->addMessageToChat(0xFFFFFFFF, "addMessageToChatWorks here!");
        pSAMP->addClientCommand("test", test);
    }
}
addMessageToChat:
void SAMPFramework::addMessageToChat(D3DCOLOR cColor, const char* szMsg, ...)
{
    if (g_Chat == nullptr)
        return;

    void(__thiscall * AddToChatWindowBuffer) (const void* _this, int iType, char* szText, char* szPrefix, DWORD cColor, DWORD cPrefixColor) =
        (void(__thiscall*) (const void*, int, char*, char*, DWORD, DWORD)) (dwSAMPAddr + SAMP_FUNC_ADDTOCHATWND);

    if (szMsg == NULL)
        return;

    va_list ap;
    char tmp[512];
    memset(tmp, 0, 512);
    va_start(ap, szMsg);
    vsnprintf(tmp, sizeof(tmp) - 1, szMsg, ap);
    va_end(ap);

    return AddToChatWindowBuffer((void*)g_Chat, 8, tmp, NULL, cColor, 0x00);
}
Само исключение:
Вызвано исключение по адресу 0x0A279392 (samp.dll) в gta_sa.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000007.
Стек вызовов пустой
1. Переведи 1388 в шестнадцатиричную систему.
2. Используй VMT Hook Manager.
3. Попробуй.
C++:
void /*CChat::AddEntry*/AddEntry(DWORD color, const char* text, ...)
{
    char buf[128]{0};
   
    va_list args;
    va_start(args, text);
    vsprintf_s(buf, text, args);
    va_end(args);
   
    // Адреса 100% действительны для 0.3.7-R1
    reinterpret_cast<void(__thiscall*)(void*, char*)>(/*(DWORD)GetModuleHandle("samp.dll")*/g_dwSAMPBase + 0x63850)(g_Chat, buf);
    reinterpret_cast<void(__thiscall*)(void*, int, const char*, const char* DWORD, DWORD)>(g_dwSAMPBase + 0x64010)(g_Chat, 8, buf, nullptr, color, 0);
}
 
Последнее редактирование:

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
1. Переведи 1388 в шестнадцатиричную систему.
2. Используй VMT Hook Manager.
3. Попробуй.
C++:
void /*CChat::AddEntry*/AddEntry(DWORD color, const char* text, ...)
{
    char buf[128]{0};
   
    va_list args;
    va_start(args, text);
    vsprintf_s(buf, text, args);
    va_end(args);
   
    // Адресса 100% действительны для 0.3.7-R1
    reinterpret_cast<void(__thiscall*)(void*, char*)>(/*(DWORD)GetModuleHandle("samp.dll")*/g_dwSAMPBase + 0x63850)(g_Chat, buf);
    reinterpret_cast<void(__thiscall*)(void*, int, const char*, const char* DWORD, DWORD)>(g_dwSAMPBase + 0x64010)(g_Chat, 8, buf, nullptr, color, 0);
}
1. разобрался(1388 уже в 16-ричной был)
2. Не понял тебя. У меня есть хукнутый RakClient как в собейте. Меня интересует как в нем ловить входящие RPC.
3. Пофиксил. Взял Функцию из SAMP-API от LUCHARE
 

Musaigen

abobusnik
Проверенный
1,607
1,365
1. разобрался(1388 уже в 16-ричной был)
2. Не понял тебя. У меня есть хукнутый RakClient как в собейте. Меня интересует как в нем ловить входящие RPC.
3. Пофиксил. Взял Функцию из SAMP-API от LUCHARE
Хуки. RakClient не передаёт функцию, где принимаются входящие RPC. Хуки в конце файла samp.cpp.
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Так, ладно еще один вопрос. Как мне в ImGui вывести название сервера если оно не UTF-8, а хранится оно в char[257]
(в названии есть русские символы. шрифт подгрузил)
 

Dark_Knight

Me, me and me.
Друг
4,078
2,096
В чем, собственно, костыль? Просто имгуи работает только с UTF8 двухбайтовым. Это и есть по нормальному и без костылей.