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

etereon

MQ-Team
Проверенный
327
851
а как можно найти индекс LdrLoadDll или адресс в самой ntdll.dll? можно пожалуйста какой-нибудь гайд
Это экспортируемая функция, так что можно просто вот так (но если ты хочешь что-то сделать из кернел мода, то тебе это ни к чему)
C++:
GetProcAddress(GetModuleHandleA("ntdll.dll"), "LdrLoadDll");
 
Последнее редактирование:
  • Нравится
Реакции: 0xFF

yorenov

Участник
40
31
Как зарегать cmd без использования какого то апи? Короче говоря, пишу плагин, надо чтоб юзер передавал аргумент в функу через cmd, как реализовать не прибегая к использованию какого либо апи?
Аналогия сф апи - SF->getSAMP()->registerChatCommand("text", text); // юзер пишет "/test 1" в чате, вызывается функция test("1") с параметром 1. Думаю ясно объяснил что мне надо короче
 
  • Ха-ха
  • Нравится
Реакции: N08I40K и s1nxs

Oleg1337228

Участник
333
15
Asi:
rtdhook* hook;

void* __fastcall AttachEntityToEntity(uintptr_t ptr, void* edx, uintptr_t entityTo, CVector offset, CVector rotation)
{
uint8_t type = *reinterpret_cast<uint8_t*>(entityTo + 0x36);
if ((type & 7) == 2) // If entity is attaching to vehicle
*reinterpret_cast<uint32_t*>(ptr + 0x1C) &= 0xFFFFFFFE;

return reinterpret_cast<void* (__thiscall*)(uintptr_t, uintptr_t, CVector, CVector)>
(hook->trampoline)(ptr, entityTo, offset, rotation);
}

int main()
{
hook = new rtdhook(0x54D570, reinterpret_cast<DWORD>(&AttachEntityToEntity));
hook->install();
return 0;
}
Как добавить активацию и деактиваю самп?
 
  • Эм
Реакции: Z3roKwq

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,782
2,609
Как зарегать cmd без использования какого то апи? Короче говоря, пишу плагин, надо чтоб юзер передавал аргумент в функу через cmd, как реализовать не прибегая к использованию какого либо апи?
Аналогия сф апи - SF->getSAMP()->registerChatCommand("text", text); // юзер пишет "/test 1" в чате, вызывается функция test("1") с параметром 1. Думаю ясно объяснил что мне надо короче
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как сделать самостоятельное окно imgui, чтобы было без панели управления окном directx9
1701100736957.png

вот я имею в виду такое окно, что обвел и показал стрелочкой, но без ебучего окна которое под крестиком
1701100755408.png

ВСЕМ СПАСИБО ЧАТГПТ МЕНЯ СМОГ УСЛЫШАТЬ
C++:
HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui Standalone Window",
                            WS_POPUP,
                            100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr);
 
Последнее редактирование:

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,782
2,609

y0dir1ga

Новичок
5
0
Если через cmake, то можешь за образец взять это. Если попроще, то можешь использовать Visual Studio Code, настроив проект по этому гайду
Дело в том что мне нужно перебиньдить кнопку активации с Insert на F3 в прикреплённом файле, кнопку в KeyHook.cpp заменил а как скомпилировать не понимаю.
 

Вложения

  • StealthRemastered.asi
    814.5 KB · Просмотры: 8

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,782
2,609
Пишу обертку на sol2 под Lua для перегруженной функции. Почему-то, когда добавляю вторую функцию, я не могу корректно вызвать функцию из под Lua
C++:
RakClientType["RPC"] = sol::overload(
    [](RakClient &pRakClient, int rpcId, BitStream *bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel, bool shiftTimestamp, NetworkID networkId, BitStream *replyFromTarget)
    {
        return pRakClient.RPCd(&rpcId, bitStream, priority, reliability, orderingChannel, shiftTimestamp, networkId, replyFromTarget);
    },

    [](RakClient &pRakClient, int rpcId, const char *data, unsigned int bitLength, PacketPriority priority, PacketReliability reliability, char orderingChannel, bool shiftTimestamp, NetworkID networkId, BitStream *replyFromTarget)
    {
        return pRakClient.RPC(&rpcId, data, bitLength, priority, reliability, orderingChannel, shiftTimestamp, networkId, replyFromTarget);
    }
);
На lua вызываю ее так:
Lua:
rakClient:RPC(rpcId, bitstream, RakCore.PacketPriority.HIGH_PRIORITY, RakCore.PacketReliability.RELIABLE_ORDERED, 0, false, RakCore.UNASSIGNED_NETWORK_ID, nil)
Странно, что ошибка появляется если добавить вторую перегрузку (вместо bitStream data и lenght), когда оставляю только одну перегрузку (также через sol::overload), все работает корректно. Ошибка в Lua:
Код:
sol: no matching function call takes this number of arguments and the specified types
 

AKTPUCCA

Новичок
4
0
У меня вопрос по многофайловым проектам на языке C++. Допустим у меня в проекте следующие файлы:
main.cpp
sum.cpp // определение функции sum(int a, int b) {return a+b};
sum.h // объявление функции

В sum.cpp мы подключаем заголовочный файл (как это говорят делать) #include "sum.h"
В main.cpp мы так же подключаем заголовочный файл #include "sum.h"

Теперь вопрос: если директива "#include" просто вставляет текст из файла, который он подключает, то как нахуй работает заголовочный файл; ведь подключая "sum.h" в "main.cpp" мы по сути вставляем ТОЛЬКО объявление функции в main.cpp, но каким-то чудом тут еще и определение из sum.cpp работает, хотя мы его не подключаем, а ДАЖЕ НАОБОРОТ, ЭТО sum.cpp вставляет в себя текст sum.h. Что в итоге: sum.h не содержит в себе текст из sum.cpp, и main.cpp не содержит в себе текст sum.cpp. main.cpp вставляет текст sum.h, а sum.h НЕ вставляет в себя определение функции sum(), то есть НЕ инклудит в себя sum.cpp. Это заставляет меня сомневаться в знании "#include".

В моем понимании, чтобы функция работала, мы должны подключить ее определение, а тут с заголовками мы не подключаем определение (sum.cpp), мы подключаем заголовочный "sum.h", но в самом заголовочном мы не подключаем определение в "sum.cpp". Объясните почему так, ПОЧЕМУ ТАК?! Мозг ломается.
 

N08I40K

Известный
224
107
У меня вопрос по многофайловым проектам на языке C++. Допустим у меня в проекте следующие файлы:
main.cpp
sum.cpp // определение функции sum(int a, int b) {return a+b};
sum.h // объявление функции

В sum.cpp мы подключаем заголовочный файл (как это говорят делать) #include "sum.h"
В main.cpp мы так же подключаем заголовочный файл #include "sum.h"

Теперь вопрос: если директива "#include" просто вставляет текст из файла, который он подключает, то как нахуй работает заголовочный файл; ведь подключая "sum.h" в "main.cpp" мы по сути вставляем ТОЛЬКО объявление функции в main.cpp, но каким-то чудом тут еще и определение из sum.cpp работает, хотя мы его не подключаем, а ДАЖЕ НАОБОРОТ, ЭТО sum.cpp вставляет в себя текст sum.h. Что в итоге: sum.h не содержит в себе текст из sum.cpp, и main.cpp не содержит в себе текст sum.cpp. main.cpp вставляет текст sum.h, а sum.h НЕ вставляет в себя определение функции sum(), то есть НЕ инклудит в себя sum.cpp. Это заставляет меня сомневаться в знании "#include".

В моем понимании, чтобы функция работала, мы должны подключить ее определение, а тут с заголовками мы не подключаем определение (sum.cpp), мы подключаем заголовочный "sum.h", но в самом заголовочном мы не подключаем определение в "sum.cpp". Объясните почему так, ПОЧЕМУ ТАК?! Мозг ломается.
 

AKTPUCCA

Новичок
4
0
Там не описано каким образом .h присоединяет определение из .cpp без инклуда
 

D0glian

Новичок
18
0
Итак, помогите мне выполнить упражнение на C++, нужно сделать это с включением iostream и использованием пространства имен std на базовом языке. Это упражнение пользователь должен визуализировать на следующем рисунке: 5 звездочек и тире ( *****-) под 4 звездочками и двумя тире ****-- под 3 звездочками два тире и ноль ( ** *--0) под двумя звездочками два тире и два нуля ( **--00) под звездочкой два тире три нуля ( *--000) под двумя тире и 4 нуля ( --0000)
 

Вложения

  • asdasd.png
    asdasd.png
    2.3 KB · Просмотры: 25