Reverse Engineering для начинающих (Понимание языка ассемблера) [Денис Юричев] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

____
| _ \ _____
_____ _ __ ___ ___
| |_) / _ \ \ / / _ \ '__/ __|/ _ \
| _ < __/\ V / __/ | \__ \ __/
|_| \_\___| \_/ \___|_| |___/\___|
_____
_
_
| ____|_ __
__ _(_)_ __
___ ___ _ __(_)_ __
__ _
| _| | '_ \ / _` | | '_ \ / _ \/ _ \ '__| | '_ \ / _` |
| |___| | | | (_| | | | | | __/ __/ | | | | | | (_| |
|_____|_| |_|\__, |_|_| |_|\___|\___|_| |_|_| |_|\__, |
|___/
|___/
__
/ _| ___ _ __
| |_ / _ \| '__|
| _| (_) | |
|_| \___/|_|
____
_
| __ ) ___ __ _(_)_ __ _ __
___ _ __ ___
| _ \ / _ \/ _` | | '_ \| '_ \ / _ \ '__/ __|
| |_) | __/ (_| | | | | | | | | __/ | \__ \
|____/ \___|\__, |_|_| |_|_| |_|\___|_| |___/
|___/

i

Reverse Engineering для начинающих
(Понимание языка ассемблера)

Почему два названия? Читайте здесь: (стр. xvi).

Денис Юричев

cb a
©2013-2020, Денис Юричев.
Это произведение доступно по лицензии Creative Commons
«Attribution-ShareAlike 4.0 International» (CC BY-SA 4.0). Чтобы увидеть копию
этой лицензии, посетите
https://creativecommons.org/licenses/by-sa/4.0/.
Версия этого текста (27

ноября 2020 г.).

Самая новая версия текста (а также англоязычная версия) доступна на сайте
https://beginners.re/.

Нужны переводчики!
Возможно, вы захотите мне помочь с переводом этой работы на другие языки,
кроме английского и русского. Просто пришлите мне любой фрагмент переведенного текста (не важно, насколько короткий), и я добавлю его в исходный
код на LaTeX.
Не спрашивайте, нужно ли переводить. Просто делайте хоть что-нибудь. Я уже
перестал отвечать на емейлы вроде “что нужно сделать?”
Также, прочитайте это.
Посмотреть статистику языков можно прямо здесь: https://beginners.re/.
Скорость не важна, потому что это опен-сорсный проект все-таки. Ваше имя будет указано в числе участников проекта. Корейский, китайский и персидский
языки зарезервированы издателями. Английскую и русскую версии я делаю
сам, но английский у меня все еще ужасный, так что я буду очень признателен
за коррективы, итд. Даже мой русский несовершенный, так что я благодарен
за коррективы и русского текста!
Не стесняйтесь писать мне: .

Если вы заметили опечатку, ошибку или имеете какие-то либо соображения,
пожелания, пожалуйста, напишите мне: . Спасибо!

Краткое оглавление
1 Образцы кода

1

2 Важные фундаментальные вещи

574

3 Более сложные примеры

604

4 Java

857

5 Поиск в коде того что нужно

910

6 Специфичное для ОС

956

7 Инструменты

1030

8 Примеры из практики

1033

9 Примеры разбора закрытых (проприетарных) форматов файлов 1189
10 Прочее

1266

11 Что стоит почитать

1288

12 Сообщества

1292

ii

Послесловие

1294

Приложение

1296

Список принятых сокращений

1335

Глоссарий

1342

Предметный указатель

1345

Оглавление
1 Образцы кода
1.1 Метод . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Некоторые базовые понятия . . . . . . . .
1.2.1 Краткое введение в CPU . . . . . . .
1.2.2 Представление чисел . . . . . . . . .
1.3 Пустая функция . . . . . . . . . . . . . . . . .
1.3.1 x86 . . . . . . . . . . . . . . . . . . . . .
1.3.2 ARM . . . . . . . . . . . . . . . . . . . . .
1.3.3 MIPS . . . . . . . . . . . . . . . . . . . . .
1.3.4 Пустые функции на практике . . .
1.4 Возврат значения . . . . . . . . . . . . . . . .
1.4.1 x86 . . . . . . . . . . . . . . . . . . . . .
1.4.2 ARM . . . . . . . . . . . . . . . . . . . . .
1.4.3 MIPS . . . . . . . . . . . . . . . . . . . . .
1.4.4 На практике . . . . . . . . . . . . . . .
1.5 Hello, world! . . . . . . . . . . . . . . . . . . . .
1.5.1 x86 . . . . . . . . . . . . . . . . . . . . .
1.5.2 x86-64 . . . . . . . . . . . . . . . . . . .
1.5.3 ARM . . . . . . . . . . . . . . . . . . . . .
1.5.4 MIPS . . . . . . . . . . . . . . . . . . . . .
1.5.5 Вывод . . . . . . . . . . . . . . . . . . .
1.5.6 Упражнения . . . . . . . . . . . . . . .
1.6 Пролог и эпилог функций . . . . . . . . . .
1.6.1 Рекурсия . . . . . . . . . . . . . . . . .
1.7 Еще кое-что о пустой ф-ции . . . . . . . .
1.8 Еще кое-что о возвращаемых