forked from wangyif2/RE-for-beginners
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FAQ.tex
180 lines (131 loc) · 11.6 KB
/
FAQ.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
% TODO оформить получше
\newcommand{\HACKINGMdURL}{https://github.com/dennis714/RE-for-beginners/blob/master/HACKING.md}
\newcommand{\FNURLREDDIT}{\footnote{\href{http://go.yurichev.com/17027}{reddit.com/r/ReverseEngineering/}}}
\newcommand{\LITEURL}{\url{http://beginners.re/\#lite}}
\ifdefined\RUSSIAN
\subsection*{mini-ЧаВО}
\par Q: Зачем в наше время нужно изучать язык ассемблера?
\par A: Если вы не разработчик \ac{OS}, вам наверное не нужно писать на ассемблере: современные компиляторы оптимизируют код намного лучше человека
\footnote{Очень хороший текст на эту тему: \cite{AgnerFog}}.
К тому же, современные \ac{CPU} это крайне сложные устройства и знание ассемблера вряд ли
поможет узнать их внутренности.
Но все-таки остается по крайней мере две области, где знание ассемблера может хорошо помочь:
1) исследование malware (\IT{зловредов}) с целью анализа; 2) лучшее понимание
вашего скомпилированного кода в процессе отладки.
Таким образом, эта книга предназначена для тех, кто хочет скорее понимать ассемблер,
нежели писать на нем, и вот почему здесь масса примеров, связанных с результатами
работы компиляторов.
\par Q: Я кликнул на ссылку внутри PDF-документа, как теперь вернуться назад?
\par A: В Adobe Acrobat Reader нажмите сочетание Alt+LeftArrow.
\ifx\LITE\undefined
\par Q: Ваша книга слишком большая! Нет ли чего покороче?
\par A: Есть сокращенная lite-версия: \LITEURL{}.
\fi
\par Q: Я не могу понять, стоит ли мне заниматься reverse engineering-ом.
\par A: Наверное, среднее время для освоения сокращенной LITE-версии\EMDASH{}1-2 месяца. Вы можете попытаться также решать \href{http://challenges.re/}{задачи}.
\par Q: Могу ли я распечатать эту книгу? Использовать её для обучения?
\par A: Конечно, поэтому книга и лицензирована под лицензией Creative Commons. Кто-то может захотеть скомпилировать свою собственную версию книги, читайте \href{\HACKINGMdURL}{здесь} об этом.
\par Q: Почему эта книга бесплатная? Вы проделали большую работу. Это подозрительно, как и многие другие бесплатные вещи.
\par A: По моему опыту, авторы технической литературы делают это, в основном ради само-рекламы. Такой работой заработать приличные деньги невозможно.
\par Q: Как можно найти работу reverse engineer-а?
\par A: На reddit, посвященному RE\FNURLREDDIT, время от времени бывают hiring thread (\href{http://go.yurichev.com/17333}{2013 Q3}, \href{http://go.yurichev.com/17334}{2014}).
Посмотрите там.
В смежном субреддите \q{netsec} имеется похожий тред: \href{http://go.yurichev.com/17335}{2014 Q2}.
\par Q: Куда пойти учиться в Украине?
\par A: \href{http://go.yurichev.com/17336}{НТУУ \q{КПИ}: \q{Аналіз програмного коду та бінарних вразливостей}};
\href{http://go.yurichev.com/17337}{факультативы}.
\par Q: У меня есть вопрос...
\par A: Напишите мне его емейлом (\EMAIL).
\fi % RUSSIAN
\ifdefined\ENGLISH
\subsection*{mini-FAQ}
\par Q: Why should one learn assembly language these days?
\par A: Unless you are an \ac{OS} developer, you probably don't need to code in assembly\textemdash{}modern compilers
are much better at performing optimizations than humans \footnote{A very good text about this topic: \cite{AgnerFog}}.
Also, modern \ac{CPU}s are very complex devices and assembly knowledge doesn't really help one to understand their internals.
That being said, there are at least two areas where a good understanding of assembly can be helpful:
First and foremost, security/malware research. It is also a good way to gain a better understanding of your compiled code whilst debugging.
This book is therefore intended for those who want to understand assembly language rather
than to code in it, which is why there are many examples of compiler output contained within.
\par Q: I clicked on a hyperlink inside a PDF-document, how do I go back?
\par A: In Adobe Acrobat Reader click Alt+LeftArrow.
\ifx\LITE\undefined
\par Q: Your book is huge! Is there anything shorter?
\par A: There is a shortened, lite version found here: \LITEURL{}.
\fi
\par Q: I'm not sure if I should try to learn reverse engineering or not.
\par A: Perhaps, the average time to become familiar with the contents of the shortened LITE-version is 1-2 month(s).
You may also try \href{http://challenges.re/}{reverse engineering challenges}.
\par Q: May I print this book / use it for teaching?
\par A: Of course! That's why the book is licensed under the Creative Commons license.
Someone might also want to build one's own version of book\textemdash{}read \href{\HACKINGMdURL}{here} to find out more.
\par Q: Why this book is free? You've done great job. This is suspicious, as many other free things.
\par A: To my own experience, authors of technical literature do this mostly for self-advertisement purposes. It's not possible to gain any decent money from such work.
\par Q: How does one get a job in reverse engineering?
\par A: There are hiring threads that appear from time to time on reddit, devoted to RE\FNURLREDDIT{}
(\href{http://go.yurichev.com/17333}{2013 Q3},
\href{http://go.yurichev.com/17334}{2014}).
Try looking there.
A somewhat related hiring thread can be found in the \q{netsec} subreddit:
\href{http://go.yurichev.com/17335}{2014 Q2}.
\par Q: I have a question...
\par A: Send it to me by email (\EMAIL).
\fi % ENGLISH
\ifdefined\SPANISH
% TODO to be resyncronized with EN-version
\subsection*{mini-FAQ}
\par Q: ?`Por qu\'e deber\'ia aprender lenguaje ensamblador hoy en d\'ia?
\par A: A menos que seas un desarrollador de \ac{OS}, probablemente no necesitas programar en ensamblador\textemdash{}los compiladores modernos
son mucho mejores generando optimizaciones que los humanos
\footnote{Un buen texto acerca de este tema: \cite{AgnerFog}}.
Adem\'as, los \ac{CPU}s modernos son dispositivos muy complejos y el conocimiento de ensamblador en realidad no ayuda a comprender su funcionamiento interno.
Una vez dicho eso, hay al menos dos \'areas donde un buen entendimiento de ensamblador puede ser \'util:
Antes que nada, la investigaci\'on de seguridad/malware. Tambi\'en es una buena manera de obtener un mejor entendimiento de tu c\'odigo compilado mientras es depurado.
Por lo tanto, este libro est\'a dirigido a aquellos que desean comprender el lenguaje ensamblador en vez de codificar en \'el,
raz\'on por la cual contiene tantos ejemplos de c\'odigo generado por compilador.
\par Q: Di click en un link dentro del documento PDF, ?`c\'omo regreso?
\par A: En Acrobat Reader, presiona Alt+FlechaIzquierda.
\ifx\LITE\undefined
\par Q: !`Tu libro es enorme! ?`Hay algo m\'as corto?
\par A: Puedes encontrar una versi\'on reducida (LITE), aqu\'i: \LITEURL{}.
\fi
\par Q: No estoy seguro de si deber\'ia tratar de aprender ingenier\'ia inversa o no.
\par A: Quiz\'a, el tiempo promedio para familiarizarse con los contenidos de la versi\'on LITE es de 1-2 meses.
\par Q: ?`Puedo imprimir este libro / usarlo para ense\~nanza?
\par A: !`Por supuesto! Por eso es que el libro est\'a registrado bajo Creative Commons.
Puede que alguien quiera generar su propia versi\'on del libro\textemdash{}lee \href{\HACKINGMdURL}{here} para m\'as informaci\'on al respecto.
\par Q: ?`C\'omo se consigue un trabajo en ingenier\'ia inversa?
\par A: Existen threads de contrataci\'on que aparecen de vez en cuando en reddit, dedicados a reversing\FNURLREDDIT{}
(\href{http://go.yurichev.com/17333}{2013 Q3},
\href{http://go.yurichev.com/17334}{2014}).
Intenta buscando ah\'i.
Un thread en ocasiones relacionado con contrataciones puede ser encontrado en el subreddit \q{netsec}:
\href{http://go.yurichev.com/17335}{2014 Q2}.
\par Q: Tengo una pregunta...
\par A: Env\'iamela por email (\EMAIL).
\fi % SPANISH
\ifdefined\BRAZILIAN
\subsection*{mini-FAQ}
\par P: Por que alguém deveria aprender assembly nos dias de hoje?
\par R: A não ser que você seja um desenvolvedor de sistemas operacionais, você provavelmente não precisará escrever códigos em assembly – visto que os compiladores modernos são muito melhores em executar operações
do que nós humanos
\footnote{(\ac{TBT}: A very good text about this topic: \cite{AgnerFog}}.
Também, \ac{CPU}s modernas são dispositivos muito complexos e apenas o conhecimento de assembly não ajudará tanto ao seu entendimento interno. Sabendo disso, há ao menos duas áreas onde um bom entendimento de assembly pode ser proveitoso. Primeiro e mais importante, pesquisar sobre segurança e malwares. É também uma ótima maneira de acumular conhecimento sobre o seu código enquanto ele estiver “debugando”. Esse livro é mais voltado para os que querem entender a linguagem assembly do que codificar com ela, por isso há bastante exemplos de saídas de compiladores nele.
\par P: Eu cliquei em um link dentro de um documento PDF, como eu volto para ele?
\par R: No Adobe Acrobat Reader, pressione Alt+SetaEsquerda
\ifx\LITE\undefined
\par P: Seu livro é enorme! Há alguma opção mais curta?
\par R: Há uma versão encurtada, encontrada aqui: \LITEURL{}.
\fi
\par P: Eu não tenho certeza se eu devo aprender engenharia reversa ou não.
\par R: Muitas vezes, o tempo para se familiarizar com os conteúdos da versão encurtada (versão LITE) é de 1-2 meses. Você deve também tentar os desafios de engenharia reversa (\url{http://challenges.re/}).
\par P: Eu posso imprimir esse livro / usá-lo para ensinar?
\par R: Lógico! É por isso que o livro é registrado sob a “Creative Commons license”. Para quem também queria fazer sua própria versão do livro – leia aqui para descobrir mais (\url{\HACKINGMdURL}).
\par P: Por que esse livro é de graça? Você fez um ótimo trabalho. Isso é suspeito, assim como outras coisas grátis.
\par R: Pela minha própria experiência, autores de literaturas técnicas fazem isso mais para se divulgares. Não é possível ganhar uma quantia considerável de dinheiro com esse tipo de publicação.
\par P: Como alguém consegue um trabalho em engenharia reversa?
\par R: Há vários tópicos que aparecem de tempos em tempos no Reddit\FNURLREDDIT{}, em (\href{http://go.yurichev.com/17333}{2013 Q3}, \href{http://go.yurichev.com/17334}{2014})
e também tópicos relacionados a contratações podem ser encontrados no subreddit ``netsec'' (\href{http://go.yurichev.com/17335}{2014 Q2}).
\par P: Eu tenho uma pergunta...
\par R: Me envie por e-mail (\EMAIL).
\fi % BRAZILIAN