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

CleanLegend

Известный
Всефорумный модератор
476
929
Когда только начал делать что-то в С++, сразу хотел сделать dll чит для крмп, где есть только команды. На днях слонобойко слил исходник, там очень много всего, что нужно удалить из исходника, чтобы остались только рабочие команды? Меню и автоинжект удалить, а оставить только команды с функциями, чтобы они работали. Я не прошу сделать все за меня, скажите пожалуйста просто что удалить, дальше я сам разберусь
Тебе же уже отвечали, нужно сначала смысл понять, позже уже изучать что-то глобально, такое как собейт.
Наберись опыта, напиши что-нибудь с помощь SF API и тд.
 

DEsTR0Y

Новичок
14
0
Тебе же уже отвечали, нужно сначала смысл понять, позже уже изучать что-то глобально, такое как собейт.
Наберись опыта, напиши что-нибудь с помощь SF API и тд.
Он, как и я, делает для крмп, SF API для крмп не подходит. Он хочет убрать с собейта всё, кроме функций(на установку хп к примеру), чтобы уже самому пытаться что-то сделать. По сути получится тоже самое, что и с SF API. В SF API есть функции, в собейте есть функции. Т.к. sf api не подходит, он решил использовать функции собейта. Но весь собейт ему не надо, вот он и просит написать, где в нём находятся функции, чтобы всё остальное убрать и делать своё.
P.S. в С++ я недавно, возможно это называется и не функциями, я про pCRMP->getChat()->addMessageToChat и тд
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
P.S. в С++ я недавно, возможно это называется и не функциями, я про pCRMP->getChat()->addMessageToChat и тд
ООП это.
Он, как и я, делает для крмп, SF API для крмп не подходит. Он хочет убрать с собейта всё, кроме функций(на установку хп к примеру), чтобы уже самому пытаться что-то сделать. По сути получится тоже самое, что и с SF API. В SF API есть функции, в собейте есть функции. Т.к. sf api не подходит, он решил использовать функции собейта. Но весь собейт ему не надо, вот он и просит написать, где в нём находятся функции, чтобы всё остальное убрать и делать своё.
Имеется ввиду сперва начать с сампа, а после крмп, вы ещё с сф апи не можете написать что-то нормальное, а хотите что-то независимое.
 
  • Нравится
Реакции: SR_team

iAmerican

Известный
Друг
615
257
Когда только начал делать что-то в С++, сразу хотел сделать dll чит для крмп, где есть только команды. На днях слонобойко слил исходник, там очень много всего, что нужно удалить из исходника, чтобы остались только рабочие команды? Меню и автоинжект удалить, а оставить только команды с функциями, чтобы они работали. Я не прошу сделать все за меня, скажите пожалуйста просто что удалить, дальше я сам разберусь
Удали всё что не нравится и всё. Выделяй и Delete жми. Потом копируешь в блакнот , сохраняешь как asi и все, Я так уже на крмп читы сделал себе.
 
  • Нравится
Реакции: Roger571

romanblinov2013

RB_PRO
Проверенный
212
196
Добрый день, форумчане. Как найти WINAPI адрес, из которого можно достать размер определённой картинки?
upload_2018-6-16_9-12-44.png





И сразу же добивающий вопрос...
Как узнать, сколько файлов в определённой папке?
upload_2018-6-16_9-14-35.png


Заранее спасибо за ответ:sensored:
 

imring

Ride the Lightning
Всефорумный модератор
2,355
2,517

Niko

Известный
Проверенный
230
268
В общем, у меня есть функция, которая ставит JMP хук на указанный адрес. Проблема в том, что если поставить хук в разных файлах на один и тот же адрес, то хук перезаписывается и работает только в одном файле. Можно ли как то этого избежать?
 

BlackKnigga

Известный
BH Team
922
445
В общем, у меня есть функция, которая ставит JMP хук на указанный адрес. Проблема в том, что если поставить хук в разных файлах на один и тот же адрес, то хук перезаписывается и работает только в одном файле. Можно ли как то этого избежать?
Можно сохранять перезаписываемые команды и выполнять их после своего кода
 

iAmerican

Известный
Друг
615
257
Добрый день, форумчане. Как найти WINAPI адрес, из которого можно достать размер определённой картинки?
Посмотреть вложение 14961




И сразу же добивающий вопрос...
Как узнать, сколько файлов в определённой папке?
Посмотреть вложение 14962

Заранее спасибо за ответ:sensored:

C++:
int iCount = 0;
std::string sPatch = "D:\\ShP\\; 
std::string sMask=  sPatch+ "*.png"; 

void CheckFiles()
   {
       iCount = 0;
       WIN32_FIND_DATA FindFileData;
       HANDLE hFile = FindFirstFileA(szFullMask.c_str(), &FindFileData);
       if (hFile != INVALID_HANDLE_VALUE)
       {
           do {
               iCount ++;
           } while (FindNextFile(hFile, &FindFileData) != 0);
           FindClose(hFile);
       }
   }

printf("%i",iCount);
 
  • Нравится
Реакции: romanblinov2013

itsOkke

Потрачен
86
38
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
лучше создай одну хук функцию в которой вызывай из массива другие хук функции,
которые будут регистрироваться просто добавлением функции в этот массив
 

itsOkke

Потрачен
86
38
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
using proc_DialogCallBack = void(__stdcall *)();

class DialogHook {
public:
    void registerDialogHook(void(__stdcall *func)()) {
        // ...
    }
    void registerDialogCallBack(proc_DialogCallBack callback) {
        // ...
        callbacks.push_back(callback);
    }
    std::vector<proc_DialogCallBack> callbacks;
} *pDialog;

__declspec(naked) void __stdcall hook() {
    std::for_each(pDialog->callbacks.begin(), pDialog->callbacks.end(), [](proc_DialogCallBack &callback) {
        callback();
    });
}

int main() {
    pDialog->registerDialogHook(hook);

    pDialog->registerDialogCallBack([]() {
        std::cout << "callback1" << std::endl;
    });

    pDialog->registerDialogCallBack([]() {
        std::cout << "callback2" << std::endl;
    });
  
    pDialog->registerDialogCallBack([]() {
        std::cout << "callback3" << std::endl;
    });
}
Вот же не поленился и расписал как это может примерно выглядеть

Нужно ещё учесть то, что хук другого плагина может не стоять. Можешь проверить это вот так: if (*reinterpret_cast<BYTE*>(0x021A1F) == 0xE9) // 0xE9 - опкод jmp
А если опкод будет другой
 
  • Нравится
Реакции: Niko