Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
siriusED
19 / 19 / 3
Регистрация: 20.05.2010
Сообщений: 500
#1

Передача или редактирование данных в Dll - C++

17.08.2014, 03:43. Просмотров 634. Ответов 11
Метки нет (Все метки)

Во общем ситуация такая:
Инжектю я dll'ку в процесс, и она там в цыкле выводит на пример Messagebox(...), вот как я могу изменить выводимый текст в выводимом dll;кой Messagebox'е? Я пока нубик по плюсам, хотел бы узнать как это делается и возможно ли это во обще?

Добавлено через 5 часов 50 минут
Все еще актуально...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 03:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача или редактирование данных в Dll (C++):

Передача данных из C в php.(или MySQL(i)) и обратно; - C++
Привет всем.Как можно передать данные из php в С и обратное?Из С можно сразу в БД MySQL(i);

Редактирование dll - C++
Здравствуйте. Если честно не знаю в какой раздел обратиться. Решил к вам. Для одной из программ (ГИС Панорама) можно устанавливать...

Редактирование DLL - C++
Вот из-за этого ll-файла постоянно вылезает окошко с надписью mde by sst311212 и кнопкой ок. Может быть кто-нибудь найдет решение.

Передача ссылки в функцию в DLL - C++
Здравствуйте. По этому мануалу сделал DLL https://msdn.microsoft.com/ru-ru/library/ms235636.aspx Возникла проблема с передачей...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями? - C++
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете искал 64-битные версии ogg.dll, vorbis.dll...

Открыть или отредактировать Dll - C++
Всем привет, мне нужно просто открыть DLL (если конечно такое возможно) и изменить там пару чисел и букв. Саму dll создавал не я, а какой...

11
Brendon
Заблокирован
17.08.2014, 04:45 #2
Ну так DLL-ку ты писал? Если да - то просто поменяй текст в коде, если не ты, то никак ты не изменишь текст, хотя...Если бы ты был не
Цитата Сообщение от siriusED Посмотреть сообщение
Я пока нубик по плюсам
, то для изменения текста ты бы задействовал CheatEngine, либо набор SoftIce + IDA Pro
0
siriusED
19 / 19 / 3
Регистрация: 20.05.2010
Сообщений: 500
18.08.2014, 13:09  [ТС] #3
Да нет же, все совсем не так... dll'ку писал я, но я не хочу что б она выводила статический текст, а динамически могла как то принимать этот текст при чом из совсем другого приложения принимать...

Например: Пишу приложение на C#, инжектю мою dll'ку в процесс "someproc.exe", запускаю свое приложение написанное на C#, ввожу в поле нужный мне текст "OneTwoThre", dll'ка принимает этот текст и в окне "someproc.exe" выводит его - Messagebox("OneTwoThre"), меняю текст на другой, жму применить, и dll'ка выводит уже другой текст...

Вот так мне надо...
0
WhiteP
606 / 204 / 23
Регистрация: 20.11.2012
Сообщений: 426
18.08.2014, 17:05 #4
Читай про обмен данными между процессами (и синхронизацию). Способов много (проекции, пайпы etc.). Тут по сути клиент-сервер (читатель-писатель).
0
DrOffset
7377 / 4454 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
18.08.2014, 17:51 #5
Цитата Сообщение от siriusED Посмотреть сообщение
Например: Пишу приложение на C#, инжектю мою dll'ку в процесс "someproc.exe", запускаю свое приложение написанное на C#, ввожу в поле нужный мне текст "OneTwoThre", dll'ка принимает этот текст и в окне "someproc.exe" выводит его - Messagebox("OneTwoThre"), меняю текст на другой, жму применить, и dll'ка выводит уже другой текст...
Делаешь в dll экспортируемую функцию, принимающую твою строку, эта функция будет показывать текст в MessageBox, который ты передал в нее. Если все так, как ты написал, то это просто.
0
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
18.08.2014, 19:22 #6
Цитата Сообщение от siriusED Посмотреть сообщение
Да нет же, все совсем не так... dll'ку писал я, но я не хочу что б она выводила статический текст, а динамически могла как то принимать этот текст при чом из совсем другого приложения принимать...
Например: Пишу приложение на C#, инжектю мою dll'ку в процесс "someproc.exe", запускаю свое приложение написанное на C#, ввожу в поле нужный мне текст "OneTwoThre", dll'ка принимает этот текст и в окне "someproc.exe" выводит его - Messagebox("OneTwoThre"), меняю текст на другой, жму применить, и dll'ка выводит уже другой текст...
Вот так мне надо...
Смотри в сторону PIPE
Цитата Сообщение от DrOffset Посмотреть сообщение
Делаешь в dll экспортируемую функцию, принимающую твою строку, эта функция будет показывать текст в MessageBox, который ты передал в нее. Если все так, как ты написал, то это просто.
И как ты себе это представляешь? dll находится в адресном пространстве приложения которое и понятия не имеет о ней. В теории то можно так сделать, но это нужно иметь себе мозг с вызовами CreateRemoteThread.. имхо бредом пахнет.

Не по теме:

то для изменения текста ты бы задействовал CheatEngine, либо набор SoftIce + IDA Pro
да именно SoftIce... нет слов.

0
Brendon
Заблокирован
18.08.2014, 19:59 #7
Цитата Сообщение от ISergey Посмотреть сообщение
И как ты себе это представляешь? dll находится в адресном пространстве приложения которое и понятия не имеет о ней
Что за чушь? Одна простая экспортная функция DLL-ки, которая будет выводить месдж бокс, в чём фикус то ? Тут наверное проблема в подключения NativeDLL в софт на C#. Но та же вроде какие - то CLI есть ...
0
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
18.08.2014, 20:05 #8
Цитата Сообщение от Brendon Посмотреть сообщение
Что за чушь? Одна простая экспортная функция DLL-ки, которая будет выводить месдж бокс, в чём фикус то ? Тут наверное проблема в подключения NativeDLL в софт на C#. Но та же вроде какие - то CLI есть ...
Цитата Сообщение от siriusED Посмотреть сообщение
Инжектю я dll'ку в процесс
Тоесть dll была внедрена к примеру в процесс explorer.exe, этот процесс понятия не имеет что ему что то внедрили и вызвать просто так нужную функцию он не может..
0
DrOffset
18.08.2014, 20:08
  #9

Не по теме:

Цитата Сообщение от ISergey Посмотреть сообщение
имхо бредом пахнет.
Ну это был бы не бред, если бы я сразу рассмотрел слово "инжект"
А, с твоей стороны все-таки было бы вежливо сперва узнать, что я имел в виду, прежде чем делать далеко идущие выводы. Хотя по сути твой комментарий верен.
У автора прошу прощения.

0
siriusED
19 / 19 / 3
Регистрация: 20.05.2010
Сообщений: 500
18.08.2014, 22:46  [ТС] #10
Да какой меседж бокс.. я его чисто для примера взял, там в dll'ке реализован D3D хук и процесс куда я инжекчу эту dll'ку - это DirectX-приложение(например игра какая нибудь). Вот хук выводит просто статический текст(забитый в переменной text в dll'ке), а мне нужно что б эта dll'ка каким то образом могла принимать текст для вывода а не просто статический рисовать... Вот что мне нужно на самом деле...
При чом dll'ка написана на c++ а передавать ей текст я хочу из прилодения написанного на c#.

Добавлено через 13 минут
...
0
siriusED
19 / 19 / 3
Регистрация: 20.05.2010
Сообщений: 500
20.08.2014, 03:23  [ТС] #11
Решил сам, через обьявление переменных в дллке глобальными в виртуальном адресном пространстве этой дллки, всем спасибо.
0
Alex5
20.08.2014, 14:05     Передача или редактирование данных в Dll
  #12

Не по теме:


Цитата Сообщение от siriusED Посмотреть сообщение
Во общем ситуация такая
в общем

Цитата Сообщение от siriusED Посмотреть сообщение
она там в цикле выводит
Цитата Сообщение от siriusED Посмотреть сообщение
возможно ли это вообще
вообще

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2014, 14:05
Привет! Вот еще темы с ответами:

Передача по ссылке или указателю? - C++
В каких случаях лучше передавать в функцию ссылки, а в каких указатели?

Как определить разрядность .EXE или .DLL? - C++
Как определить разрядность .EXE или .DLL? WINAPI функций вроде для етого нет. Я делаю сортировщик dll файлов. Остановился на том, што...

Передача строки в конструктор или в функцию - C++
Как передать в конструктор класса строку без массивов, да и в функцию как передать строку и дальше действия над ней производить?А то в...

Передача в функцию по ссылке или указателю - C++
Гуру C++, как предпочтительнее делать?:) void f1(int &a) { a = 5; } void f2(int * a) {


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
20.08.2014, 14:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.