IT-Блог о программировании и операционных системах

Показаны сообщения с ярлыком Ассемблер. Показать все сообщения
Показаны сообщения с ярлыком Ассемблер. Показать все сообщения

Внедрение своей DLL в среду Delphi

7 комментариев:

Данная заметка, является логическим продолжением предыдущего материала по расширению возможностей IDE. На этот раз мы внедрим в среду свою DLL-библиотеку. Для чего это можно применить? Хороший вопрос! Если честно – я пока и сам не знаю. Но надеюсь, что по мере написания данного материала, некая шальная мысля ударит в мою голову. А пока, давайте будем расценивать данную статью просто как очередную авторскую заметку, с его мыслями и соображениями. Итак, как всё будет происходить? Мы напишем некую DLL, которая будет выполнять некие полезные (?) действия, перед стартом среды.

Итак, первым делом нам нужно написать саму библиотеку. Я долго не мог придумать, что такого полезного она будет делать и моей фантазии хватило только на то, чтобы она позволяла нам выбирать, какие мастера загружать вместе со средой. То есть, перед стартом среды, появляется некое окно, в котором мы можем выбирать, какие визарды загружать, а какие нет. Это может пригодиться например при разработке подобных мастеров, вернее во время их отладки. Например если какой либо новый визард будет пестрить ошибками во время загрузки IDE, тем самым не давая ей нормально работать – мы сможем его отключить, очень удобным образом.

Отладка Delphi-приложений в OllyDbg

14 комментариев:
Отличная всё таки вещь – привычка. Нет, я не про вредные привычки говорю, не переживайте, я имею ввиду правильные, профессиональные привычки. Пить и курить безусловно вредно, а вот использовать совместно прекрасные программные средства – нисколько, одна только польза. Почему именно в Olly, если есть прекрасный интегрированный в среду Delphi отладчик? Нет, друзья мои, я не пытаюсь сказать, что штатный отладчик плох, или не справляется со своими обязанностями, ни в коем случаи, просто, это дело привычки. И чтоб меня десять раз ударили томом Кнутта, если я такой один. И действительно, отладчик Olly приобрёл большую популярность как среди программистов, так и среди любителей покопаться в кишках некой платной утилиты. Ещё бы: куча возможностей, удобство использования, куча плагинов в конце концов, всё это делает отладчик Olly прекрасным инструментом для любого мало-мальски профессионального разработчика. Так же скажу, что данная заметка больше будет интересна тем программистам, которые не используют OllyDbg, но хотели бы познакомиться с этим инструментом поближе.
Предвкушаю шквал вопросов, летящих в мою сторону. Как нам, Delphi разработчикам отлаживать программу, если эта Olly просто пестрит ассемблерными инструкциями! Где наш нормальный паскалевский код? Секундочку! А разве в дельфовом отладчике нет окна CPU, с такими-же инструкциями? Есть. Да и окошко с нормальным исходником там тоже имеется, его просто нужно включить. Как, читаем дальше.

Проверка валидности PE-файла

Комментариев нет:
Автор: Goppit / ARTeam [www.accessroot.com]
Перевод: Rob [www.delphiday.blogspot.com]

В этом туториале мы напишем простое приложение, которое использует штатное диалоговое окно выбора, для открытия файлов и выводит информацию о том, является ли выбранный файл правильным PE или нет. Код приложения основан на втором туториале от Iczelion, но я несколько изменил его, для пущей простоты и наглядности и выдрал SEH.

Обычно, для проверки того, что файл является правильным PE, нам необходимо проверить два условия. Необходимо, чтобы текст в начале DOS заголовка имел значение “MZ” и в конце самого DOS заголовка имелся указатель на заголовок PE, который в свою очередь начинается с “PE”, который завершается двумя нулевыми байтами. Эти сигнатуры объявлены в инклуднике windows.inc и имеют следующий вид:

IMAGE_DOS_SIGNATURE   equ   5A4Dh        ("MZ")
IMAGE_NT_SIGNATURE    equ   00004550h    ("PE" 00 00)

Взлом Delphi компонент на примере TAdvMemo от TMS Software

9 комментариев:
Существует огромное множество нужных и не очень компонентов. Красивых и довольно аскетичных, бесплатных и платных. Платные компоненты как правило, функциональны, востребованы в большинстве случаев, красиво выглядят, как с точки зрения кода, так и интерфейса. Оно и правильно, ведь они созданы для того, чтобы быть проданными. Одним из таких компонентов является TAdvMemo, от конторы TMS Software. Если вы не сталкивались с ним, то советую вам прочитать мой мини-обзор на эту тему. Компонент действительно заслуживает внимания.

Простой шаблон кейгена

Комментариев нет:
Автор: Goppit / ARTeam [www.accessroot.com]
Перевод: Rob [www.delphiday.blogspot.com]
Номер тьюториала: #6, Simple Keygen Template.

В этом уроке мы напишем простой кейген и добавим в него пример кода простой генерации ключа, которая в последствии может быть улучшена до настоящего алгоритма генерации выдранного из любого программного обеспечения. Так же мы добавим в кейген код который позволяет копировать наш готовый (сгенерированный ключ ) в буффер обмена windows.

Скелет программы на ассемблере

Комментариев нет:
Автор: Goppit / ARTeam [www.accessroot.com]
Перевод: Rob [www.delphiday.blogspot.com]
Номер тьюториала: #1, Basic Assembly Program Skeleton.

Использование WinAsm

На следующем скриншоте запечатлёна часть интерфейса среды WinASM. Исходный код, который вы набираете, появляется в левой части среды – в панели исходного кода. Панель обзора отображает файлы, которые в свою очередь являются частью текущего проекта (файлы исходного кода - *.asm, инклудники - *.inc, файлы ресурсов, и т.д). Кнопка “Go All” (на скриншоте указана курсором мыши) соберёт, слинкует и запустит на выполнение результирующий exe файл. Комманды ассемблера и линковщика с результатами компиляции и компоновки вы можете лицезреть в нижнем окне – в панели вывода.