Чтобы понять, что, собственно, происходит при взломе аппаратных средств, необходимо обладать некоторым начальным уровнем знаний в области электротехники.

Техническое моделирование, как и хакинг, — это навык, требующий времени и усердия (если вы, конечно, хотите стать профессионалом в этой области). Об этом можно писать бесконечно, но наш ресурс ограничен объемом книги. Прочтя данную главу, вы не станете инженером-электронщиком или гуру в электронике, но сможете получить достаточно знаний, чтобы начать свой собственный творческий путь.

Базовые понятия

Прежде чем приступать к изучению специфических компонентов, необходимо познакомиться с основными понятиями электроники. В этой части мы поговорим о различных системах счисления, системе обозначений и базовой теории, применяемых во всех областях инженерного дела.

Биты, байты и полубайты

На низшем уровне микросхемы и компьютеры хранят информацию в двоичном формате. То есть в системе счисления с основанием 2, состоящей только из двух цифр — «0» и «1», каждая из которых именуется бит. Английское слово «bit» (бит) происходит от комбинации слов «binary» (бинарный), означающего нечто, состоящие из двух частей или компонентов, и «digit» (цифра). Обычная десятичная система счисления, которой мы пользуемся в повседневной жизни, представляет собой систему с основанием 10, состоящую из цифр от 0 до 9.

В электротехнике бит «1» обычно представляется положительным напряжением (например, 5 В), а «0» представляется нулевым напряжением (или потенциалом заземления). Тем не менее, многие протоколы и определения представляют двоичные величины другими способами.

Группа из четырех битов — это полубайт, соответственно, из восьми битов — байт. А группа из 16 битов обычно определяется как слово (хотя слово иногда определяется и по-другому в зависимости от архитектуры системы, с которой вы имеете дело).

Чем больше группа битов, тем больше информации можно передать с их помощью. С помощью одного бита можно представить только две комбинации (0 и 1), полубайтом можно представить 24 (16) возможных комбинаций (от 0 до 15 в десятичной системе), байтом можно представить 28 (256) возможных комбинаций (от 0 до 255 в десятичной системе), а словом — 216 (65536) возможных комбинаций (от 0 до 65535 в десятичной системе).

Для представления групп двоичных цифр в мире цифровой вычислительной техники обычно пользуются шестнадцатеричным форматом. Это система счисления с основанием 16, в которой в качестве основных элементов в одном разряде до добавления нового разряда используется 16 последовательных знаков (цифры от 0 до 9 и буквы от A до F). Один шестнадцатеричный разряд может представить совокупность из четырех битов (полубайт). Два шестнадцатеричных разряда могут представить 8 бит (байт). Ниже показано, как одинаковые числовые значения записываются в десятичной, двоичной и шестнадцатеричной системах счисления. При записи шестнадцатеричных чисел иногда используют префикс $ или 0x, чтобы избежать путаницы с другими системами.

Общепринятым кодом для хранения символов в компьютерных системах является Американский стандартный код информационного обмена, или ASCII (произносится «аски»). Стандартный набор ASCII-символов использует один байт для установления соответствия с каждой из 128 различных букв, цифр, знаков препинания и специальных символов.

Многие из специальных символов сохранились от изначальной спецификации 1968 года и обычно уже не используются в тех целях, для которых они предназначались. Задействованы только десятичные значения от 0 до 127, что составляет половину от всего места, имеющегося в байте. Расширенный набор ASCII-символов использует полностью все 256 символов, имеющихся в байте. Десятичные значения от 128 до 255 задействованы для прочих специальных символов, использующихся в иностранных языках, графике и математике.