Top.Mail.Ru

Как изменить код программы без исходника?

Иногда случаются такие ситуации, когда нужно внести изменения в программу, но
исходный код отсутствует. Как тогда изменить код программы?
Решение воздействовать на код программы в отсутствие ее исходного кода
случается довольно часто и, в основном, этому предшествуют 2 основные причины:

  • вы потеряли исходный код;
  • его у вас никогда и не было, но хотите доработать какую-то программу.

Итак, есть скомпилированный файл, но нет исходного кода, как тогда изменить код
программы? На помощь может прийти процесс декомпиляции. Почему «может»?
Потому что в некоторых случаях и этот процесс бессилен. Плюс, возможно вы хотите
изменить исходный код программы, который специально защищен. В таком случае
программы-декомпиляторы могут оказаться бессильными. Плюс, многое зависит от
конкретного декомпилятора и языка программирования, на котором написана ваша
программа. В некоторых случаях декомпилятор выдает исходный код, в котором вы
не сможете найти нужный участок кода для его изменения.
В общем, «в таком положении» – без отсутствия исходного кода, вероятность, что
что-то получится невысокая, но она есть. А раз есть вероятность, значит можно
пробовать.

Как изменить код программы без исходников?

Первым в этом случае вам может помочь процесс декомпиляции. Декомпиляция —
это способ создания исходного кода программного обеспечения на том языке, на
котором оно было разработана. То есть, компиляция — это когда исходный код
программного обеспечения преобразуется в машинный код, а декомпиляция — это
обратный процесс.
Декомпиляция в некоторых случаях позволяет изменить код программы без
исходников, однако, нужно понимать, что полностью восстановить исходный код
программы может не получиться. Декомпилятор вообще может вам выдать
непонятный результат и вы просто не будете знать что с этим результатом делать. На
практике получается, что чем «меньше» программа, тем качественней проходит
процесс декомпиляции и наоборот — высоконагруженные программы тяжело
декомпилируются.
Декомпиляцию возможно осуществить при помощи специализированных программ:

  1. VB Decompiler;
  2. ReFox;
  3. DeDe;
  4. EMS Source Rescuer;
  5. PEID;
  6. и др.

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

Как изменить код программы без декомпиляции?

В качестве альтернативного метода, как изменить код программы без исходника
выступает изучение ассемблера, в частности раздела «реверс-инженерия», чтобы
уметь воздействовать на машинный код. Да, это сложно, так как потребует долгого и
упорного изучения, но это будет самый верный подход. Ведь в этом случае, вы
будете знать, на какой байт вам нужно воздействовать, чтобы произвести изменения
в машинном коде программе.
В качестве вспомогательного инструмента в этом случае будут программы OllyDbg и
IdaPRO.

Возможно вам будет интересно почитать статью “Quality control: что это такое? Терминология”

Заключение

Изменить код программы без исходника возможно только одним из описанных выше
способов:

  • используя декомпилятор;
  • изучая ассемблер.

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

Text.ru - 100.00%
Поделись статьей с друзьями!

Добавить комментарий