forked from wangyif2/RE-for-beginners
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpreface.tex
211 lines (173 loc) · 9.79 KB
/
preface.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
\section*{\RU{Предисловие}\EN{Preface}\PTBRph{}\ESph{}\PLph{}}
\iffalse
\RU{Здесь (будет) немного моих заметок о \gls{reverse engineering} на русском языке для начинающих,
для тех кто хочет научиться понимать создаваемый \CCpp компиляторами код для x86 (коего,
практически, больше всего остального) и ARM.}
\EN{Here are some of my notes in English for beginners in \gls{reverse engineering}
who would like to learn to understand x86 (which accounts for almost
all executable software in the world) and ARM code created by \CCpp compilers.}
\fi
\RU{У термина \q{\gls{reverse engineering}} несколько популярных значений:
1) исследование скомпилированных
программ; 2) сканирование трехмерной модели для последующего копирования;
3) восстановление структуры СУБД. Настоящий сборник заметок
связан с первым значением.}
\EN{There are several popular meanings of the term \q{\gls{reverse engineering}}:
1) The reverse engineering of software: researching compiled programs;
2) The scanning of 3D structures and the subsequent digital manipulation required order to duplicate them;
3) recreating \ac{DBMS} structure.
This book is about the first meaning.}
\ifx\LITE\undefined
\subsection*{\RU{Рассмотренные темы}\EN{Topics discussed in-depth}\PTBRph{}\ESph{}\PLph{}}
x86/x64, ARM/ARM64, MIPS, Java/JVM.
\subsection*{\RU{Затронутые темы}\EN{Topics touched upon}\PTBRph{}\ESph{}\PLph{}}
\oracle (\myref{oracle}),
Itanium (\myref{itanium}),
\RU{донглы для защиты от копирования}\EN{copy-protection dongles} (\myref{dongles}),
LD\_PRELOAD (\myref{ld_preload}),
\RU{переполнение стека}\EN{stack overflow},
\ac{ELF},
\RU{формат файла PE в win32}\EN{win32 PE file format} (\myref{win32_pe}),
x86-64 (\myref{x86-64}),
\RU{критические секции}\EN{critical sections} (\myref{critical_sections}),
\RU{системные вызовы}\EN{syscalls} (\myref{syscalls}),
\ac{TLS},
\RU{адресно-независимый код}\EN{position-independent code} (\ac{PIC}) (\myref{sec:PIC}),
profile-guided optimization (\myref{PGO}),
C++ STL (\myref{cpp_STL}),
OpenMP (\myref{openmp}),
SEH (\myref{sec:SEH}).
\fi
\subsection*{\RU{Об авторе}\EN{About the author}\PTBRph{}\ESph{}\PLph{}}
\begin{tabularx}{\textwidth}{ l X }
\raisebox{-\totalheight}{
\includegraphics[scale=0.60]{Dennis_Yurichev.jpg}
}
&
\RU{Денис Юричев~--- опытный reverse engineer и программист.}%
\EN{Dennis Yurichev is an experienced reverse engineer and programmer.}
\EN{He can be contacted by email:}%
\RU{С ним можно контактировать по емейлу:} \textbf{\EMAIL{}},
\EN{or on Skype:}\RU{или по Skype:} \textbf{dennis.yurichev}.
% FIXME: no link. \tablefootnote doesn't work
\end{tabularx}
% subsections:
\input{praise}
\subsection*{\RU{Благодарности}\EN{Thanks}\PTBRph{}\ESph{}\PLph{}}
\RU{Тем, кто много помогал мне отвечая на массу вопросов}\EN{For patiently answering all my questions}:
\HERMIT, \RU{Слава \q{Avid} Казаков}\EN{Slava \q{Avid} Kazakov}.
\RU{Тем, кто присылал замечания об ошибках и неточностях}\EN{For sending me notes
about mistakes and inaccuracies}:
\RU{Станислав \q{Beaver} Бобрицкий, Александр Лысенко}%
\EN{Stanislav \q{Beaver} Bobrytskyy, Alexander Lysenko}, Shell Rocket, Zhu Ruijin, Changmin Heo.
\RU{Просто помогали разными способами}\EN{For helping me in other ways}:
\RU{Андрей Зубинский}\EN{Andrew Zubinski},
Arnaud Patard (rtp \RU{на}\EN{on} \#debian-arm IRC),
\EN{Aliaksandr Autayeu}\RU{Александр Автаев}.
\RU{Переводчику на китайский язык}\EN{For translating the book into Simplified Chinese}: Archer.
\RU{Переводчику на корейский язык}\EN{For translating the book into Korean}: Byungho Min.
\RU{Корректорам}\EN{For proofreading}:
\RU{Александр \q{Lstar} Черненький}\EN{Alexander \q{Lstar} Chernenkiy},
\RU{Владимир Ботов}\EN{Vladimir Botov},
\RU{Андрей Бражук}\EN{Andrei Brazhuk},
\RU{Марк}\EN{Mark} ``Logxen'' \RU{Купер}\EN{Cooper},
Yuan Jochen Kang, Mal Malakov, Lewis Porter, Jarle Thorsen.
\RU{Васил Колев сделал очень много исправлений и указал на многие ошибки.}
\EN{Vasil Kolev did a great amount of work in proofreading and correcting many mistakes.}
\RU{За иллюстрации и обложку: Андрей Нечаевский.}\EN{For illustrations and cover art: Andy Nechaevsky.}
\RU{И ещё всем тем на github.com кто присылал замечания и исправления.}
\EN{Thanks also to all the folks on github.com who have contributed notes and corrections.}
\RU{Было использовано множество пакетов \LaTeX. Их авторов я также хотел бы поблагодарить.}
\EN{Many \LaTeX\ packages were used: I would like to thank the authors as well.}
\subsubsection*{\RU{Жертвователи}\EN{Donors}}
\EN{Those who supported me during the time when I wrote significant part of the book:}%
\RU{Те, кто поддерживал меня во время написании этой книги:}
2 * Oleg Vygovsky (50+100 UAH),
Daniel Bilar ($\$$50),
James Truscott ($\$$4.5),
Luis Rocha ($\$$63),
Joris van de Vis ($\$$127),
Richard S Shultz ($\$$20),
Jang Minchang ($\$$20),
Shade Atlas (5 AUD),
Yao Xiao ($\$$10),
Pawel Szczur (40 CHF),
Justin Simms ($\$$20),
Shawn the R0ck ($\$$27),
Ki Chan Ahn ($\$$50),
Triop AB (100 SEK),
Ange Albertini (\euro{}10+50),
Sergey Lukianov (300 RUR),
Ludvig Gislason (200 SEK),
Gérard Labadie (\euro{}40),
Sergey Volchkov (10 AUD),
Vankayala Vigneswararao ($\$$50),
Philippe Teuwen ($\$$4),
Martin Haeberli ($\$$10),
Victor Cazacov (\euro{}5),
Tobias Sturzenegger (10 CHF),
Sonny Thai ($\$$15),
Bayna AlZaabi ($\$$75),
Redfive B.V. (\euro{}25),
Joona Oskari Heikkilä (\euro{}5),
Marshall Bishop ($\$$50),
Nicolas Werner (\euro{}12),
Jeremy Brown ($\$$100),
Alexandre Borges ($\$$25),
Vladimir Dikovski (\euro{}50),
Jiarui Hong (100.00 SEK),
Jim Di (500 RUR),
Tan Vincent ($\$$30),
Sri Harsha Kandrakota (10 AUD),
Pillay Harish (10 SGD),
Timur Valiev (230 RUR),
Carlos Garcia Prado (\euro{}10),
Salikov Alexander (500 RUR),
Oliver Whitehouse (30 GBP),
Katy Moe ($\$$14),
Maxim Dyakonov ($\$$3),
Sebastian Aguilera (\euro{}20),
Hans-Martin Münch (\euro{}15),
Jarle Thorsen (100 NOK),
Vitaly Osipov ($\$$100),
Yuri Romanov (1000 RUR),
Aliaksandr Autayeu (\euro{}10),
Tudor Azoitei ($\$$40),
Z0vsky (\euro{}10),
Yu Dai ($\$$10).
\RU{Огромное спасибо каждому!}\EN{Thanks a lot to every donor!}
% subsections
\input{FAQ}
\ifdefined\ebook
\RU{Это версия формата A5 для электронных читалок}\EN{This is the A5-format version for e-book readers}.
\RU{Хотя, тут всё то же самое, но иллюстрации уменьшены и не очень хорошо читаемы}
\EN{Although the content is mostly the same, the illustrations are resized and probably not readable}.
\EN{You may try to change scale in your e-book reader.}
\RU{Вы можете попробовать изменить масштаб в вашей читалке.}
\RU{Так или иначе, вы всегда можете посмотреть их в версии формата A4 здесь}
\EN{Otherwise, you can always view them in the A4-format version here}: \href{http://go.yurichev.com/17009}{beginners.re}.
\fi
% {\RU{Целевая аудитория}\EN{Target audience}}
\subsection*{\RU{О переводе на корейский язык}\EN{About the Korean translation}\PTBRph{}\ESph{}\PLph{}}
\EN{In January 2015, the Acorn publishing company (\href{http://www.acornpub.co.kr}{www.acornpub.co.kr}) in South Korea did a huge amount of work in translating and publishing
my book (as it was in August 2014) into Korean.}
\RU{В январе 2015, издательство Acorn в Южной Корее сделало много работы в переводе
и издании моей книги (по состоянию на август 2014) на корейский язык.}
\RU{Она теперь доступна на}\EN{It's now available at}
\href{http://go.yurichev.com/17343}{\EN{their website}\RU{их сайте}}.
\iffalse
\begin{figure}[H]
\centering
\includegraphics[scale=0.3]{acorn_cover.jpg}
\end{figure}
\fi
\RU{Переводил}\EN{The translator is} Byungho Min (\href{http://go.yurichev.com/17344}{twitter/tais9}).
\EN{The cover art was done by my artistic friend, Andy Nechaevsky}
\RU{Обложку нарисовал мой хороший знакомый художник Андрей Нечаевский}:
\href{http://go.yurichev.com/17023}{facebook/andydinka}.
\RU{Они также имеют права на издании книги на корейском языке.}
\EN{They also hold the copyright to the Korean translation.}
\RU{Так что если вы хотите иметь \IT{настоящую} книгу на полке на корейском языке и
хотите поддержать мою работу, вы можете купить её.}
\EN{So, if you want to have a \IT{real} book on your shelf in Korean and
want to support my work, it is now available for purchase.}