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

Какие языки программирования основные для человека занимающимся хакингом?

будешь хорошо знать ассемблер - будешь универсал.
АР
Александр Рыбченко
79 570
Лучший ответ
Как и для программиста, в зависимости от специализации
Роман Романчик
Роман Романчик
53 659
Смотря что хакать.

Если хакать сайты - то нужен опыт в HTML, CSS, JS, PHP, SQL - чтобы придумывать разные вредоносные инъекции и пробовать отправлять их сайту методом научного тыка, причем делать это вслепую, не видя того back-end'а, который их принимает. Нужно представлять, как этот парсер может быть устроен.
Еще сниффер вроде Fiddler надо уметь пользовать. Он позволяет не только отслеживать запросы к back-end'у, но и имитировать их, в т. ч. писать боты для сайтов. При плотных раскопках back-end'а, многое всплывает.
Вот, например, я писал большой бот для одного кривого видеохостинга. Вообще моей целью не было хакать сайт, но мне было интересно, как что устроено - и, имитируя запросы фиддером, я допускал разные ошибки в параметрах и заголовках, как случайно, так и нарочно.
И я узнал, что там используется SQL, и параметры кое-где идут напрямую в запрос - при ошибке в ответ на запрос приходит отладочная информация, из которой даже видно имена таблицы и полей запроса, и куда вставляются параметры. Вполне возможно, что в тот параметр можно внедрить SQL-код и он сработает!
А еще обнаружил, что для скачивания видео по ссылке (которая по идее приватно) не проверяются куки, да и вообще там с ними всё криво, и можно накачать кучу чужих видео, просто перебирая разные рандомные параметры для ссылки...

Если хакать десктопные и мобильные программы, вносить в них изменения - то надо уметь их декомпилировать. Какой именно инструмент нужен и код на каком языке получится - зависит от того, на чем программа написана.
Приложения на Java - обычно декомпилируются хорошо бесплатными средствами, код вполне читабелен.
Приложения на C# - обычно декомпилируются хорошо платным .NET Reflector, код вполне читабелен.
А вот exeшники с машинным кодом - требуют дизассемблированния OllyDbg'ом - получается ассемблер.
А вот скажем exeшники написанные на Delphi - тоже вроде в основном на машинном коде, еще и "слоёный" (выполняемый код вызывает функции VCL, вшитые в exe), но вот интерфейс в них, компилятор не конвертирует в машинный код, а просто зашивает в ресурсы, прямо форма *.dfm в первозданном (или бинарном) виде и зашита в ресурсы - таким образом изменить надписи, добавить или убрать контрол - не составляет большого труда, все делается утилитой вроде ResEdit или ResHaker.
Также и у браузера Chrome, часть интерфейса хранится в ресурсах, а другая часть - написана на HTML+CSS+JS (для этого в нем специальное API) и HEX-редактором легко редактируется без дизассемблирования и раскопок исходников Chromium.
Еще вот Visual Studio иногда здорово помогает отлаживать код: берем один из файлов исходника некой программы (если она опенсорсная), запускаем собранный EXEшник, в студии присоединяемся к его процессу, далее делаем в программе те действия, при которых должен вызваться этот код, в студии в окошке с исходником ставим точку останова - и выполнение кода прерывается, а мы в студии видим окошко со списком всех переменных, которые сейчас есть в ОЗУ у данного процесса, с их текущими значениями!
Социальная инженерия.
Хакинг разный бывает - ассемблер наверное ближе. Не помешают и веб-языки - если нужно узнать структуру сайта.