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

Dark_Knight

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

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

Известный
Друг
611
261
Объясните пожалуйста , можно ли хранить в 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,567
Объясните пожалуйста , можно ли хранить в Visual Studio проект онлайн? При этом что бы можно было его компилировать.
Смотрел что то про Azure , но толком не понял там не чего. Кто с этим сталкивался , дайте гайдик)
Можно, гугли TFS. Но все равно код прийдется параллельно хранить у себя (и на сервере). Билдить можно на их стороне.
 

samp is meme

Активный
183
64
Здравствуйте. Как скомпилировать файл в .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
64
Само собой, код написал там, куда дальше нажимать? Как скомпилировать? (VS 2017 Community)

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

memir

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