Що таке емулятор і як його зробити?

0
1852

емулятор

Отже, що ж таке емулятор? Це спеціальна програма, яка прикидається тим, чим вона насправді не є. Багато років тому існували різні комп'ютери - "ДВК", "Мікроша", "Правець", "Сінклер" і т.п. В юності багато людей провели з ними велику кількість часу, та не можна сказати, що даремно. Ще досі будуть цікаві багато із реалізованих тоді на цих комп'ютерах ідей. Не застали ті роки? Не біда. Є ще одна тема - емулятор стільникових телефонів. емуляторУявіть собі, що у вашому комп'ютері живе ціла армада стільникових трубок, які поводяться в точності так, як справжні: показують заставки, перемикаються у меню, працюють з Java-іграми і додатками, а також можуть навіть дзвонити. І навіть виглядають, як справжні. Шанувальники хакерської діяльності можуть створити емулятор справжнього комп'ютера, щоб обманювати старі програми дев'яностих років. Часто ті були захищені, мали цікаві алгоритми, хитрі трюки програмування. Емулятор міг би відкрити таємниці, приховувані цими програмами. Нічого немає більш захоплюючого, ніж момент, коли обдурена програма запуститься на вашому псевдо комп'ютері- емуляторі.

Отже, з ідеями ми визначилися. Перерахуємо ще раз користь від емулятора процесора:

  1. Підвищення власної самооцінки;
  2. Уміння працювати з документацією по цільовому процесору;
  3. Користь від дослідження обманюваної програми;
  4. Приємні спогади про минулі дні.

програма емуляторЯк будується емулятор. В принципі, це звичайна програма. На вхід їй подається цільова програма, яку вона повинна виконати. Для цього ви повинні запрограмувати реакцію програми на всі можливі види кодів центрального процесора, тобто створити дізассемблер, аналізатор і виконавець. Дізассемблер потрібен, щоб перетворити машинний код в більш зрозумілу для аналізу схему, аналізатор повинен розв'язати - виконувати код безпосередньо, або емулювати дію цього процесора, а виконавець проводить безпосередню операцію. Всі ці три алгоритми можна реалізувати в одному. Першим ділом для псевдо комп'ютера відводиться пам'ять - в справжніх пам'яті або на диску. програма емуляторПісля цього "​​в неї" завантажується дослідницька програма, і після цього емулятор починає її виконувати з першої ж адреси «в пам'яті». І якщо все зробити правильно і не помилитися, то ви побачите невелике диво - емулятор буде крокувати по адресам, перестрибувати у випадку переходів, записувати і читати дані з комірок, працювати з портами введення/виводу... Ви завжди зможете зупинити її, подивитися дамп (знімок) пам'яті, поекспериментувати, збільшити швидкість роботи або сповільнити, прочитати звіт про виконані операції. Наприклад, якщо програма працює з портами, то в реальній програмі дуже важко "відловити" ці коди, а в емуляторі - немає проблем!емуляторМожна навіть спеціально налаштувати емулятор так, щоб він вів окремий звіт при кожній операції з цими портами або іншими регістрами, що вас цікавлять. Особливо цікаво проявляється візуальний ефект, коли програма виводить щось на екран. Найкраще почати з емуляторів процесорів, які були встановлені на комп'ютери, які не мають графіки (для простоти). Далі - для тих, які працювали з графікою.

мобільний емуляторЗвичайно ж, зараз є безліч самих різних емуляторів, і всі вони робочі. І старі програми також можна скачати з Інтернету або знайти на старих запилених дисках. Але все ж наскільки самому цікавіше створити емулятор власними руками і головою - чужа програма з цим не зрівняється. А вже користь від таких "досліджень" буде безсумнівна. І вже потім можна буде подумати: а як цю ідею розвинути? Ну, наприклад, написати емулятор свого робочого комп'ютера, який буде емулювати вашу робочу операційну систему. Або зловити і «мучити» вірус? Або знайти прогалини в Windows? А виправити їх? Слабо?

Автор: Світ перекладів
ОЦІНИТИ НОВИНУ
5 (голосів: 1)

Комментарии:

ВВЕРХ