Часто возникает необходимость пропатчить .Net приложение без модификации кода на диске (к примеру, если приложение упаковано или подписано). Дело не хитрое, и основной материал по этой теме собран =>> тут <<=. В принципе все расписано подробно и понятно, однако, для тех, кто пишет на delphi практической пользы от этого материала мало. В примерах используются куча сишных структур, которые возьмется переписывать под delphi разве только что сумасшедший. Поэтому представляю Вам небольшой примерчик, как без сишных заголовочных файлов написать патчер для .Net приложения.
Читать далее
Delphi (Lazarus)
Работа с криптобиблиотекой СКЗИ «Верба» через wbotho.dll
Библиотека wbotho.dll (wboth.dll) есть в дистрибутиве Вербы. Wboth.pas для работы с библиотекой из Delphi (Lazarus) вы можете скачать =>> тут <<= (версия может быть и не самая последняя, но зато рабочая)
Примеры использования:
Быстрый алгоритм поиска в памяти по хешу с использованием сигнатуры
Выдрано из исходников программы DecomAs от PEKill:
Допускается использовать сигнатуры со знаком ‘?’ если неизвестен какой либо байт в сигнатуре: Читать далее
Dll inject в приложение VB. Заполнение формы чужого приложения написанного на VB.
В предыдущем посте я писал про то, как сделать Proxy Dll. Теперь давайте рассмотрим аспект применения такой dll. Мне была поставлена задача заполнить форму приложения, написанного на VB, своими значениями. Исходники к приложению давно утеряны, а значит это как раз случай proxy dll. В качестве dll была выбрана библиотека интерпретатора бейсика msvbvm60. Пример проекта для изучения Вы можете взять => тут <=.
Как написать Proxy Dll?
Очень часто возникает необходимость расширить функционал EXE файла, исходники к которому давно утеряны. Для того что бы это сделать без долгого и нудного патча EXE файла на ассемблере, можно сделать Proxy Dll, которая в свою очередь написана на языке высокого уровня. Proxy Dll — это Dll файл который загружается в адресное пространство целевой программы и делает ее доступной для патча. Как правило, такая Dll имеет имя системной Dll из папки Windows или Windows32 и загружается целевой программой в любом случае для работы. Из-за особенностей Windows, которая ищет сначала нужные dll в папке программы, а только потом в папках Windows, мы имеем возможность сделать Proxy Dll, которая загрузит основную Dll и пропатчит программу для нужного нам функционала.