Название профессии реверс-инженер (Reverse Engineer) происходит от английского словосочетания Reverse Engineering, что в переводе на русский звучит, как обратный инжиниринг или обратное проектирование. Суть этой деятельности заключается обычно в тщательном исследовании программ (реже – готовых устройств) для того, чтобы понять, как они функционируют, и внесении при необходимости изменений в работу.
Для чего это необходимо? Цели могут быть разными – как благородными, так и не очень. Фактически реверс-инженера можно назвать «белым хакером», если он изучает вредоносные программы, чтобы понять, как, например, улучшить антивирусное приложение. Ну, или изучает софт, чтобы защитить лицензионные программные продукты.
Если вас интересует получение профессии реверс-инженера, посмотрите курсы Reverse Engineering
А всё, что касается обучения кибербезопасности вы найдете в подборке курсов по безопасности данных и систем
Но иногда представители Reverse Engineering идут криминальным путем, ломая и выкладывая бесплатно лицензионный софт, выпуская различные keygen (генератор ключей), модифицируя популярные программы так, чтобы они вредили пользователям и т. п. Естественно, за такую деятельность их можно привлечь к административной и уголовной ответственности, так что заниматься нарушением авторских прав и нанесением вреда другим людям настоятельно не рекомендую.
В общем, здесь та же ситуация, что и со специалистами по кибербезопасности, которые могут своей работой нести и пользу, и вред людям. Хотя за принесение пользы реверс-инженерам хорошо платят, так что на стороне хороших быть не просто приятно, но еще и очень выгодно!
Что нужно знать и уметь?
- В первую очередь нужно познакомиться с языковым семейством Ассемблер (assembler).
- Затем требуется освоить внутреннее устройство популярных операционных систем. Ну, или хотя бы досконально выучить, как работает Windows.
- В обязательном порядке необходимо освоить системное программирование, отличительной чертой которого выступает создание софта, взаимодействующего с компьютерным «железом».
- Выработать навыки обратной разработки программ.
- Знать особенности х89 и ARM-архитектуры.
- Уметь работать с дизассемблерами (IDA Pro).
- Полезно овладеть C# и Python.
По поводу того, что нужно уметь, хочется привести слова Михаила Филиппова, реверс-инженера из российской частной компании Parallels, занимающейся созданием софта: «Тут дело не в каких-то тайных знаниях. Даже профильное IT-образование тут не нужно, достаточно пройти базовые курсы. Все дело в личности инженера, которого должен увлекать процесс освоения новых знаний. Сильнейшими сторонами реверс-инженера выступают: внимательное отношение к деталям, способность отыскать неочевидные причинно-следственные связи и развитое воображение, позволяющее воссоздать целиком даже очень сложные системы».
Какими личностными качествами нужно обладать?
Реверс-инженер – это человек, который постоянно что-то ищет, исследует и чему-то учиться. Будьте готовы к тому, что с каждым новым заданием вам придется узнавать что-то новое о работе машин и программ. Поэтому эта профессия для людей, готовых оставаться вечными студентами, которые не довольствуются достигнутым и способны по 40 часов в неделю рассматривать строки кода.
В общем, нужно иметь:
- математический склад ума;
- развитое логическое мышление;
- усидчивость;
- высокую работоспособность;
- желание неустанно развиваться.
Разговор о личностных качествах хочу подытожить словами Михаила Жданова, еще одного реверс-инженера из Parallels: «Если вас тянет изучать каждую новую фичу, ковырять программы, разбирать форматы их файлов, пытаться взломать новую игрушку, написав для нее бота или чит, то это ваше. Если же не ощущаете в себе такой тяги, то никакое обучение вам не поможет. В Reverse Engineering от вас требуется страсть к тому, что вы делаете, и большой запас терпения!»
Уникальное предложение — -50% на ВСЕ курсы Skillbox. Получите современную онлайн-профессию, раскройте свой потенциал.
Где и кем можно работать?
У реверс-инженеров несколько очевидных путей, по которым можно пойти:
- податься в одну из антивирусных компаний, чтобы бороться с вредоносными программами (malware);
- пойти в сферу промышленной безопасности, где происходит поиск уязвимостей, реверс используемых корпоративных протоколов, прошивок;
- устроиться на работу в спецотдел какой-то компании по разработке ПО, где нужно исследовать степень защищенности выпускаемых программных продуктов;
- достичь мастерства и зарабатывать участием в Bug Bounty, выступлением на digital-конференциях, преподаванием.
Преимущества и недостатки профессии Реверс инженера
- удовлетворение от решения нестандартных задач ничем не описать;
- довольно высокий уровень оплаты труда, даже для новичков без большого опыта.
- работа требует усидчивости и способности подолгу концентрироваться на рутинных задачах;
- основные работодатели сосредоточены в городах-миллионниках.
Сколько зарабатывают реверс-инженеры
В среднем по России зарплата реверс-инженера составляет 60 тыс. руб. Для Москвы и Санкт-Петербурга эта цифра составляет около 100 тыс. рублей! Неплохо, правда? Онлайн-журнал «Системный администратор» провел небольшое исследование и выявил такую зависимость между уровнями подготовки и величиной заработной платы в Москве.
Латинскими цифрами обозначен условные уровни подготовки, а вот их расшифровка:
Если заглянуть на популярный сайт о поиске работы hh.ru, то там на данный момент открыто почти 70 вакансий для реверс-инженеров с минимальной зарплатой в 60 тыс. рублей. Вот как выглядят типичные вакансии для Reverse Engineer в Москве и Санкт-Петербурге:
Ну а это пример вакансий из регионов, где, кстати, не часто указывают величину заработной платы, предлагая обсудить приемлемый оклад во время собеседования:
Как стать реверс-инженером?
Вариантов ответа на этот вопрос два:
- Первый состоит в том, чтобы получить классическое IT-образование в вузе. Отдельной специальности Reverse Engineering там нет, но можно подобрать что-нибудь очень близкое к ней. Только вот делать этого не стоит, т. к. учеба в наших вузах – это долго, дорого и малоэффективно.
- Если хотите сэкономить кучу денег и времени, то лучше записаться на → специальные курсы, где успешные реверс-инженеры не только научат всему необходимому, но также поделятся бесценным опытом и позволят поработать над проектами, которые не стыдно сразу добавить в свое портфолио.
7 ДНЕЙ БЕСПЛАТНОГО ДОСТУПА К КУРСАМ И ИНТЕНСИВАМ ОТ SKILLBOX
Скажите, чем вас заинтересовала профессия реверс-инженера? Всегда хотели быть хакером? Или, возможно, хотите выступить в роли защитника пользователей от вирусов и вредоносных программ?