Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
olialia
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 10
#1

Из локальной DLL сделать удалённую - Assembler

24.09.2014, 04:06. Просмотров 369. Ответов 10
Метки нет (Все метки)

В процессе своей работы программа .EXE обращается к DLL файлу.
Возможно ли .DLL файл вынести на удаленный сервер и перенаправлять все обращения от .exe к удаленному файлу DLL.
Так, чтобы при отключенном внешнем сервере работа удаленной .EXE была невозможна.
Очевидно, что это возможно сделать с помощью реверса:
1) Реверсим локальную работу .DLL, .EXE
2) Делаем новую .EXE с серверной логикой и сервер.
Но, может быть существует технология облегчающая подобные задачи? Этот вопрос скорее к Экспертам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2014, 04:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Из локальной DLL сделать удалённую (Assembler):

Нужно сделать серверную (Но не удалённую) БД в MySql и программку на Java для взаимодействия с ней
Проблема в следующем. Нужно сделать серверную (Но не удалённую) БД в MySql и...

Загрузка dll (net сборки) из локальной копии
Есть код, который использует System.Data.SQLite.dll. Она у меня установлена, в...

Пытаюсь сделать динамическую загрузку dll. Dll-библиотека не подает признаков жизни
Здравствуйте. У меня такое дело, я пытаюсь создать в своей программе...

Bass.dll, bass_fx.dll - как сделать, чтобы менялась только высота звука без скорости?
Как сделать, чтобы при изменении частоты потока скорость оставалась той же, то...

Не получается подключиться к базе локальной MS SQL и вопрос про mysql.data.dll
с Mysql все вышло а MS SQL меня убивает. Дико туплю мне кажется, но ничего не...

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием...

10
raxp
10180 / 6563 / 491
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
24.09.2014, 07:55 #2
...перепишите ее как CGI.

ASM тут причем или постим абы где?
0
olialia
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 10
24.09.2014, 09:28  [ТС] #3
Притом что сорсов нет. Исполняемые файлы.
А где мне запостить тему низкоуровневую?
0
Убежденный
Ушел с форума
Эксперт С++
15941 / 7252 / 1176
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
24.09.2014, 09:44 #4
Я бы пробовал сделать как-то так:
Вместо локальной dll подсовывается dll-заглушка с точно таким же
набором экспортов, которая общается с удаленным процессом
через любой подходящий транспорт, например TCP.
Реальная dll загружена в удаленный процесс, который обрабатывает
запросы от клиентов, вызывает ее функции и возвращает результат.
Разумеется, там должен быть механизм сериализации, который бы
поддерживал прозрачную работу с указателями несмотря на то, что
они находятся в адресных пространствах разных процессов.
Если исходников нет - то все печально, конечно, но не безнадежно.
0
Charles Kludge
Клюг
7641 / 3156 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
24.09.2014, 10:31 #5
Цитата Сообщение от Убежденный Посмотреть сообщение
которая общается с удаленным процессом
через любой подходящий транспорт, например TCP.
Слишком толсто. Внимательно почитав логику работы LoadLibrary(); можно выяснить, что в последнюю очередь .dll ищется в каталогах из переменной PATH - т.е. в нее добавляется UNC-путь в виде \\remote_server\path_to_dll и вопрос решён. Прога при загрузке будет немного тормозить, но...
0
olialia
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 10
24.09.2014, 11:07  [ТС] #6
Это не подойдет, потому что таким образом злоумышленник получит всю логику работы DLL, насколько я понимаю. Т.е произойдет просто загрузка DLL в память компьютера? А нужно чтоб вся логика DLL просчитывалась на сервере
0
Charles Kludge
Клюг
7641 / 3156 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
24.09.2014, 12:02 #7
Цитата Сообщение от olialia Посмотреть сообщение
А нужно чтоб вся логика DLL просчитывалась на сервере
Если в .dll нет мат.расчётов, то не спасёт. Пример - HASP-эмулятор, NetHASP эмулирует тоже.
0
raxp
10180 / 6563 / 491
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
24.09.2014, 19:45 #8
Притом что сорсов нет. Исполняемые файлы.
и какое отношение сей опус имеет к АСМу? Какая дикая логическая цепочка могла привести к этому выводу/

Если нет исходников, тогда действительно стоит реализовать две промежуточные обертки, одна симулятор текущей DLL с тем же именем, транслирующей локальные вызовы в сеть, а вторая обертка, реализующая прием-передачу сетевых данных и работающая поверх настоящей DLL, как предложил Убежденный.

Сетевой трафик между поддельной DLL у клиента и оберткой поверх настоящей на удаленной машине можно шифровать.

p.s.: однако есть нюанс - вы должны четко знать все экспортируемые вызовы и их параметры для текущей DLL.
0
olialia
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 10
25.09.2014, 00:13  [ТС] #9
ТАк к чему сей опус имеет отношение?? К Делфи может?
Реализовать можно все что угодно, вопрос как это сделать максимально просто. Автоматически в каком то софте, я так понимаю сделать это невозможно. Верно?
0
raxp
10180 / 6563 / 491
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
25.09.2014, 07:22 #10
Это конкретная индивидуальная задача, требующая отдельной разработки. Данный опус отнес бы к "Разработка и тестирование"/
0
olialia
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 10
28.09.2014, 13:45  [ТС] #11
У меня два средства для анализа: IDA PRO и Immunity Debuger. Программа успешно работает под этими средствами в режиме отладки и не вылетает. Как логировать в файл все вызовы , допустим, функции GetProcAddress с вызываемыми параметрами. Я так понимаю это называется трассировкой кода? Мне конкретная помощь нужна, конкретно в этих двух средствах. Или опишите чем вы пользуетесь и как это в вашем дебагере сделать. Спасибо.
0
28.09.2014, 13:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2014, 13:45
Привет! Вот еще темы с решениями:

Как сделать таблицу локальной?
В смысле писал писал я проект. Типа написал. Типа работает. А как сделать,...

Как сделать интернет по локальной сети
Темы такой не нашел, такая проблема, хочу сделать интернет по локальной сети,...

Можно ли из локальной переменной сделать глобальную?
Можно ли из локального переменного сделать глобальный? Если да, то как это...

Как сделать подключение к локальной БД Access?
К Локальной Базе данных? То есть у меня СУБД на 1 компе. В сети неск....


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

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

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