HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #4701  
Старый 05.08.2020, 02:22
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от T4yz1e  

Не знаю, кому кроме меня это вообще надо, но в гугле ничего нет и пришлось искать методом тыка, так что пусть будет:

Всего 4-16 байт.

Из интересного:
5 - Бокс
6 - Махи ногами (вроде тхэквондо или чет такое)
7 - захват и удар коленом
15 - Уличный стиль

Остальное - это удары оружием ближнего боя.

Записывать в оба адреса, использовать на ПКМ+F.
Сделай для этого код(Любой, экстернал/интернал) и выложи в тему Полезные Функции С++ю
 
Ответить с цитированием

  #4702  
Старый 05.08.2020, 04:42
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

Цитата:
Сообщение от KiN4StAt  

Да не, не то. Мне надо в функции приема RPC, проверять, включено ли оно. Примерно продумал такой ход: Массив, в нем индекс = ID RPC. массив типа struct RPC, в котором два поля: std::string name и bool enabled. Мне теперь надо придумать как это заполнять
Используй std::map.

Заполнять через for.
 
Ответить с цитированием

  #4703  
Старый 05.08.2020, 12:28
manukhov
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами: 4254200

Репутация: 98
По умолчанию

Цитата:
Сообщение от KiN4StAt  

Сделай для этого код(Любой, экстернал/интернал) и выложи в тему Полезные Функции С++ю
Код добавил, а в ту тему не вижу смысла кидать, уж очень примитивно. Кому будет нужно, тот увидит. Это теперь и в гугле и в поиске бх есть.
 
Ответить с цитированием

  #4704  
Старый 05.08.2020, 13:23
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от Musaigen  

Используй std::map.
Заполнять через for.
Можно спокойной через vector сделать не напрягаясь и юзать std::find_if для поиска любых значений.

map имеет метод find, но позволит искать по первому элементу пары(sld:air)

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

ideone.com
 
Ответить с цитированием

  #4705  
Старый 05.08.2020, 13:36
manukhov
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами: 4254200

Репутация: 98
По умолчанию

Здравствуйте, опять я со своими цыганскими фокусами по трансформации internal->external, на сей раз Nametag. Подскажите, что неправильно, я так и не нашёл проблему, а работать оно не хочет.

P.S.

1. Интернал точно правильный.

2. Получение адреса samp.dll точно работает

3. Виртал протект делал, не помогает.

Internal:





Код:
Idefine SAMP_INFO  0x21A0F8
#define SAMP_SETTINGS  0x3D5
DWORD* pInfo;
BYTE* ThroughWalls;
BYTE* ShowNameTags;
float* fDistance;
    
    
    DWORD SampDLL = (DWORD)GetModuleHandleA("samp.dll");
    if (SampDLL) {
        pInfo = (DWORD*)(SampDLL + SAMP_INFO);
        while (*pInfo == 0) Sleep(1000);
        while (*(DWORD*)(*pInfo + SAMP_SETTINGS) == 0) Sleep(1000);
        ShowNameTags = (BYTE*)(*(DWORD*)(*pInfo + SAMP_SETTINGS) + 0x38);
        ThroughWalls = (BYTE*)(*(DWORD*)(*pInfo + SAMP_SETTINGS) + 0x2F);
        fDistance = (float*)((DWORD*)(*(DWORD*)(*pInfo + SAMP_SETTINGS) + 0x27));
        for (;;)
        {
            do {
                Sleep(100);
            } while (!KeyPressed(VK_MENU) || !KeyPressed(0x32));
            do {
                Sleep(50);
            } while (KeyPressed(0x32));
            gta_showText("okoboga v2 ~g~Activated", 1000, NULL, NULL);
            *ShowNameTags = 1;
            *ThroughWalls = 0;
            *fDistance = 999.0f;
            do {
                Sleep(100);
            } while (!KeyPressed(VK_MENU) || !KeyPressed(0x32));
            do {
                Sleep(50);
            } while (KeyPressed(0x32));
            gta_showText("okoboga v2 ~r~Deactivated", 1000, NULL, NULL);
            *ShowNameTags = 1;
            *ThroughWalls = 1;
            *fDistance = 0.0f;
        }
    }


External (моё):





Код:
#define SAMP_INFO  0x21A0F8
#define SAMP_SETTINGS  0x3D5

if (checkBox5->Checked)
    {
        DWORD pInfo;
        BYTE ShowNameTags = 1;
        BYTE ThroughWalls = 0;
        float fDistance = 999.0f;

        ReadProcessMemory(hProcess, (LPVOID)(moduleBase + SAMP_INFO), &pInfo, sizeof(pInfo), nullptr);
        WriteProcessMemory(hProcess, (LPVOID)(pInfo + SAMP_SETTINGS + 0x38), &ShowNameTags, sizeof(ShowNameTags), nullptr);
        WriteProcessMemory(hProcess, (LPVOID)(pInfo + SAMP_SETTINGS + 0x2F), &ThroughWalls, sizeof(ThroughWalls), nullptr);
        WriteProcessMemory(hProcess, (LPVOID)(pInfo + SAMP_SETTINGS + 0x27), &fDistance, sizeof(fDistance), nullptr);
    }
    else
    {
        DWORD pInfo;
        BYTE ShowNameTags = 1;
        BYTE ThroughWalls = 1;
        float fDistance = 0.0f;

        ReadProcessMemory(hProcess, (LPVOID)(moduleBase + SAMP_INFO), &pInfo, sizeof(pInfo), nullptr);
        WriteProcessMemory(hProcess, (LPVOID)(pInfo + SAMP_SETTINGS + 0x38), &ShowNameTags, sizeof(ShowNameTags), nullptr);
        WriteProcessMemory(hProcess, (LPVOID)(pInfo + SAMP_SETTINGS + 0x2F), &ThroughWalls, sizeof(ThroughWalls), nullptr);
        WriteProcessMemory(hProcess, (LPVOID)(pInfo + SAMP_SETTINGS + 0x27), &fDistance, sizeof(fDistance), nullptr);
 
Ответить с цитированием

  #4706  
Старый 05.08.2020, 14:04
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от T4yz1e  

Здравствуйте, опять я со своими цыганскими фокусами по трансформации internal->external, на сей раз Nametag. Подскажите, что неправильно, я так и не нашёл проблему, а работать оно не хочет.
Если я все правильно понял, то
Код:
(DWORD*)(*pInfo + SAMP_SETTINGS)
Преобразует *pInfo+SAMP_SETTINGS в DWORD*, после идет +0x27, а из-за арифметики указателей, это получается 0x27 * 4, и потом идет разыменование.

Возможно ты еще с преобразованиями накосячил, пока с телефонам, не совсем удобно смотреть

Также возможно у тебя DWORD задейфанен в 8 байт, а не в 4. Я однажды из-за этого час искал где приколы возникли

нашел где ошибка. Вместо

C++:





Код:
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
moduleBase
+
SAMP_INFO
)
,
&
pInfo
,
sizeof
(
pInfo
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
+
0x38
)
,
&
ShowNameTags
,
sizeof
(
ShowNameTags
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
+
0x2F
)
,
&
ThroughWalls
,
sizeof
(
ThroughWalls
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
+
0x27
)
,
&
fDistance
,
sizeof
(
fDistance
)
,
nullptr
)
;


Должно быть что-то типа такого:

C++:





Код:
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
moduleBase
+
SAMP_INFO
)
,
&
pInfo
,
sizeof
(
pInfo
)
,
nullptr
)
;
DWORD pSettings
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
)
,
&
pSettings
,
sizeof
(
pSettings
)
,
NULL
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pSettings
+
0x38
)
,
&
ShowNameTags
,
sizeof
(
ShowNameTags
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pSettings
+
0x2F
)
,
&
ThroughWalls
,
sizeof
(
ThroughWalls
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pSettings
+
0x27
)
,
&
fDistance
,
sizeof
(
fDistance
)
,
nullptr
)
;
 
Ответить с цитированием

  #4707  
Старый 05.08.2020, 15:05
manukhov
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами: 4254200

Репутация: 98
По умолчанию

Цитата:
Сообщение от KiN4StAt  

Если я все правильно понял, то
Код:
(DWORD*)(*pInfo + SAMP_SETTINGS)
Преобразует *pInfo+SAMP_SETTINGS в DWORD*, после идет +0x27, а из-за арифметики указателей, это получается 0x27 * 4, и потом идет разыменование.
Возможно ты еще с преобразованиями накосячил, пока с телефонам, не совсем удобно смотреть
Также возможно у тебя DWORD задейфанен в 8 байт, а не в 4. Я однажды из-за этого час искал где приколы возникли

нашел где ошибка. Вместо

C++:





Код:
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
moduleBase
+
SAMP_INFO
)
,
&
pInfo
,
sizeof
(
pInfo
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
+
0x38
)
,
&
ShowNameTags
,
sizeof
(
ShowNameTags
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
+
0x2F
)
,
&
ThroughWalls
,
sizeof
(
ThroughWalls
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
+
0x27
)
,
&
fDistance
,
sizeof
(
fDistance
)
,
nullptr
)
;


Должно быть что-то типа такого:

C++:





Код:
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
moduleBase
+
SAMP_INFO
)
,
&
pInfo
,
sizeof
(
pInfo
)
,
nullptr
)
;
DWORD pSettings
;
ReadProcessMemory
(
hProcess
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
)
,
&
pSettings
,
sizeof
(
pSettings
)
,
NULL
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pSettings
+
0x38
)
,
&
ShowNameTags
,
sizeof
(
ShowNameTags
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pSettings
+
0x2F
)
,
&
ThroughWalls
,
sizeof
(
ThroughWalls
)
,
nullptr
)
;
WriteProcessMemory
(
hProcess
,
(
LPVOID
)
(
pSettings
+
0x27
)
,
&
fDistance
,
sizeof
(
fDistance
)
,
nullptr
)
;

Спасибо, вижу, я не обратил внимания. Но не заработало(

Цитата:
Сообщение от KiN4StAt  

Также возможно у тебя DWORD задейфанен в 8 байт, а не в 4. Я однажды из-за этого час искал где приколы возникли
Это как? Я размерность нигде не указывал
 
Ответить с цитированием

  #4708  
Старый 05.08.2020, 15:09
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от T4yz1e  

Спасибо, вижу, я не обратил внимания. Но не заработало(

Это как? Я размерность нигде не указывал
У меня тоже левых дефайнов не было, а оказалось что где-то есть
 
Ответить с цитированием

  #4709  
Старый 05.08.2020, 15:23
manukhov
Участник форума
Регистрация: 14.04.2018
Сообщений: 122
С нами: 4254200

Репутация: 98
По умолчанию

Цитата:
Сообщение от KiN4StAt  

У меня тоже левых дефайнов не было, а оказалось что где-то есть
Обэма взломал комп и задефайнил пока тебя не было
 
Ответить с цитированием

  #4710  
Старый 05.08.2020, 15:30
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от T4yz1e  

Обэма взломал комп и задефайнил пока тебя не было
Только что проверил. Вот такой код у меня работает, на монсере как минимум.

C++:





Код:
unsigned
char
ShowNameTags
=
1
;
unsigned
char
ThroughWalls
=
0
;
float
fDistance
=
999.0f
;
ReadProcessMemory
(
processHandle
,
(
LPVOID
)
(
sampBase
+
SAMP_INFO
)
,
&
pInfo
,
sizeof
(
pInfo
)
,
nullptr
)
;
uint32_t
pSettings
;
ReadProcessMemory
(
processHandle
,
(
LPVOID
)
(
pInfo
+
SAMP_SETTINGS
)
,
&
pSettings
,
sizeof
(
pSettings
)
,
NULL
)
;
WriteProcessMemory
(
processHandle
,
(
LPVOID
)
(
pSettings
+
0x38
)
,
&
ShowNameTags
,
sizeof
(
ShowNameTags
)
,
nullptr
)
;
WriteProcessMemory
(
processHandle
,
(
LPVOID
)
(
pSettings
+
0x2F
)
,
&
ThroughWalls
,
sizeof
(
ThroughWalls
)
,
nullptr
)
;
WriteProcessMemory
(
processHandle
,
(
LPVOID
)
(
pSettings
+
0x27
)
,
&
fDistance
,
sizeof
(
fDistance
)
,
nullptr
)
;


Ща посчитал оффсет для R1,вышло 3C5 вместо 3D5. Попробуй(нет возможности на R1 протестить сейчас)

еще можешь попробовать 3C9.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.