forked from wangyif2/RE-for-beginners
-
Notifications
You must be signed in to change notification settings - Fork 0
/
glossary.tex
executable file
·210 lines (181 loc) · 7.6 KB
/
glossary.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
\newglossaryentry{tail call}
{
name=\IFRU{хвостовая рекурсия}{tail call},
description={\IFRU{Это когда компилятор или интерпретатор превращает рекурсию
(с которой возможно это проделать, т.е., \IT{хвостовую}) в итерацию для эффективности}
{It is when compiler (or interpreter) transforms recursion (with which it is possible: \IT{tail recursion})
into iteration for efficiency}: \url{http://en.wikipedia.org/wiki/Tail_call}}
}
\newglossaryentry{endianness}
{
name=endianness,
description={\IFRU{Порядок байт}
{Byte order}: \url{https://en.wikipedia.org/wiki/Endianness}}
}
\newglossaryentry{caller}
{
name=caller,
description={\IFRU{Ф-ция вызывающая другую ф-цию}{A function calling other}}
}
\newglossaryentry{callee}
{
name=callee,
description={\IFRU{Вызываемая ф-ция}{A function being called by other}}
}
\newglossaryentry{debuggee}
{
name=debuggee,
description={\IFRU{Отлаживаемая программа}{A program being debugged}}
}
\newglossaryentry{leaf function}
{
name=leaf function,
description={\IFRU{Ф-ция не вызывающая больше никаких ф-ций}
{A function which is not calling any other function}}
}
\newglossaryentry{link register}
{
name=link register,
description=(RISC) {\IFRU{Регистр в котором обычно записан адрес возврата.
Это позволяет вызывать leaf-функции без использования стека, т.е., быстрее.}
{A register where return address is usually stored.
This makes calling leaf functions without stack usage, i.e., faster.}}
}
\newglossaryentry{anti-pattern}
{
name=anti-pattern,
description={\IFRU{Нечто широко известное как плохое решение}
{Generally considered as bad practice}}
}
\newglossaryentry{stack pointer}
{
name=\IFRU{указатель стека}{stack pointer},
description={\IFRU{Регистр указывающий на место в стеке.}
{A register pointing to the place in the stack.}
\SP/\ESP/\RSP \InENRU x86}
}
\newglossaryentry{decrement}
{
name=\IFRU{декремент}{decrement},
description={\IFRU{Уменьшение на $1$}
{Decrease by $1$}}
}
\newglossaryentry{increment}
{
name=\IFRU{инкремент}{increment},
description={\IFRU{Увеличение на $1$}
{Increase by $1$}}
}
\newglossaryentry{loop unwinding}
{
name=loop unwinding,
description={\IFRU{Это когда вместо организации цикла на $n$ итераций, компилятор генерирует $n$ копий тела
цикла, для экономии на инструкциях обеспечивающих сам цикл}
{It is when a compiler instead of generation loop code of $n$ iteration, generates just $n$ copies of the
loop body, in order to get rid of loop maintenance instructions}}
}
\newglossaryentry{register allocator}
{
name=register allocator,
description={\IFRU{Ф-ция компилятора распределяющая локальные переменные по регистрам процессора}
{Compiler's function assigning local variables to CPU registers}}
}
\newglossaryentry{quotient}
{
name=\IFRU{частное}{quotient},
description={\IFRU{Результат деления}{Division result}}
}
\newglossaryentry{product}
{
name=\IFRU{произведение}{product},
description={\IFRU{Результат умножения}{Multiplication result}}
}
\newglossaryentry{NOP}
{
name=NOP,
description={``no operation'', \IFRU{холостая инструкция}{idle instruction}}
}
\newglossaryentry{POKE}
{
name=POKE,
description={\IFRU{Инструкция языка BASIC записывающая байт по определенному адресу}
{BASIC language instruction writting byte on specific address}}
}
\newglossaryentry{keygenme}
{
name=keygenme,
description={\IFRU{Программа имитирующая защиту вымышленной программы, для которой нужно сделать
генератор ключей/лицензий}{A program which imitates fictional software protection,
for which one needs to make a keys/licenses generator}}
}
\newglossaryentry{dongle}
{
name=dongle,
description={\IFRU{Небольшое устройство подключаемое к LPT-порту для принтера (в прошлом) или к USB}
{Dongle is a small piece of hardware connected to LPT printer port (in past) or to USB}.
\IFRU{Исполняло функции security token-а, имела память и, иногда,
секретную (крипто-)хеширующую функцию}
{Its function was somewhat similar to security token, it has some memory and, sometimes,
secret (crypto-)hashing algorithm}.}
}
\newglossaryentry{thunk function}
{
name=thunk function,
description={\IFRU{Крохотная функция делающая только одно: вызывающая другую функцию.}
{Tiny function with a single role: call another function.}}
}
\newglossaryentry{user mode}
{
name=user mode,
description={\IFRU{Режим CPU с ограниченными возможностями в котором он исполняет прикладное ПО. ср.}
{A restricted CPU mode in which it executes all applied software code. cf.} \gls{kernel mode}.}
}
\newglossaryentry{kernel mode}
{
name=kernel mode,
description={\IFRU{Режим CPU с неограниченными возможностями в котором он исполняет ядро OS и драйвера. ср.}
{A restrictions-free CPU mode in which it executes OS kernel and drivers. cf.} \gls{user mode}.}
}
\newglossaryentry{Windows NT}
{
name=Windows NT,
description={Windows NT, 2000, XP, Vista, 7, 8}
}
\newglossaryentry{atomic operation}
{
name=atomic operation,
description={
%TODO: ``\alpha\tau\omicron\mu\omicron\varsigma''
``atomic''
\IFRU{означает ``неделимый'' в греческом языке, так что атомарная операция
это операция которая гарантированно не будет прервана другими тредами}
{mean ``indivisible'' in Greek, so atomic operation is what guaranteed not
to be breaked up during operation by other threads}}
}
% to be proofreaded (begin)
\newglossaryentry{NaN}
{
name=NaN,
description={
\IFRU{не число: специальные случаи чисел с плавающей запятой, обычно сигнализирующие об ошибках}
{not a number: special cases of floating point numbers, usually signalling about errors}
}
}
\newglossaryentry{basic block}
{
name=basic block,
description={
\IFRU{группа инструкций не имеющая инструкций переходов,
а также не имеющая переходов в середину блока извне.
В IDA он выглядит как просто список инструкций без строк-разрывов}
{a group of instructions not having jump/branch instructions, and also not having
jumps inside block from the outside.
In IDA it looks just like as a list of instructions without breaking empty lines}
}
}
\newglossaryentry{NEON}
{
name=NEON,
description={\ac{AKA} ``Advanced SIMD''---\ac{SIMD} \IFRU{от}{from} ARM}
}
% to be proofreaded (end)