Чудовий пост psoul відповідає на ваше запитання, тому я не повторюю його добру роботу, але я вважаю, що це допоможе пояснити, чому це одразу цілком правильне, але також жахливо нерозумне питання. Зрештою, це місце для навчання, правда?
Сучасні комп'ютерні програми виробляються за допомогою ряду перетворень, починаючи з введення текстових інструкцій, що читаються людиною (звані "вихідний код") і закінчуючи комп'ютерним текстом інструкцій (називаються альтернативно "двійковим" або "машинним" код ").
Спосіб, яким комп'ютер виконує набір інструкцій машинного коду, зрештою дуже простий. Кожна дія, яку може здійснити процесор (наприклад, прочитати з пам'яті, додати два значення), представлена числовим кодом. Якби я сказав вам, що число 1 означає крик, а число 2 - хихикання, а потім тримав картки з 1 або 2 на них, очікуючи, що ви кричатимете чи хихикатимемо відповідно, я б використовував те, що є по суті тією ж системою, яку використовує комп'ютер діяти.
Бінарний файл - це лише набір тих кодів (зазвичай називають "коди оп") та інформації ("аргументи"), на яку діють коди оп.
Тепер, мова складання - це комп'ютерна мова, де кожне командне слово на мові представляє рівно один оп-код на процесорі. Існує прямий переклад 1: 1 між командою мови збірки та оп-кодом процесора. Ось чому збірка кодування для процесора x386 відрізняється від збірки кодування для процесора ARM.
Розбирання відбувається просто так: програма читає двійковий код (машинний код), замінюючи оп-коди на їх еквівалентні команди мовної збірки та виводить результат у вигляді текстового файлу. Це важливо зрозуміти; якщо ваш комп'ютер може читати двійкове, ви також можете його читати також вручну, з таблицею оп-коду в руці (ick) або через розбирач.
У розборщиків є кілька нових хитрощів, і все, але важливо розуміти, що розбирач - це врешті-решт механізм пошуку та заміни. Ось чому будь-яка особа, яка забороняє її, в кінцевому рахунку продуває гаряче повітря. Ви не можете відразу дозволити комп'ютеру читати дані програми, а також заборонити комп'ютеру читати дані програми.
(Не зрозумійте мене неправильно. Були спроби зробити це. Вони працюють як DRM на файлах пісень.)
Однак існують застереження щодо підходу до розбирання. Імена змінних неіснуючі; такої речі не існує у вашому процесорі. Бібліотечні дзвінки заплутані як пекло і часто вимагають розбирати подальші бінарні файли. І складання важко, як чорт, читати в кращих умовах.
Більшість професійних програмістів не можуть сидіти і читати мову складання, не боліючи. Для любителя це просто не відбудеться.
Так чи інакше, це дещо затьмарене пояснення, але, сподіваюся, це допомагає. Кожен може сміливо виправляти будь-які неправильні твердження з мого боку; пройшло багато часу. ;)