Другие языки программирования и технологии

На что способен язык Ассемблер? И есть ли у него какие нибудь ограничение?

Слышал что этот язык хорош для взлома, это правда?
На всё. Нет. Для взлома язык не нужен, нужно его понимание.
Рыжов Игорь
Рыжов Игорь
54 295
Лучший ответ
Он фактически очень сильно упрощенный использованием человеческих обозначений машинный код. Это означает, что на нем можно писать более оптимальные программы, чем получаются компилированием с языков более высокого уровня, а также, переводя в него машинный код (дизассемблирование), можно в точности понять, что делается в программах, что очень полезно для взлома их защиты. Однако более-менее сложную программу писать на нем в десятки раз дольше, чем на языке даже не очень высокого уровня.
Что значит "взлом"? И почему сразу "взлом"?

Это практически единственный язык который Вам (?) поможет (?) в исследовании программ в машинном коде, но есс-но это не значит, что зная ассемблер Вы найдете уязвимость на сайте, написанном на PHP, и н-р со стороны SQL =)

И есс-но н-р обход программных защит это вполне серьезный навык. Одно дело найти и убрать 2-3 проверки в машинном коде в нужных местах (что тоже не всем под силу), другое разобрать "виртуальную машину" со своими инструкциями (да и такое бывает =)

Ограничения - как обычно - со стороны того кто пишет/разбирает программу и со стороны спецификации команд/процессора =)
Рафик Байсаров Ограничение еще и ОС наложит, если не под досом запускать или вообще не свой загрузчик писать. И еще ограничение по железу!
Насчёт взлома не знаю, а вот полноценную небольшую операционную систему на нём написать вполне можно. Взять хотя бы Kolibri OS - чистейший ассемблер.
Бисимбай Аментаев прошивку на материнку или на андроид тоже на Ассемблере пишут?
Не силен в нем, но разве не все программные языки одинаковы в корне. 1 и 0 делают чудеса
Рафик Байсаров Не все одинаковы. Ассемблер нехило так отличается и даже после других ЯП в него тяжело вникнуть. Хотя, когда вникаешь, понимаешь что в принципе ничего там сложного нет. Он нужен для понимания работы проца, плюс иногда отладку проще произвести плюс возможно скорость функции увеличить. Целое приложение на нем писать это ипануцца.
Печаль в том, что это не один язык, а куча языков зависящих от конкретного процессора. Именно в него переводят машинный код различные дизассемблеры, но иногда бывает и jit-код вирт. машин и тогда применяют другие подходы. Под этим языком есть целый класс алгоритмов, которые доказано оптимальных только в нем, на нем написанные некоторые части микро ядер, за грузчиков систем, написанные на нем балансирующие деревья, варианты преобразования Фурье и некоторые алгоритмы поиска работают минимум в 2 раза быстрее, чем на ЯВУ. На нем трудно писать и искать ошибки. Обычно его применяют вместе с ЯВУ заменяя им только самые медленные и часто используемые части. Хотя в последнее время с ростом выч. мощности ПК чаще используют языки высокого уровня.