Решил научиться писать DLL, просто ради интереса посмотреть, что из этого получится. Нашёл несколько видео по этой теме и, начал пытаться разбираться в том, что собственно пишет данный человек, спустя 3 просмотра данного видеоролика я преступил к коду, но писал его не на игре, которая светилась в видео (Просто потому что я не люблю повторять всё 1 в 1). В результате вышло следующее: Hack.cpp
#include <Windows.h>
#include <iostream>
#include "ExMachina.h"
#include <io.h>
#include <stdio.h>
#include <fcntl.h>
Создание потока.
DWORD WINAPI ExMachina_Thread(LPVOID lpReserved);
Внедрение.
DWORD APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
CreateThread(NULL, NULL, ExMachina_Thread, NULL, NULL, NULL);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return true;
};
Дальше метод вызова консоли.
void CreateConsole() {
int hConHandle = 0;
HANDLE lStdHandle = 0;
FILE *fp = 0;
AllocConsole();
SetConsoleTitle("ExMachina Debug");
lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
hConHandle = _open_osfhandle(PtrToUlong(lStdHandle), _O_TEXT);
fp = _fdopen(hConHandle, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
}
Ну и соответственно сам поток и его функции:
DWORD WINAPI ExMachina_Thread(LPVOID lpReserved) {
CreateConsole();
DWORD Address = (DWORD)GetModuleHandle("hta.exe") + 0x6135E4;
ExMachina* EXMACHINA = ExMachina::Singleton(Address, 0x118);
for (;;Sleep(75)) {
printf("Succesfly inject 0x%x", EXMACHINA);
std::cout << "Succesfly inject 0x%X", EXMACHINA;
}
}
Как можно увидеть из подключенных библиотек есть и stdio.h и iostream, но ни то, ни другое информацию, которая мне нужна, не выводит. Что можно с этим сделать?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Здравствуйте возник вопрос в синхронизации отдельной части приложения, вот пример:
Объясните, пожалуйста, как производится запись? Есть файл с такими строками:
Нужно создать функцию, добавление элементов в очередь, выводится ошибка:"Выражение должно быть допустимым для изменение левосторонним значением"...