Как-то отвлекся и на автомате случайно набрал
bpx
вместо
bp
в WinDbg. Не сразу понял что сделал, а как дошло - нахлынули воспоминания.
Безжалостная душная летняя украинская ночь где-то в глубинке в начале нулевых. Маленькая темная комната на третьем этаже хрущевки с окном на огороды. В комнате пошарпаный советский стол, платяной шкаф, простая деревянная кровать и дверь в узкий коридор. В дверной проём вбита перекладина турника. Стены комнаты увешаны разнокалиберными полками полными книг и CD-дисков. Эти полки в темноте нависают над всей остальной мебелью. На столе тихонько гудит вентиляторами PentiumII в открытом пошарпаном корпусе. Рядом четырнадцатидерьмовый монитор Shamrock - единственный источник света в комнате. На его выпуклом 800x600-и-ещё-минус-пять-к-зрению экране - "замерзшая" под отладкой Windows 98 и черно-бело-зелёное текстовое окно SoftIce. Я сижу за отладкой уже больше 30 часов, вставая только перекусить и в туалет. Я умираю в этой ночной духоте, уже снял с себя всё кроме трусов, но всё равно очень жарко и пот покрывает меня в несколько слоёв. От меня скверно пахнет, но я не замечаю. Я дышу своим потом вперемешку с запахом дешевого пластика от нагретого монитора и убитой белой noname клавиатуры. Я устал, глаза жжет от недосыпа, спина затекла - но мои мозги работают как часы. Я смотрю на строчки машинного кода и понимаю каждую инструкцию, вижу все варианты codeflow, все возможные движения данных в адресном пространстве. Я слышу как звенят тонкие хрустальные нити логических связей внутри кода. Я чувствую как двойные слова меняют форму двигаясь между регистрами и адресами в памяти. Я понимаю всю программу целиком потому что в этот момент я и есть программа. Я - процессор, и код, и данные. Я - хитрая сетка условных переходов, и вереница безымянных байт в секции
.data
, и секция импорта, и лицензионная защита в DLL библиотеке которая мапится в адресное пространство нестандартным способом. Это всё - я. Мои пальцы касаются клавиатуры - и вот прямо сейчас, в это мгновение в мире нет ничего лучше звука "плимкающих" клавиш и запаха пота в перемешку с запахом дешевого пластика. Я знаю - уже скоро. Туда ещё не дошло исполнение, но я уже вижу
это дальше в коде. Ещё чуть-чуть дотрассировать, совсем немного. Я набираю в командной строке SoftIce:
: bpx 00402442
Ещё совсем чуть-чуть дотрассировать...
No comments:
Post a Comment