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

iAmerican

Известный
Друг
612
260
Когда только начал делать что-то в С++, сразу хотел сделать 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,366
2,556

Niko

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

BlackKnigga

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

iAmerican

Известный
Друг
612
260
Добрый день, форумчане. Как найти 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

itsOkke

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

itsOkke

Потрачен
86
38
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.