Перейти к содержанию
IzerodayI

Вывод данных .DLL в консоль.

Рекомендуемые сообщения

теги(если не нужны то удалите) :

Скрытый текст

как вывести консоль в длл , консоль и длл , как вывести информацию из длл , работающая консоль в длл, как вывести консоль из длл

взял код я у @elvis66666 , но он у меня не работал вывод информации в консоль через cout<< , добавив строчку freopen("CON","w",stdout); все заработало , что и повлекло сделать статью для таки же как я.

Теперь код выглядит так 

Скрытый текст

#define _CRT_SECURE_NO_WARNINGS // у некотрых работает без этого 
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
using namespace std;

void CreateConsole() 
{ 
	int hConHandle = 0;	
	HANDLE lStdHandle = 0;	
	FILE *fp = 0;	
	AllocConsole();	
	freopen("CON", "w", stdout);//  <<<<==================== строчка , которую я добавил в код 
	SetConsoleTitle("Cheat DLL Console");
	HWND hwnd = ::GetConsoleWindow();	
	if (hwnd != NULL) 
	{ 
		HMENU hMenu = ::GetSystemMenu(hwnd, FALSE);		
		if (hMenu != NULL) 
		{ 
			DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);			
			DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND);			
			DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND); 
		} 
	}	
	lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);	
	hConHandle = _open_osfhandle(PtrToUlong(lStdHandle), _O_TEXT);	
	fp = _fdopen(hConHandle, "w");	
	*stdout = *fp;	
	setvbuf(stdout, NULL, _IONBF, 0); 
}

 

и у меня cout<< стал выводить информацию в консоль из длл

 

PS если тему добавил не туда , прошу переместить =)

Изменено пользователем IzerodayI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если ты пишешь статью (тем более для новичков), нужно хотя бы описать для чего это, где это используется, показать на конкретном примере, пояснить каждую строчку кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я что-то вообще не понял почему ты решил добавить в раздел "статьи" да и еще для новичков.
Почему не понял? Да потому что:
1. Ты ничего толком не объяснил.
2. Ты взял чужой код и добавил туда ОДНУ свою строчку.

Что следует сделать:
1. Распиши все подробно
2. Продемонстрируй с скриншотами и прочим ( чтоб придать красивый внешний вид )*


Так же название вообще не внятное "Консоль и ДЛЛ". Можно назвать было к примеру "Вывод данных DLL в консоль".

Если тебе интересно добавить статью то сделай все как написал чуть выше. А тему я перенесу в "Быстрая информация"

 

* - многие люди читают статьи выбирая их по содержанию сопровождающиеся картинками \ видео.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
37 минут назад, what228 сказал:

А тему я перенесу в "Быстрая информация"

хорошо , перенеси статью, я позже выложу по подробней(новою)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Скрытый текст

#include <Windows.h>
#include <iostream>
#include <TlHelp32.h>
#include <string>
#include <math.h>
using namespace std;


bool __stdcall DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) //Ф-я которая заработает при инжекте длл
{
	if (dwReason == DLL_PROCESS_ATTACH) //Делаем свитч причины вызова, оставляем только аттач
	{
		DisableThreadLibraryCalls(hInstance); //Убираем аттач и деаттач  оповещения (Хотя их вроде и так нет)
		CreateThread(nullptr, 0, reinterpret_cast<LPTHREAD_START_ROUTINE>(MainLoop), hInstance, 0, nullptr); //Создаем свой поток в котором будет наша ф-я.
  		//Кастим поток в LPTHREAD_START_ROUTINE через reinterpret_cast. Можно и обычно (LPTHREAD_START_ROUTINE)
  		//MainLoop Наш основной метод который вызовется при инжекте длл в процесс
	}
	return true;
}
  
  void MainLoop(HMODULE hModule)
{
		AllocConsole(); //Инициализируем ввод и вывод
		freopen("CONOUT$", "w", stdout); //Перенаправляем вывод в консоль
		printf("TestMessage"); //Пишем в консольку любое значение и прочее, что вам необходимо
		system("cls"); //Очищаем консольку
  		//TODO Your Mega Hack
	}
}

Готовый результат

Изменено пользователем roma91212
Исправил положение коммента

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, uhx сказал:

@roma91212 imgui тестишь?)

Угу, только ресайз не работает), поможешь?)

Пс сейчас в лс отпишу

Изменено пользователем roma91212

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, roma91212 сказал:

Угу, только ресайз не работает), поможешь?)

Возьми какой-нибудь пример и разбери) По крайней мере так делают все, когда не получается что-то заставить работать)

А у меня времени к сожалению не так много, чтоб еще и с этим разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В данном топике никто не постил уже 4 месяца. Пости здесь только если твой вопрос точно совпадает с темой данного топика.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.