Permalink
Browse files

advertisement

  • Loading branch information...
DennisYurichev committed Apr 7, 2018
1 parent 420a948 commit 9ebb583731a1c262e98db43cc25d1fac8fdd46f3
Showing 384 changed files with 493 additions and 474 deletions.

This file was deleted.

Oops, something went wrong.
@@ -1,4 +1,4 @@
\section{Java}
\mysection{Java}
\myindex{Java}

% sections:
@@ -1,4 +1,4 @@
\section{lokaler Thread-Speicher}
\mysection{lokaler Thread-Speicher}
\label{TLS}
\myindex{TLS}

@@ -1,4 +1,4 @@
\section{Thread Local Storage}
\mysection{Thread Local Storage}
\label{TLS}
\myindex{TLS}

@@ -1,4 +1,4 @@
\section{Thread Local Storage}
\mysection{Thread Local Storage}
\label{TLS}
\myindex{TLS}

@@ -1,4 +1,4 @@
\section{Thread Local Storage}
\mysection{Thread Local Storage}
\label{TLS}
\myindex{TLS}

@@ -1,4 +1,4 @@
\section{Methoden zur Argumentenübergabe (Aufrufkonventionen)}
\mysection{Methoden zur Argumentenübergabe (Aufrufkonventionen)}
\label{sec:callingconventions}

\subsection{cdecl}
@@ -1,4 +1,4 @@
\section{Arguments passing methods (calling conventions)}
\mysection{Arguments passing methods (calling conventions)}
\label{sec:callingconventions}

\subsection{cdecl}
@@ -1,4 +1,4 @@
\section{Méthodes de transmission d'arguments (calling conventions)}
\mysection{Méthodes de transmission d'arguments (calling conventions)}
\label{sec:callingconventions}

\subsection{cdecl}
@@ -1,4 +1,4 @@
\section{Способы передачи аргументов при вызове функций}
\mysection{Способы передачи аргументов при вызове функций}
\label{sec:callingconventions}

\subsection{cdecl}
@@ -13,7 +13,7 @@ \chapter{\RU{Специфичное для ОС}\EN{OS-specific}%
\DE{\input{OS/syscalls_DE}}
\FR{\input{OS/syscalls_FR}}

\section{Linux}
\mysection{Linux}
\EN{\input{OS/PIC_EN}}
\RU{\input{OS/PIC_RU}}
\DE{\input{OS/PIC_DE}}
@@ -24,7 +24,7 @@ \section{Linux}
\DE{\input{OS/LD_PRELOAD/main_DE}}
\FR{\input{OS/LD_PRELOAD/main_FR}}

\section{Windows NT}
\mysection{Windows NT}
\EN{\input{OS/win32_CRT/main_EN}}
\RU{\input{OS/win32_CRT/main_RU}}
\DE{\input{OS/win32_CRT/main_DE}}
@@ -1,4 +1,4 @@
\section{Systemaufrufe}
\mysection{Systemaufrufe}

\label{syscalls}
\myindex{syscall}
@@ -1,4 +1,4 @@
\section{System calls (syscall-s)}
\mysection{System calls (syscall-s)}

\label{syscalls}
\myindex{syscall}
@@ -1,4 +1,4 @@
\section{Appels systèmes (syscall-s)}
\mysection{Appels systèmes (syscall-s)}

\label{syscalls}
\myindex{syscall}
@@ -1,4 +1,4 @@
\section{Системные вызовы (syscall-ы)}
\mysection{Системные вызовы (syscall-ы)}

\label{syscalls}
\myindex{syscall}
@@ -1,46 +1,61 @@
% To translators: don't bother to translate this... english-only version.
%\vspace*{\fill}

(Advertisement: reverse engineering services.)
% https://tex.stackexchange.com/questions/106418/set-background-color-of-a-box-with-predefined-width

\begin{itemize}
\item Decrypting a database, getting into files of unknown type

\item Rewriting some kind of old EXE or DLL file back to C/C++
\fboxsep20pt
\colorbox{LIGHT-GRAY}
%\colorbox{gray}
{
\begin{minipage}{0.9\linewidth}
%\begin{minipage}

\item Dongles
\begin{center}
{\Large Advertisement: reverse engineering services.}
\end{center}

Occasionally I do \href{https://en.wikipedia.org/wiki/Software_protection_dongle}{software copy-protection dongle} replacements or dongle emulators.
~\\~\\

%\iffalse
\begin{itemize}
\item Decrypting a database, getting into files of unknown type\\
\\
\item Rewriting some kind of old EXE or DLL file back to C/C++\\
\\
\item Dongles\\
\\
Occasionally I do \href{https://en.wikipedia.org/wiki/Software_protection_dongle}{software copy-protection dongle} replacements or dongle emulators.\\
\\
In general, it is somewhat unlawful to break software protection, so I can do this only if these conditions are met:
the software company who developed the software product does not exist anymore to my best knowledge;
the software product is older than 10 years;
you have a dongle to read information from it. In other words, I can only help to those who still uses some very old software, completely satisfied with it, but afraid of dongle electrical breakage and there are no company who can still sell the dongle replacement.

These includes ancient MS-DOS and UNIX software. Software for exotic computer architectures (like MIPS, DEC Alpha, PowerPC) accepted as well.

Examples of my work you may find in this book.

\item Code audit

you have a dongle to read information from it. In other words, I can only help to those who still uses some very old software, completely satisfied with it, but afraid of dongle electrical breakage and there are no company who can still sell the dongle replacement.\\
\\
These includes ancient MS-DOS and UNIX software. Software for exotic computer architectures (like MIPS, DEC Alpha, PowerPC) accepted as well.\\
\\
Examples of my work you may find in this book.\\
\\
\item Code audit\\
\\
I could also try (binary) code audit.
I can try to find vulnerabilities in your software, before others will do it.
This is like penetration testing.
I can try to work with binary code without source code.

You must also be a legal owner of the software product.

E-Mail: \EMAIL %, Skype: dennis.yurichev, Telegram: @yurichev.

\item Published books

I can try to work with binary code without source code.\\
\\
You must also be a legal owner of the software product.\\
\\
E-Mail: \EMAIL \\
\\
\item Published books\\
\\
This book has been translated and published to
\href{https://beginners.re/#chinese}{Chinese},
\href{https://beginners.re/#acorn}{Korean},
\href{https://beginners.re/#farsi}{Farsi}.
You can buy it.
Chinese,
Korean,
Farsi.
You can buy it: \url{https://beginners.re/}.

\end{itemize}
%\fi

\end{minipage}}


%\vspace*{\fill}
%\vfill
@@ -1,4 +1,4 @@
\section{Double negation}
\mysection{Double negation}

A popular way\footnote{This way is also controversial, because it leads to hard-to-read code} to convert non-zero value into 1 (or boolean \IT{true}) and zero value into 0 (or boolean \IT{false}) is \IT{!!statement}:

@@ -1,4 +1,4 @@
\section{Double négation}
\mysection{Double négation}

Une façon répandue\footnote{C'est sujet à controverse, car ça conduit à du code difficile
à lire} de convertir des valeurs différentes de zéro en 1 (ou le booléen \IT{true})
@@ -1,4 +1,4 @@
\section{Двойное отрицание}
\mysection{Двойное отрицание}

Популярный способ\footnote{Хотя и спорный, потому что приводит к трудночитаемому коду} сконвертировать ненулевое значение
в 1 (или булево \IT{true}) и 0 в 0 (или булево \IT{false}) это \IT{!!statement}:
@@ -1,4 +1,4 @@
\section{strstr()-Beispiel}
\mysection{strstr()-Beispiel}
\label{strstr_example}
\myindex{\CStandardLibrary!strstr()}

@@ -1,4 +1,4 @@
\section{strstr() example}
\mysection{strstr() example}
\label{strstr_example}
\myindex{\CStandardLibrary!strstr()}

@@ -1,4 +1,4 @@
\section{Exemple strstr()}
\mysection{Exemple strstr()}
\label{strstr_example}
\myindex{\CStandardLibrary!strstr()}

@@ -1,4 +1,4 @@
\section{Пример strstr()}
\mysection{Пример strstr()}
\label{strstr_example}
\myindex{\CStandardLibrary!strstr()}

@@ -1,4 +1,4 @@
\section{Temperature converting}
\mysection{Temperature converting}

Another very popular example in
programming books for beginners is a small program that converts Fahrenheit temperature to Celsius or back.
@@ -1,4 +1,4 @@
\section{Conversion de température}
\mysection{Conversion de température}

Un autre exemple très populaire dans
les livres de programmation est un petit programme qui convertit une température de Fahrenheit vers Celsius ou inversement.
@@ -1,4 +1,4 @@
\section{Конвертирование температуры}
\mysection{Конвертирование температуры}

Еще один крайне популярный пример из книг по программированию для начинающих, это простейшая программа
для конвертирования температуры по Фаренгейту в температуру по Цельсию.
@@ -1,4 +1,4 @@
\section{Fibonacci numbers}
\mysection{Fibonacci numbers}

Another widespread example used in programming textbooks is a recursive function
that generates the Fibonacci numbers\footnote{\url{http://go.yurichev.com/17332}}.
@@ -1,4 +1,4 @@
\section{Числа Фибоначчи}
\mysection{Числа Фибоначчи}

Еще один часто используемый пример в учебниках по программированию это рекурсивная функция,
генерирующая числа Фибоначчи
@@ -1,4 +1,4 @@
\section{CRC32 calculation example}
\mysection{CRC32 calculation example}
\myindex{CRC32}
\label{sec:CRC32}

@@ -1,4 +1,4 @@
\section{Пример вычисления CRC32}
\mysection{Пример вычисления CRC32}
\myindex{CRC32}
\label{sec:CRC32}

@@ -1,4 +1,4 @@
\section{Network address calculation example}
\mysection{Network address calculation example}

As we know, a TCP/IP address (IPv4) consists of four numbers in the $0 \ldots 255$ range, i.e., four bytes.

@@ -1,4 +1,4 @@
\section{Пример вычисления адреса сети}
\mysection{Пример вычисления адреса сети}

Как мы знаем, TCP/IP-адрес (IPv4) состоит из четырех чисел в пределах $0 \ldots 255$, т.е. 4 байта.

@@ -1,4 +1,4 @@
\section{Loops: several iterators}
\mysection{Loops: several iterators}
\label{loop_iterators}

In most cases loops have only one iterator, but there could be several in the resulting code.
@@ -1,4 +1,4 @@
\section{Циклы: несколько итераторов}
\mysection{Циклы: несколько итераторов}
\label{loop_iterators}

Часто, у цикла только один итератор, но в итоговом коде их может быть несколько.
@@ -1,4 +1,4 @@
\section{Duff's device}
\mysection{Duff's device}
\myindex{Duff's device}
\myindex{Unrolled loop}

@@ -1,4 +1,4 @@
\section{Duff's device}
\mysection{Duff's device}
\myindex{Duff's device}

Duff's device
@@ -1,4 +1,4 @@
\section{\DivisionByMultSectionName}
\mysection{\DivisionByMultSectionName}
\label{sec:divisionbymult}

\RU{Простая функция:}\EN{A very simple function:}
@@ -1,4 +1,4 @@
\section{String to number conversion (atoi())}
\mysection{String to number conversion (atoi())}

\myindex{\CStandardLibrary!atoi()}

@@ -1,4 +1,4 @@
\section{Конверсия строки в число (atoi())}
\mysection{Конверсия строки в число (atoi())}

\myindex{\CStandardLibrary!atoi()}
Попробуем реализовать стандарту функцию Си atoi().
@@ -1,4 +1,4 @@
\section{Inline functions}
\mysection{Inline functions}
\myindex{Inline code}
\label{inline_code}

@@ -1,4 +1,4 @@
\section{Inline-функции}
\mysection{Inline-функции}
\myindex{Inline code}
\label{inline_code}

@@ -1,4 +1,4 @@
\section{C99 restrict}
\mysection{C99 restrict}
\myindex{\CLanguageElements!C99!restrict}
\myindex{Fortran}

@@ -1,4 +1,4 @@
\section{C99 restrict}
\mysection{C99 restrict}
\myindex{\CLanguageElements!C99!restrict}
\myindex{Фортран}

@@ -1,4 +1,4 @@
\section{Branchless \IT{abs()} function}
\mysection{Branchless \IT{abs()} function}
\label{chap:branchless_abs}

Let's revisit an example we considered earlier \myref{sec:abs} and ask ourselves, is it possible
@@ -1,4 +1,4 @@
\section{Функция \IT{abs()} без переходов}
\mysection{Функция \IT{abs()} без переходов}
\label{chap:branchless_abs}

Снова вернемся к уже рассмотренному ранее примеру \myref{sec:abs} и спросим себя, возможно ли
@@ -1,4 +1,4 @@
\section{Variadic functions}
\mysection{Variadic functions}

Functions like \printf and \scanf can have a variable number of arguments.
How are these arguments accessed?
@@ -1,4 +1,4 @@
\section{Функции с переменным количеством аргументов}
\mysection{Функции с переменным количеством аргументов}

Функции вроде \printf и \scanf могут иметь переменное количество аргументов (\IT{variadic}).

@@ -1,4 +1,4 @@
\section{Strings trimming}
\mysection{Strings trimming}
\newcommand{\CRLF}{\ac{CR}/\ac{LF}}

A very common string processing task is to remove some characters at the start and/or at the end.
@@ -1,4 +1,4 @@
\section{Обрезка строк}
\mysection{Обрезка строк}
\newcommand{\CRLF}{\ac{CR}/\ac{LF}}

Весьма востребованная операция со строками --- это удаление некоторых символов в начале и/или конце
@@ -1,4 +1,4 @@
\section{toupper() function}
\mysection{toupper() function}
\myindex{\CStandardLibrary!toupper()}

Another very popular function transforms a symbol from lower case to upper case, if needed:
@@ -1,4 +1,4 @@
\section{Функция toupper()}
\mysection{Функция toupper()}
\myindex{\CStandardLibrary!toupper()}

Еще одна очень востребованная функция конвертирует символ из строчного в заглавный, если нужно:
Oops, something went wrong.

0 comments on commit 9ebb583

Please sign in to comment.