FE23  LOOCH  DISASM

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

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

 

БЫСТРЫЙ СТАРТ

УРОК ПЕРВЫЙ


Содержание


На этой странице рассказано, по возможности кратко, как начинать знакомиться с программой.

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


1. Подготовка программы FE23 к работе

Программа состоит из одного файла. В этой инструкции мы будем полагать, что имя этого файла ( fe23.exe ). Хотя имя того файла, которым Вы располагаете, будет, скорей всего, содержать еще и номер версии. Например, для версии 1.0 это будет файл ( fe23_10.exe ).

Отдельного этапа инсталляции для программы не требуется, файл ( fe23.exe ) можно сразу запускать для полноценной работы.

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

Таким образом, для подготовки к работе Вам нужно проделать следующее:

  • Выберите (создайте) на Вашем жестком диске рабочую директорию для программы FE23.

  • Разместите файл программы ( fe23.exe ) на Вашем жестком диске так, как Вам удобнее. Например, это может быть та директория, которую Вы создали специально для программы FE23 или, быть может, та директория, где у Вас размещены разные утилиты.

  • Если хотите, то создайте запускалку (ярлык, shortcut) для удобного запуска программы. Поместите эту запускалку в Ваше стартовое меню "ПУСК" или поместите иконку на экран на Ваш рабочий стол (desktop). Создавая запускалку, не забудьте правильно указать рабочую директорию. (Вы можете не создавать запускалку и просто запустить программу FE23 с помощью Вашего любимого файлового менеджера).

И это все. Теперь можно запускать программу.


2. Запуск программы

После запуска программы на экране появится главное окно программы FE23, которое выглядит так:

FE23 - Главное окно

Простое окно для вывода текстов, ничего лишнего, никаких фантиков - украшений.

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

Если программа вывела все сообщения на английском языке, а Вы предпочитаете русский, то найдите в главном меню пункт ( Options --> English/Russian --> Russian ). После этого закройте задачу FE23 и заново ее запустите, чтобы получить начальную распечатку на русском языке.

Разберем, что написано в протоколе в первых строках, сразу после запуска задачи. Здесь нет ни одной ненужной строчки, кроме, быть может, строчки с названием программы.


    FE23 Looch Disasm 
    Версия: 1.0  Сборка: 02.06.2010

НЕТ. Отключен вывод протокола в файл 

Текущая рабочая директория
    H:\FE\C\23\PROBA

В директории нет ни одного проекта 

Имя последнего проекта 
    (неизвестно) 

Имя последнего исследуемого файла 
    (неизвестно) 

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

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

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

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

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


3. Общие настройки

Вы уже знаете, что можно установить английский или русский язык - по команде меню ( Options --> English/Russian ). Инструкция к программе пока есть только на русском языке.

Вы можете изменить шрифт, который используется в окнах программы - команда меню ( Options --> Fonts ). При выборе шрифта выбирайте только такие шрифты, в которых все символы имеют одинаковую ширину (моноширинные шрифты), такие, как, например, Courier New. Иначе таблицы на распечатках получатся кривыми.

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

Все сделанные настройки программа запоминает. В том числе запоминает размер и положение на экране для главного окна.

На этом мы закончили всю предварительную подготовку и приступаем к основному делу - начинаем работать с программой.


4. Задание имени исследуемого файла

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

Мы не рискуем при этом испортить файл ( fe23.exe ). У программы FE23 нет никаких возможностей вносить изменения в исследуемый файл. Она открывает исследуемый файл только для чтения.

Для задания имени исследуемого файла выберите в главном меню программы пункт ( File --> File to Exam ). По этой команде появится диалог для задания имени файла.

Задайте в этом диалоге имя исполняемого файла программы FE23, именно того файла, который у Вас имеется, например, ( fe23_10.exe ) для версии 1.0. Если Ваш "исследуемый файл" расположен в текущей рабочей директории программы FE23, то можно не указывать полный путь на диске к этому файлу.

Обратите внимание, что при задании имени файла в этом диалоге, программа FE23 только запоминает заданное имя, но еще ничего не делает с файлом, не открывает файл и не начинает его исследование. Это будет так называемое дежурное имя файла. Когда Вы попросите программу подготовить исследуемый файл к работе, программа будет использовать это дежурное имя файла.

Чтобы посмотреть, какие дежурные имена файлов заданы в программе в данный момент, нужно дать из главного меню команду ( File --> Show File Names ). В ответ в главном окне появится вот такая распечатка:


Дежурные имена для файлов 

    Имя исследуемого файла 
        H:/FE/C/23/Release/fe23_10.exe

    Имя командного файла 
        (неизвестно) 

    Имя файла для вывода протокола 
        (неизвестно) 

Подробнее о дежурных именах файлов в программе FE23 можно прочитать на странице   "Файлы, используемые в программе".


5. Как посмотреть общие сведения о накопленных данных

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

Посмотреть общие сведения о накопленных данных можно по команде меню ( Show --> General Data ). Однако, если Вы прямо сейчас попробуете дать из главного меню эту команду, то Вы получите в ответ вот такую распечатку:


ОБЩИЕ СВЕДЕНИЯ 

    Имя проекта           (---)
    Исследуемый Файл      (---)

      (других данных нет)

Понимать эту распечатку следует так:

  • В данный момент не проводится работа в составе некоторого проекта.

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

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


6. Подготовка исследуемого файла к работе

Для подготовки исследуемого файла к работе в имеется специальная команда в главном меню ( Task --> Exam Prepare ). Эта команда нам сейчас полезна в учебных целях. Но при практической работе с программой FE23 эта команда обычно не используется. Так как по всем тем командам меню, для работы которых сначала требуется подготовить исследуемый файл, такая подготовка выполняется автоматически.

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

Программа делит все файлы на следующие четыре типа:

  • Это не исполняемый файл - нет сигнатуры MZ
  • Это исполняемый файл - DOS - 16 бит
  • Это исполняемый файл - Win32 неизвестного типа
  • Это исполняемый файл - Win32 - PE

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

Можно сказать, что программа FE23 "знает" только файлы "Win32 PE" и ничего не знает про файлы других типов. Однако, выполнять дизасм можно для любых файлов.

Итак, мы делаем подготовку исследуемого файла - даем в меню команду (Task --> Exam Prepare ). В ответ мы получаем вот такую распечатку в протоколе в главном окне программы.


НАЧАЛЬНАЯ ПОДГОТОВКА ИССЛЕДУЕМОГО ФАЙЛА 

Открыт исследуемый файл 

    H:/FE/C/23/Release/fe23_10.exe
    Это исполняемый файл - Win32 - PE 
    Размер файла              = 0x0002B400  (177152) 

    Entry point virt address  = 0x00417C00 
    Entry point file index    = 0x00017000 
    Image base                = 0x00400000 
    Mode                      = 32 bits 

Таблица секций исследуемого файла 

          Raw_Addr  Raw_Size  RVA_Addr  RVA_Size  Vir_Addr  Type 
<Header>  00000000  00000400    ----      ----      ----    ---- 
.text     00000400  0001C400  00001000  0001C306  00401000  code 
.rdata    0001C800  00000400  0001E000  000003B3  0041E000  data 
.data     0001CC00  0000C400  0001F000  0000E368  0041F000  data 
.idata    00029000  00000E00  0002E000  00000C80  0042E000  data 
.rsrc     00029E00  00001600  0002F000  00001498  0042F000  data 
<EOF>     0002B400 

    Количество импортируемых функций           = 120
    Количество переходов JUMP на имп. функции  = 6

Подготовка исследуемого файла закончена 

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

Секции, имена которых взяты в уголковые скобки, это условные секции, добавленные программой FE23. Возможны два вида таких добавлений, это <Header> - участок кодов заголовка файла и <Yet_More> - участок кодов, который не входит ни в одну секцию (такое иногда наблюдается в конце файла).

Строчка <EOF> - это конец файла (end of file). Здесь показано значение индекса по файлу, следующее после последнего байта. Это значение совпадает с размером файла.

После того, как сделана подготовка иссл. файла, можно попробовать еще раз запросить общие сведения ( Show --> General Data ).


ОБЩИЕ СВЕДЕНИЯ 

    Имя проекта           (---)
    Исследуемый Файл      H:\FE\C\23\Release\fe23_10.exe

      (других данных нет)

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


7. Что можно узнать про исследуемый файл до начала дизассемблирования

Еще не начав дизассемблирование (дизасм) можно сразу познакомиться с PE заголовком исследуемого файла. Это отдельная полезная возможность ("фича") программы FE23.

В главном меню есть вот такие четыре команды:

  • ( Header --> General )
  • ( Header --> Directories )
  • ( Header --> Import )
  • ( Header --> Export )

Каждая команда из этой группы команд дает распечатку по своей части PE заголовка. Эти распечатки выводятся на экран в отдельные дополнительные окна.

Мы не станем здесь вопроизводить эти длинные распечатки. Посмотрите на них с помощью программы FE23.

Заметим, что исследуемом файле ( fe23.exe ) нет таблицы экспорта в PE заголовке.


Можно посмотреть на списки, которые программа FE23 заготовила перед началом дизасма.

Команда меню ( Show --> Import List ) печатает таблицу (список) импортируемых функций.

Эта распечатка существенно отличается от той таблицы импорта, которую можно получить по команде меню ( Header --> Import ). Данная таблица построена сразу по двум директориям PE заголовка, по директории импорта (Import Directory) и по директории IAT (Import Address Table).

Вот как эта таблица выглядит. Спиок большой, поэтому мы скопировали сюда только начало и конец этой распечатки.


    СПИСОК ИМПОРТИРУЕМЫХ ФУНКЦИЙ 

         IAT     Ordinal   DLL            Name 
   1   0042e26c   ----   ADVAPI32.dll   RegCloseKey
   2   0042e270   ----   ADVAPI32.dll   RegQueryValueExA
   3   0042e274   ----   ADVAPI32.dll   RegCreateKeyA
   4   0042e278   ----   ADVAPI32.dll   RegSetValueExA
   5   0042e280   ----   GDI32.dll      GetDeviceCaps
   6   0042e284   ----   GDI32.dll      GetTextMetricsA


 116   0042e444   ----   USER32.dll     SendMessageA
 117   0042e448   ----   USER32.dll     GetWindowWord
 118   0042e450   ----   comdlg32.dll   GetSaveFileNameA
 119   0042e454   ----   comdlg32.dll   GetOpenFileNameA
 120   0042e458   ----   comdlg32.dll   ChooseFontA

        Всего  120  импортируемых функций 

Колонка "IAT" в этой таблице - это адрес ячейки (двойное слово) в секции данных исследуемой программы. Через эту ячейку происходит вызов импортируемой функции.

Колонка "Ordinal" пустая, так как в данном случае все функции импортируются по именам, а не по номеру (ординалу).


Команда меню ( Show --> JUMP's Transit ) печатает результаты поиска по исследуемому файлу. Отыскиваются все команды JUMP, которые передают управление на импортируемые функции. Это другой способ вызова импортируемой функции.

Вот полная распечатка. Она совсем короткая.


    Список переходов JUMP на импортируемые функции 

Addr - адрес команды JUMP 
S/N  - порядковый номер по списку импортируемых функций 

       Addr       S/N  Ordinal   DLL            Name 
   1   00417210   120   ----   comdlg32.dll   ChooseFontA
   2   00417216   119   ----   comdlg32.dll   GetOpenFileNameA
   3   0041721c   118   ----   comdlg32.dll   GetSaveFileNameA
   4   0041b87d   039   ----   KERNEL32.dll   GetOEMCP
   5   0041b892   037   ----   KERNEL32.dll   GetACP
   6   0041d300   057   ----   KERNEL32.dll   RtlUnwind


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

Ответ на этот вопрос есть на странице:   "Протокол работы и распечатки".   Быть может Вам понравятся приведенные там советы.


8. Что можно увидеть на обзорном экране

Уже сейчас, еще до начала выполнения дизасма, можно посмотреть на "Обзорный экран". Это особый способ представления содержимого исследуемого файла.

О том, что такое обзорный экран и какая от него польза, можно посмотреть на странице   "Основные понятия".   Здесь изложены основные идеи обзорного экрана.

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

Одну из тех картинок мы воспроизведем и здесь. Если Вы прямо сейчас дадите из главного меню команду ( Survey --> Survey ), то появится вот такое новое окно:

Здесь показаны все секции для исследуемого файла ( fe23_10.exe ). А для секции исполняемых кодов уже заготовлена "Неизвестная область", из которой в дальнейшем будут выделяться области кодов для процедур.

Более подробный комментарий к этой картинке Вы сможете прочитать на той странице, откуда эта картинка была взята - на странице   "Обзорный экран".  


9. Итоги первого урока

Подводим итоги первого урока.

Мы запустили программу FE23 и немного с ней познакомились. И уже знаем, что эта программа больше, чем просто дизассемблер. А вот собственно дизассемблирование мы пока и не делали.

На втором уроке мы приступим к дизассемблированию. И проделаем интересные опыты.

Переходим к странице:
  "Быстрый старт. Урок второй".

 




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

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



Главная Загрузка Инструкция Карта сайта


  Rambler's Top100
Copyright (C) FE23 Looch Disasm, 2010
File          - disa24.htm
File created  - 27 Mar 2010
Last modified - 03 Jul 2010
Hosted by uCoz