Хотелось бы немного получить немного общей (
живой) информации о данной специальности и опыте людей, которые непосредственно с ней связаны.
- Во-первых, хочется услышать несколько самых ярких историй из практики реверсеров. Что вас прямо с головой погрузило в решение проблемы и после чего вы чувствовали гордость за выполненную работу ( или угнетение за невыполненную =) ).
- На сколько востребовано (вакансии на рынке, сталкиваетесь с задачами на работе) реверес исполняемых файлов под Linux?
- Как много утилит вы используете в процессе анализа и на сколько досконально ими нужно владеть? (например IDA Pro, OllyDBG (в каких случаях удобно использовать ту или иную); peid, hexeditor, ...)
- Как я понимаю, скилл реверсить привязан к конкретной операционной системе (если это не так, то поправьте меня), т.к. необходимо знать как устроена ОС; её API; знание инструментов для анализа, которые характерны только для неё; и пр.. Поэтому есть-ли четкое разделение что этот специалист работает только с Android, другой с Windows, третий #ДРУГАЯ_ОС? Если нет, то как много специалистов, которые могут работать со множеством (2-3) ОС?
- Как часто вы сталкиваетесь с "тупиковыми" ситуциями? Т.е. когда один человек понимает что не в силах выполнить работу и требуется помощь коллег. Как проходит процесс "коллективного" реверса?
- Какие задачи в основном ставят перед реверсером? Как я понимаю, например для вредоносного файла, отреверсить значит обнаружить вредоносный код, понять принцип его работы, оценить уровень угрозы, детализировать сигнатуру, после чего её можно будет добавить в базу. Для крекеров, это понять как работает защита, найти узкое место в коде, которое можно пропатчить, чтобы отключить проверку лицензии и сделать программу "бесплатной".
- Язык ассемблера. Если я правильно понимаю, то он разница от архитектуры процессора и ОС. Помимо этого, существуют различные нотации. Если честно, то я даже не знаю как сформулировать вопрос для этого пункта, наверно просто хочется услышать о проблемах чтения кода при реверсе файлов под разные архитектуры/ОС.
- Реверсеры, которые работают с прошивками и редкими "железками" (например какая-нибудь плата с АЭС или производственного станка) это какая-то особая каста? Какая у них отправная точка, если допустим на начальном этапе нет ни документации по архитектуре железа, ни описания синтаксиса языка.
P.S. Возможно некоторые вопросы сформулированы некорректно (
по ламерски) - в таком случае сорри, и давайте просто его вместе конкретизируем, после чего я сделаю апдейт вопроса, чтобы он стал понятным и ответ на него было приятно читать.
P.S.S. Если нет желания отвечать на все вопросы, ответьте на тот, по которому вам есть что рассказать=)