|
Дело в том, что значительное число констант
программ являются малыми числами, положительными (т.е.
начинающихся с 0), либо отрицательными (т.е. |
антивирус |
|
|
начинающихся с
F). Если будет обнаружена последовательность байтов,
удовлетворяющая этим требованиям, то весьма вероятно, что
найдена область памяти, используемая для хранения одного или
двухбайтовых чисел. |
перевод с русского на английский |
|
{img3} |
отказоустойчивые вычислительные системы |
|
Эта часть программы не может содержать
команды.
Пытаясь осмыслить структуру листинга, выдаваемого
деассемблером, необходимо иметь в виду следующие положения. |
антивирус |
|
|
panda, текстовые редакторы, Архиваторы, avast antivirus, 1с бухгалтерия, .
словарь
|
После этого все идет
гладко, по крайней мере в сторону увеличения адресов. (В
обратную сторону это приходится делать вручную).
Выполняя деассемблирование программы необходимо
внимательно следить за данными (это нечто противоположное
командам), которые деассемблер превращает в причудливые
ассемблерные конструкции. Основной и наиболее быстрый способ
обнаружения данных состоит в использовании команды "D", для
представления информации в шестнадцатеричном коде и коде
ASCII. Здесь в первую очередь следует обращать внимание на
самые очевидные вещи - содержательно осмысленную
последовательность символов ASCII (фразы), такую, например,
как "неверный вызов функции". После этого можно приступать к
выявлению более тонких признаков данных.
В обычных программах (т.е. в программах, размещаемых вне
ПЗУ) наличие полей, заполненных шестнадцатеричными нулями
является признаком рабочей области данных, то есть такой
области, которая будет использоваться в ходе выполнения
программы; в процессе деассемблирования данные этой области
неактуальны. ПЗУ не может использоваться для хранения рабочих
данных, поскольку запись в эту память невозможна. Таким
образом, наличие полей, состоящих из шестнадцатеричных нулей
нетипично для ПЗУ-программ.
Признаком возможного наличия данных являются байты или
двухбайтовые слова, для которых второй или старший байт
содержит 0 или F.
|
|
|