FE23  LOOCH  DISASM

ДИЗАССЕМБЛЕР
ДЛЯ ИССЛЕДОВАНИЯ ПРОГРАММ

(empty)
Главная Загрузка Инструкция Команды x86 Карта сайта

Новости сайта

12 июня 2011
Выложены страницы приложения к сайту
"Справочник по командам процессоров x86"

Новости сайта

22 января 2011
Добавлен небольшой рассказ
"История появления программы FE23"

 

ГЛАВНАЯ СТРАНИЦА


Итак, еще один дизассемблер. Причем он еще и интерактивный. Но эта программа - это не просто дизассемблер. Это большая программа для исследования программ. А собственно дизассемблер занимает в ней менее одной десятой части ...



1. Основы программы FE23 Looch Disasm


Основная особенность дизассемблирования (дизасма) в программе FE23, заключается в том, что процесс дизасма выполняется по лучам.

ЛУЧ - это сокращение от "Линейный УЧасток" - участок исполняемых кодов, в котором нет команд передачи управления. Термин "луч" - не новый, он был хорошо известен еще в 1960-х годах. Это слово появилось в советских книгах по программированию намного раньше, чем слово "ассемблер", не говоря уже о слове "дизассемблер".

В современной программе FE23 понятие "луч" немного скорректировано. Считается, что команда CALL как бы не передает управление, поскольку управление возвращается к команде, следующей сразу за командой CALL.

Подробнее о лучах и о принципах выполнения дизасма по лучам рассказано на странице   "Основные понятия".


При первом проходе дизасма программа собирает данные по исследуемому файлу, составляет списки лучей и процедур. На этом этапе обычно требуется помощь пользователя, программа не сумеет самостоятельно найти и пройти все процедуры, она сможет это сделать только в самых простых случаях, например, когда исследуемый файл является консольной программой.

Во время первого прохода дизасма накапливаются данные об исследуемом файле. Основу этих данных составляют списки лучей и процедур.

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


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

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

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

Таким образом, в программе FE23 всего есть три разных вида дизасма:

  • первый проход дизасма,
  • дизасм по готовым лучам,
  • сплошной дизасм.


2. Другие возможности программы


Программа FE23 "знает", как построены файлы "win32 PE". Для таких файлов можно получить распечатки для заголовка PE файла с обозначением всех параметров заголовка. А также таблицы директорий и секций исполняемого файла, таблицы функций импорта и функций экспорта.


Для секций PE файла программа хорошо умеет разбираться с адресами. В тех случаях, когда пользователю потребуется задать конкретный адрес, он сможет это сделать в трех разных видах - задать или адрес RVA (относительный виртуальный адрес), или виртуальный адрес (в этих адресах работает исследуемая программа), или адрес по EXE файлу (индекс по файлу, начиная с нуля).


В программе FE23 есть особая форма отображения содержимого исследуемого файла - это "Обзорный экран". На обзорном экране можно наглядно увидеть все секции файла (для PE файлов), расположение областей процедур внутри секций, лучи внутри процедур и ассемблерный текст для лучей.

После выполнения первого прохода дизасма, пользователь сможет увидеть на обзорном экране, как расположены процедуры внутри исследуемого файла. Кроме того, сразу будет видно, какие области исследуемого файла еще не пройдены дизасмом.

На обзорном экране есть одновременно две системы адресации - адрес (индекс) по EXE файлу и виртуальный адрес исследуемой программы.

Подробнее обо всем этом можно посмотреть на странице   "Обзорный экран".   Там же есть картинки (скриншоты).


В программе FE23 есть еще и такая полезная возможность - для каждой процедуры можно получить графическую схему лучей, где будут наглядно показаны все переходы между лучами и все вызовы процедур. По сути дела, это графическая блок схема, которая очень помогает разобраться с логикой, заложенной в процедуре.

Примеры распечаток с графической схемой можно посмотреть на странице   "Быстрый старт. Урок второй".


В программе FE23 предусмотрены средства сохранения информации, накопленной при изучении исследуемого файла. Для этого служат "работа в проекте" и "командный файл".

Работа в проекте отличается от работы без создания проекта только тем, что при работе в проекте можно сохранить все накопленные данные. Прежде всего - это данные о лучах и процедурах.

Подробнее смотрите на странице   "Работа с проектами".

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

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

Подробнее смотрите на странице   "Командный файл".


3. Еще некоторые подробности


Дизассемблер может работать в режимах "16 бит" и "32 бит".


Программа сделана для операционной системы MS Windows, начиная от MS Windows 2000.


Интерфейс программы сделан на двух языках - русском и английском.

В русскоязычном варианте использовано много английских слов. Главное меню программы сделано только на английском. Предполагается, что пользователь, занимающийся исследованием программ, знает достаточно много отдельных английских слов, даже если он совсем не знает английский язык.


Программа FE23 получилась отнюдь не простой для использования. Поскольку и работу она выполняет далеко не простую. Так что для этой программы пришлось готовить длинную инструкцию. И хочется надеяться, что пользователь программы с этой инструкцией ознакомится, хотя бы бегло.

Инструкция для программы FE23 подготовлена в виде файлов HTML, читать ее можно через любой броузер.

Инструкция сейчас есть только на русском языке.


Работа над программой FE23 еще не закончена. Но было решено, что программа уже доведена до такого уровня, когда ее можно показывать и предлагать. Программа уже может принести пользу и рассказать любознательным исследователям много интересного.

В программе еще не все полностью доделано из того, что обязательно нужно доделать. И не сделано многое из того, что было задумано. Но у автора пока есть возможность продолжать работу над программой.

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


Загрузить программу можно со страницы   "Загрузка".

Перед тем, как скачивать программу, загляните на страницу   "Текущее состояние разработки".


Программа распространяется бесплатно.




Все страницы инструкции

Основные понятия
Главное меню программы
Обзорный экран
Командный файл
Работа с проектами
 
Быстрый старт. Урок первый
Быстрый старт. Урок второй
Быстрый старт. Урок третий
 
Файлы, используемые в программе
Протокол работы и распечатки
Настройки дизасма и арифметика адресов

Приложение
Справочник по командам процессоров x86

Главная страница справочника x86



Главная Загрузка Инструкция Команды x86 Карта сайта


  Rambler's Top100
Copyright (C) FE23 Looch Disasm, 2010
File          - disa21.htm
File created  - 11 Apr 2010
Last modified - 12 Jun 2011
Hosted by uCoz