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

Dark_Knight

Me, me and me.
Друг
4,083
2,110
Помогите с хуком на трассер пуль. Ср тим делал такую шнягу как HOOKS ну вообщем я попробовал по его видеоуроку разработки буллет конфига и позаимствовал хук на BULLET_TO - что я хочу? Перезаписывать все трассеры пулек в свою сторону.
Не суть вообщем, почему то во время выстрела я получаю краш(
Что ты конкретно хочешь? Может проще будет через перезапись пакета.

Извините, пожалуйста, за глупые вопросы, но..
1. Какая среда используется для разработки .sf плагинов?
2. Порекомендуйте компилятор для своих говнокодов. (MS Visual Studio не тянет железо)
А вот этот вопрос задаю не потому, что не знаю, а потому, что интересно..
1. Каким образом вы изучали C++? По каким источникам, книгам? Где практиковались?
Проект настроен под ВС 2013(на счет 2013 не уверен).
пробуй кодеблок, но придется с настройкой поебатся.
Гугл, мсдн.
 

ЯedЯuM

Malware Maker
242
303
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что ты конкретно хочешь? Может проще будет через перезапись пакета.
Не будет. Потому что я хочу перезаписать трассер пули чисто на стороне клиента - мне для видеосъемок нужно чтобы не палили что я в стенку хуячу с аимами. Я ж то свой трейсер переместить хочу а не вражеский / или наоборот врагу на синхре.
 

Dark_Knight

Me, me and me.
Друг
4,083
2,110
Ты через хук буллет даты можешь перезаписать входящие патроны и исходящие.
 

Sia

Новичок
7
0
C++:
int main()
{
    SetConsoleTitle("Protect For SAMP [0.3.7]");

    while (hWnd == 0) {
        hWnd = FindWindow(0, "GTA:SA:MP");
        Sleep(100);
    }
    cout << "Just found the window" << endl;
    GetWindowThreadProcessId(hWnd, &pId);
    pHandle = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_OPERATION, TRUE, pId);
    dwSAMP = GetModuleBaseAddress(pId, "samp.dll");
    cout << "dwSAMP : " << dwSAMP << endl;

    ReadProcessMemory(pHandle, (LPCVOID)(dwSAMP + 0x21A0F8), &dwAddress, 4, 0);
    cout << "dwAdress : " << dwAddress << endl;

    ReadProcessMemory(pHandle, (LPCVOID)(dwAddress + 0x3CD), &dwAddress, 4, 0);
    cout << "dwAdres : " << dwAddress << endl;

    ReadProcessMemory(pHandle, (LPCVOID)(dwAddress + 0x18), &dwPlayers, 4, 0);
    cout << "dwPlayers : " << dwPlayers << endl;

    ReadProcessMemory(pHandle, (LPCVOID)(dwPlayers + 0x2E + 0 * 4), &dwRemotePlayer, 4, 0); // ID Игрока
    cout << "dwRemotePlayer : " << dwRemotePlayer << endl;

    ReadProcessMemory(pHandle, (LPCVOID)(dwRemotePlayer + 0x0), &dwRemotePlayerData, 4, 0);
    cout << "dwRemotePlayerData : " << dwRemotePlayerData << endl;

    ReadProcessMemory(pHandle, (LPCVOID)(dwRemotePlayerData + 676), &adress, 4, 0);
    cout << "PED : " << adress << endl;
   
   

    while (true) {
       
   
        Sleep(10);
    }
    CloseHandle(pHandle);
    return 0;
}

Хочу получить адресс на педа , что бы получать его координаты ну или если кто может посказать адресс для проверки в зоне стрима , что нибудь из этого.
Но почему то когда указываю ID игрока , "PED:" возвращает 0.
 

iAmerican

Известный
Друг
612
260
Объясните пожалуйста , можно ли хранить в Visual Studio проект онлайн? При этом что бы можно было его компилировать.
Смотрел что то про Azure , но толком не понял там не чего. Кто с этим сталкивался , дайте гайдик)
 

Jack_Savage

Участник
150
17
Кто то знает как в awesomium вызвать InjectKeyboardEvent из другого потока?
Потому что если вызвать его напрямую из WndProc то будет краш...
"Необработанное исключение по адресу 0x03A454BF (awesomium.dll) в gta.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x000000D8."
Я хуком d3d его пытаюсь рендерить его.
Рендерится все отлично а вот при попытке вызвать InjectKeyboardEvent игра крашится...
Я так понимаю это потому что игра визывает эту функцию из своего потока а он создан по сути в потоке _beginthread (из dll)
 

Petr_Sergeevich

Известный
Проверенный
707
298
Здравствуйте. Как скомпилировать файл в .sf?

#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

void CALLBACK cmd_show_info_player(std::string param)
{
if (param.empty()) return;
int i = std::stoi(param);

char buf[128];

stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer;

if (!pPlayer) return;

sprintf(buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d",
pPlayer->szPlayerName,
pPlayer->iPing,
pPlayer->iScore,
pPlayer->iIsNPC,
pPlayer->pPlayerData->iAFKState == 2);

SF->getSAMP()->getChat()->AddChatMessage(-1, buf);
};

void CALLBACK mainloop()
{
static bool init = false;
if (!init)
{
if (GAME == nullptr)
return;
if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
return;
if (!SF->getSAMP()->IsInitialized())
return;
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);

init = true;
}
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
switch (dwReasonForCall)
{
case DLL_PROCESS_ATTACH:
SF->initPlugin(mainloop, hModule);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
 

NarutoUA

NarutoUA
BH Team
692
1,557
Объясните пожалуйста , можно ли хранить в Visual Studio проект онлайн? При этом что бы можно было его компилировать.
Смотрел что то про Azure , но толком не понял там не чего. Кто с этим сталкивался , дайте гайдик)
Можно, гугли TFS. Но все равно код прийдется параллельно хранить у себя (и на сервере). Билдить можно на их стороне.
 

samp is meme

Активный
183
63
Здравствуйте. Как скомпилировать файл в .sf?

#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

void CALLBACK cmd_show_info_player(std::string param)
{
if (param.empty()) return;
int i = std::stoi(param);

char buf[128];

stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer;

if (!pPlayer) return;

sprintf(buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d",
pPlayer->szPlayerName,
pPlayer->iPing,
pPlayer->iScore,
pPlayer->iIsNPC,
pPlayer->pPlayerData->iAFKState == 2);

SF->getSAMP()->getChat()->AddChatMessage(-1, buf);
};

void CALLBACK mainloop()
{
static bool init = false;
if (!init)
{
if (GAME == nullptr)
return;
if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
return;
if (!SF->getSAMP()->IsInitialized())
return;
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);

init = true;
}
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
switch (dwReasonForCall)
{
case DLL_PROCESS_ATTACH:
SF->initPlugin(mainloop, hModule);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

SF Api, нужна VS.
 

samp is meme

Активный
183
63
Само собой, код написал там, куда дальше нажимать? Как скомпилировать? (VS 2017 Community)

(https://www.blast.hk/wiki/tutorials:api_lesson_basics)
Screenshot_13.png
 

memir

🇷🇺
Всефорумный модератор
341
613
Как из DLL сделать ASI? Если просто переименовать - не работает. Писал на Visual C++. ASI loader стоит.