[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: 2w6ewAgR4E8.jpg -(42 KB, 720x511, 2w6ewAgR4E8.jpg)
42 No.14213  
а что насчёт дизассемблирования сегодня слышно? никогда не занимался этой темой. немного знаю операционные системы и несколько языков включая ansi c на уровне дилетанта. трогал ассемблер для AVR. хочется попробовать. не для работы, для себя. что почитать? касперски, который крис, вроде бы книги на эту тему писал. то? актуально? интересуют бинари под винду, линукс, андроид, а так же байткод всевозможный, джава и не только. причём вопрос еще такой - а насколько важно знать ЯП из которого скомпилирован дизассемблируемый бинарь? я не знаю си который с плюсами и не знаю х86 ассемблер. важно ли это если я буду пользоваться дизассемблером или в принципе можно пока не заморачиваться?

я к тому, что мне с одной стороны будет скучно читать книги для совсем уж школьников, с другой - мне непонятны разговоры дедов от крэкинга. надоело варится в пределах специализации, хочется странного.
>> No.14217  
>>14213

Я щитаю, что тебе надо начать хоть с чего-то. Возьми любую закрытую (или открытую) программу, работа которой тебе интересна, прочитай инстракшн мэньюал архитектуры, для которой она скомпилирована, и в путь. Очень желательно знать начала C++, потому что объектый подход сегодня основной.

Олсо, обрати внимание на Radare и IDA Pro Free. Я тоже на пороге вхождения в эту сферу, и, насколько я понял, современные программы слишком сложны для разбора их в блокнотике.

Дисассемблирование - автоматический и определённый процесс превращения кода в плоскую последовательность читаемых слов. То, что ты хочешь назвать, называется реверсинг - перевод двоичного кода в читаемый и структурированный. По этой причине тебе нужно хорошо знать хотя бы C - который совмещает скорость выполнения машинного кода с читаемостью машинного кода, но имеет структуру и типизацию. Абстрактное дисассемблирование - это фингербокс.
>> No.14254  
Файл: 0qBeDJyuD9I.jpg -(1034 KB, 2560x1440, 0qBeDJyuD9I.jpg)
1034
>>14217
ну в общем-то я так и понял. я не ожидаю что существует фингербокс возвращающий мне исходники. так же я не ожидаю, что я смогу как рыба в воде в фильме про хакеров редактировать хекс зелёным по чёрному. я понимаю что некая программа анализирует бинарь и связывает данные в нём с неким мета-языком. может быть даже отслеживает выполнение. имён переменных, как я понимаю, там не будет, мне придётся задать их самому. то же касается функций, классов и прочего. до всего этого придётся дойти отслеживая выполнение, верно? ООП на уровне концепции я понимаю хорошо, поскольку использую его в ряде языков. Си знаю на уровне "очень хочу, но практикуюсь редко". тема обратной разработки висит у меня фоном уже лет 20. сейчас вот опять отвлекаюсь на высокий уровень, внезапно ударила моча посмотреть нейросети. даже нить создам об этом, пожалуй. но к реверс-инжинирингу я обязательно вернусь и еще не раз. поскольку фундаментально это, кроме того - дух старой школы. не только полезные знания и профит, но и просто интересно, что видели и чувствовали те, кто занимался этим в те давние времена, когда это было остро-актуально. когда программы были маленькие, а баги в них серьезные и крайне опасные.
>> No.14261  
>>14254
>Си знаю на уровне "очень хочу, но практикуюсь редко"
Учи С - это всегда хорошо.
>> No.14484  
Мне тут мой логический отдел моска намекает, что для дизассемблирования первоочередно нужно знание ассемблера. Можешь в?
>> No.14550  
Крис Касперки что то писал по этому поводу. Пару статей по крайней мере, если не целую книгу.



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]