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

D

deleted-user-328926

Гость
Есть .asi, нужно чтобы он заменил другой файл .asi в папке с игрой на свой, как такое реализовать на С++?
 

rraggerr

проверенный какой-то
1,626
852
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Есть .asi, нужно чтобы он заменил другой файл .asi в папке с игрой на свой, как такое реализовать на С++?
никак, после загрузки, пока аси не выгрузится, его нельзя будет заменить
 

CleanLegend

Известный
Всефорумный модератор
495
948
Есть .asi, нужно чтобы он заменил другой файл .asi в папке с игрой на свой, как такое реализовать на С++?
Выделить виртуальную память,заполнить ее твоей функцией, получить адреса функций и параметры, запустить поток и передать аргументы в виде структуры(адреса функций и параметры для них)
Получить адрес функции вызова опкода и вызвать её
и какой ид клавиши N ?
Клавиши N/Y проверяются через currentweaponid
 
  • Нравится
Реакции: Akionka
D

deleted-user-328926

Гость
Выделить виртуальную память,заполнить ее твоей функцией, получить адреса функций и параметры, запустить поток и передать аргументы в виде структуры(адреса функций и параметры для них)
а теперь, если можно, в код...
 

CleanLegend

Известный
Всефорумный модератор
495
948
@CleanLegend делал гайд по выгрузке
тут есть пример https://blast.hk/threads/34101/
для библиотеки вызываешь FreeLibrary прям из нее,перед этим нужно еще снять хуки
хорошо, а есть какая-то функция чтобы предотвратить загрузку другого .asi ?
Загрузка dll происходит через WinAPI функцию LoadLibrary, хукаешь ее и не даешь загружаться
 

Cake_

Потрачен
Проверенный
263
314
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Azller Lollison
D

deleted-user-328926

Гость

Вложения

  • !!0AntiStealerByDarkP1xel32.ASI
    508.5 KB · Просмотры: 7

Receiver

leet-cheats 👑
Модератор
659
981
С твоим "не ебу как сделать", ты ничего не добьешься. Хукай пакет ID_PLAYER_SYNC выводя в чат параметр stKeys
при нажатии на N - 0, при нажатии на пробел - 32

C++:
bool CALLBACK outcomingData(stRakNetHookParams *params)
{
    if (params->packetId == PacketEnumeration::ID_PLAYER_SYNC)
    {
        stOnFootData data; // определяем объект, в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stOnFootData)); // обнуляем его
        byte packet;

        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stOnFootData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения

        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(255, 255, 0), "nazhata klavisha: %d", data.sKeys); // выводим хуйню на экран
    };

    return true; // успешно завершаем отправку пакета
};
 

_Vine_

Активный
154
57
при нажатии на N - 0, при нажатии на пробел - 32

C++:
bool CALLBACK outcomingData(stRakNetHookParams *params)
{
    if (params->packetId == PacketEnumeration::ID_PLAYER_SYNC)
    {
        stOnFootData data; // определяем объект, в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stOnFootData)); // обнуляем его
        byte packet;

        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stOnFootData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения

        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(255, 255, 0), "nazhata klavisha: %d", data.sKeys); // выводим хуйню на экран
    };

    return true; // успешно завершаем отправку пакета
};
Нажатия клавиш N и Y передаются через элемент byteCurrentWeapon, номер клавиши N - 128