Pull to refresh

Comments 155

Напоминает больше историю для ithappens :)
Даже на хапенсе историю бы моментально разоблачили как охотничий рассказ.
Даже если не брать в рассмотрение технические подробности (серьезные ребята не догадались вставить в автозагрузку проверку контрольных сумм?)
Наличие систематических недостач привлекло бы внимание в течении недели работы, после чего систему бы разобрали по байту.
Ниже я не раз и не два предлагал (в том числе и другим коментаторам) сформулировать конкретные вопросы, если вы хотите их задать для прояснения неясностей. На догадки «если бы, то» мне ответить нечем, да и незачем. История это история, и к счастью чужие «экспертные» мнения ее изменить не в силах :)
Хорошо, конкретный вопрос: как группа товарищей обеспечила отсутствие интереса к систематическим недостачам?
Второй конкретный вопрос, можно пруфы? Название города, и фирмы установшика чудосистемы, в студию.
Первый вопрос я передам и вскорости передам ответ на него от очевидца и участника событий.

На второй вопрос вы можете найти ответ в третьем предложении хабратопика. Человек пожелал сохранить свою анонимность. Ответ — нет, название города, фирмы установщика, фамилии, имена, явки и пароли — нельзя.
UFO just landed and posted this here
Да видимо мне действительно стоит объяснится, откуда взялась такая, может быть через чур резкая реакция. При всем уважении к сообществу, мне кажется подобным историям место на итхапенс. Хотя если всем нравится, пусть будут и тут, от хабра не убудет.

Моя же проблема в том, что как раз примерно в предполагаемое время событий, я активно «эникеил» по разным предприятиям, в том числе приходилось видеть и промышленные решения. И писал на ассемблере (правда на этот момент, видимо, это ещё был Z80), так что технические несуразности в этой истории мне режут глаза, и отсутствие технических подробностей это только усугубляет. Тут я бы даже если захотел — поверить бы не смог.

Черт, я даже год событий идентифицировать не могу. Судя по наличию процессоров 086 в новых промышленных решениях и жестким дискам «на целых 20 мегабайт», это должна быть вторая половина восьмидесятых, но автор пишет о том, что это девяностые, и некоторые другие факты указывают на тоже. С другой стороны мой первый интел — очень бывалый 286-ой с 40-ка мегабайтным диском и дисководом на 3,5 дюйма появился у меня в 93-ем, а в промышленных решениях в это время я видел уже только 386+.

В это же время в политехе мы играли в «оставь подлянку следующей группе». От простейших шуточек прописанных в autoexec.bat дело быстро перешло к резидентам и модифицированным exe файлам, так как учился я на электротехе и талантов у нас хватало. Даже на забитом винте политеховской двойки спрятать что-то было делом не простым. На домашнем же компьютере я знал что делает каждый из файлов, там спрятать что-то без моего ведома было бы нереально. То же самое было и у моих приятелей, которые на сегодняшний день к ИТ имеют достаточно отдаленное отношение. Так что я сильно затрудняюсь догадаться, где могло находится то «хорошо спрятанное место на жестком диске» куда дублировались файлы с дискеты. Как среди десятка файлов, необходимых в описанном решении (msdos.sys, io.sys, command.com, config.sys, autoexec.bat, keyrus.com, вездесущий aidstest.exe и сам исполняемый файл программы) можно спрятать ещё один? Сдвинули партиции и разместили все это в неиспользуемом пространстве? И никто не заметил что диск усох на пару мегабайт? Да и работать с неразмеченным местом, прямо скажем, не так уж просто. А ведь оттуда ещё надо и запускать tasm, или что там было…
Как все эти замечательные возможности впихнуть в keyrus (размер com-файла не может превышать 64кб) я вообще затрудняюсь даже предположить.

Но на самом деле все это неважно, потому что проблема тут видится не техническая, а административная. Потом, я почти десять лет проработал в торговле (в том числе и по муниципальному заказу, хотя бензином не торговал) и ни разу не видел, чтобы обнаруженная систематическая «усушка» не пресекалась дольше чем за пару месяцев. Нужно быть очень пофигистичным, чтобы этого не сделать. Воруют хитро и невозможно найти как? Мягкий вариант девяностых — «господа, у нас невозможно украсть так чтобы вы этого не заметили. Поэтому, если в течении недели виновный не будет найден, это значит что вы все в сговоре, и в случае следующей недостачи будете уволены по статье все»

При всей моей критичности, я хорошо отношусь к интересным байкам, и не стал бы ничего писать, если бы текст не вызвал лично у меня боль в нижней части спины. А вызвал он её у меня очевидным подтекстом: «Если чиновники воруют — это очень плохо, а если ворует простой человек, красиво и изобретательно, то это прекрасно.» Конечно, автор утверждает что «никто не пострадал», но на самом деле, без пострадавших в таких историях никогда не обходиться. И если предположить что история истинна, а рассказчик искренне гордиться своим достижением… я даже не знаю что сказать. Особенно печально за честных ребят интеграторов (или разработчиков ?) которые были вынуждены по гарантии менять выведенное из строя недешевое железо, (как ломали, разрядником по портам?), получили отвратительный пиар своего продукта, а может быть и заплатили неустойки.

Спрятать данные при желании можно. Например, тупо дописывать к какому-нибудь .com файлу — у них загружаются только первые 64К, остальное игнорируется. Антивири тогда были весьма примитивные, да и не везде применялись. Всякие проверки CRC тоже не особо часто встречались.

Даже в современных «защищенных» системах я видел достаточно пофигизма и распиздяйства, чтобы без проблем насовать всякого говна от скриптов до руткитов. По моему убеждению, лучшей защитой от шалостей была и есть физическая защита.

По поводу воровства, есть простая формула — не пойман, не вор. А тут еще и возмещали недостачу с операторов, так что никого это особо не парило. Вот реально, сколько рублей украли эти «хакеры»? Кто пострадавший? Тут даже недополученной прибыли нет, которую так любят считать современные «правообладатели».
Как я и обещал, передаю ответ на заданные вопросы:

серьезные ребята не догадались вставить в автозагрузку проверку контрольных сумм


«Да, сотни вариантов контроля можно придумать. А ведь эта система управления блок-пунктом бензозаправки была практически „первой ласточкой“, и лишь в будущем контроль укреплялся, устанавливались „несбрасываемые в 0“ счетчики, и многое другое. Я просто описал „первые шаги“, и с ихней, и с нашей стороны.»

как группа товарищей обеспечила отсутствие интереса к систематическим недостачам?


«Видно, что вы не работали в сфере торговли. Да, с недостачами пытались бороться, с в первую очередь грешили на то, что кто-то научился вскрывать крепкий, надежный, запломбированный замок на заливной горловине танка (ну, это большой подземный резервуар) или договариваются с экспедиторами автоцистерн, и те недоливают бензин, а вместо бензина отдают готовые деньги. Боролись-боролись, боролись-боролись, а со временем с бензином стало легче, и заправку спецмашин перевели на другие объекты.»
Получается, вера в непогрешимость их программного обеспечения, была настолько велика…
При прочтении у меня появился вопрос: «Каким образом получилось слить информацию с данного компьютера, ведь судя по всему тот был опломбирован?» Или все действия так и проводились на том самом компьютере?
Извините, ветку вопросов-ответов начали в другом месте и там уже есть ответ на этот вопрос.
За одно только название статьи плюсую :)
Вот это я понимаю LifeHacker, а не то, что сейчас, одни Капитаны О.
говорят на ворованом бензине машина лучше ездит
И соседские яблоки тоже слаще, ага :)
И тут яблоки… Да уж. Ни одной темы без эпла
Машина от этого хуже ездить точно не станет)
Постоянная, пусть и малая недостача должна была вызывать, уйму вопросов и «нежного внимания» у тех, кто эту систему внедрял ради тотального контроля — руководства. Ну один раз отдал в кассу, второй уже однозначно настораживать должен, учитывая что бензин в дефиците.
А какая разница, если недостачу прилежно компенсировали?
Дело-то было не в прибыли (что недостача компенсировала), а в том что бы бензин попадал только кому надо (что недостачей не компенсируется).
К тому же подозрительная активность может быть только верхушкой айсберга.
Я так понимаю что это было незадолго до развала СССР, да ещё в окологос-шараге. Там могли и болт забить. Тем более, что в таких организациях нередко тащили все уровни работников. Впрочем с полной достоверностью говорить не могу — в то время я ещё в школу не ходил.
Какая разница кому? Представьте себя неким поставщиком, который на основании сферического в вакууме контракта, становится «гарантирующим поставщиком». Итого Вы располагаете дефицитным товаром, который согласно контракта должны порционно распределять между пребывающими сотрудниками заказчика, по мере их прибытия.
Механизм запускается с момента внесения предоплаты заказчиком (обратим внимание на то, что в случае с государством, даже в «90-ые 20-го» — это всегда был безналичный расчет, кто близки к бухгалтерии или предпринимательству прекрасно знают как огромна разница между налом и безналом)
И вот у Вас на предприятии с завидным постоянством обнаруживается недостача, благодаря которой к концу месяца у бухгалтера начинается «анальная эпилепсия», когда он/она пытается закрыть 1 000 литров отпущенного «госбензина» оплата которых прошла единой счет-фактурой на счет XXX, наличными деньгами из YYY которые еще на счет надо на каком-то основании завести.
PS: схема становится более простой если бы в задаче появилось усоловие согласно которого бензин все же можно было бы продовать за наличность в кассу, тогда «обход» системы действительно с точки зрения бухгалтерии можно было бы нивелировать, но тогда один фиг нарываемся на грабли с отчетностью согласно ККМ и счет-фактур, так как на вылитый просто бензин, ни в БД системы ни в ККМ не попадает.
Могло быть проще. Руководство просекло фишку и сказало: «Делитесь!».
И волна бензооткатов накрыла «почти южный город».
А как копию файлов с жесткого диска получили после ухода техников, если все запломбировано?
Ах да, там она «интегрировали» свои наработки вроде WiFi модуль размером со спичечную головку.
А не патентовали технологию, чтобы бензин воровать… Хех
Они дебажили их не отходя от кассы, т.е. на том же ПК.
Я задал вопрос автору и он любезно объяснил как это происходило.
Информация из тестовых программ внутренней системы, которые были написаны на паскале, перехватывалась и писалась на диск. Достать данные не было возможности! Все данные были доступны лишь для просмотра на экране, транслятор с ассемблера позволял вывести все перехваченные данные через текстовый редактор. Хранить «целиком» копии тестовых программ не было никакой возможности, их размер и объем вызывали бы подозрения и они были бы обнаружены.

Т.е. анализ на который ушли недели был усложнен этим фактом — вся информация была доступна в прямом смысле слова «только для чтения».
Тогда непонятно это:
«Настало утро, пришли профессионалы-электронщики… все было запломбировано и приведено в рабочее состояние»


«не менее недели нашей работы по вечерам… Разобравшись с управлением, мы на ассемблере написали специальную программу, которая умела в обход всех счетчиков наливать 10 или 20 литров бензина, и делать это без пластиковых карточек. „

Как потом пользовались программой или как её заливали назад. Каким образом происходил обмен если все запечатано.
switlle, Trimirys и zodiac! Спасибо вам за вопросы!

Давайте поступим наиболее корректным способом, я передам их непосредственному участнику событий, и не буду пересказывать ответ своими словами. Это позволит вам получить исчерпывающий ответ, а мне — не практиковаться в «испорченном телефоне» :) Единственный момент — ответа придется немножко подождать.
Передаю ответ на заданные вопросы:

Как потом пользовались программой или как её заливали назад


«Да, невнимательно я описал процедуру. Тестовыми программами на Паскале разработчики проверяли систему, и исходные (символьные) файлы этих программ, с комментариями, нашими стараниями остались на компьютере в отдельном, неприметном месте на жестком диске. Потом мы могли только смотреть на эти файлы (с помощью текстового редактора) и разбираться с кодами управления системой. Свои программы мы писали на Ассемблере, на этом же компьютере, попытка спрятать на жестком диске громоздкий компилятор Паскаля или Си была бы заметной. Это все технические тонкости, вот я и не описывал их в статье.»
Теперь понятно. А вообще, зря не описывали. Надо было описать, ведь это интересно и на техническом ресурсе необходимо. :)
Это ничего что аффтар 1985г рождения? :)))
«Я лишь с гордостью публикую впервые эту историю здесь, с разрешения и по просьбе автора, который пожелал остаться неизвестным.»
Это автор Worm.AzsDOS.AutoPetrolOverflow.dthb ))
А как насчет прочитать пост перед комментированием? «Я лишь с гордостью публикую впервые эту историю здесь, с разрешения и по просьбе автора, который пожелал остаться неизвестным.»
Я лишь с гордостью публикую впервые эту историю здесь, с разрешения и по просьбе автора, который пожелал остаться неизвестным.
Я всегда буду обновлять комментарии, прежде чем писать. Я всегда буду обновлять комментарии, прежде чем писать…
ааа! туплю! конец рабочего дня :( сорри
Иногда полезно прочитать статью, прежде чем писать комментарий.

«с разрешения и по просьбе автора, который пожелал остаться неизвестным»
«аффтар» написал, что мотроллер не его.
Не читай @ комментируй!

«которую рассказчик поведает нам от первого лица. Я лишь с гордостью публикую впервые эту историю здесь, с разрешения и по просьбе автора, который пожелал остаться неизвестным.»
Интересно как «бухи» перекрывали предоплаченный государством бензин, с приходом в кассу?
PS: И еще с пяток аналогичных вопросов сами собой таятся в моем воспаленном мозгу.
круто=)
в наше время продали бы все секреты…
UFO just landed and posted this here
Не понял, зачем заправщикам деньги платили?
С них списывали за недостачу. Ровно столько сколько стоил бензин, которого недоставало после заправки «налево».
Наверное, потому что понятие «совесть» тогда было ещё в моде.
Совесть? Хе хе. Просто заправщики были «в теме», а то и в доле. В противном случае заправщик мог легко стукануть начальству. И лавочка бы прикрылась с уголовным делом.
они как бы сами и были заправщики
Чтобы те отдали эти деньги в кассу. Ваш К.О.
Эх, вот время-то было… романтика… заголовок только у статьи «хромает» — ну, не воровали же они бензин, по сути :)
Увлекательно, согласен, но убей бог, не понимаю, почему это слив и перепродажа из под полы строго лимитированного бензина и не предназначенного для свободной продажи не является воровством? А вы уверены, что в какой то момент как раз пресловутых 10 литров не хватило скорой помощи например, чтобы доехать в деревню «Пипкино» и спасти жизнь человека? Это тоже спецмашины, и в статье не указано, что заливались черные «волги» государственных деятелей для поездок в баню.
Если произошло изнасилование то по сути это тоже только секс, но факт несогласия изнасилованной стороной на секс это не отменяет.
То есть, классический российский вариант: «воровать нехорошо, а у государства сам бог велел?».
С юридической т.з. — именно что воровали (можно ещё мошенничество пришить).
Да… а сейчас все наоборот. Некоторые автозаправки недоливают процентов 10 бензина, о чем интернет гудел, когда это раскрылось. Причем, недолив опционален — по нажатию кнопки :) И государство ничего с этим не делает, хотя знает, естественно (в поиске про «недолив бензина» более 60 тыс. результатов)
Масштабы меняются… а народ все так же мешает государству рубить бабло. И вообще в России народ, похоже, лишний. :(
Ну не долил оператор 1 литр. И что по-вашему дальше? После смены остается нереализованные 100 литров, которые они с гордостью уносят домой? Гуглить лень такую ерунду :)
Ну на этом могут зарабатывать станции. Учитывая маржу, прибыль бы получилась неплохая с 10% недолива;)
Т.е. вы всё-таки настаиваете, что в конце смены в неком промежуточном баке остается бензин, который не попал в машину?

Да, если заправку прервать на половине, то действительно бензин можно вернуть в цестерну, но только в том случае, если чек не закрыт (при заправке до полного бака например). Если вам на заправке выдали чек на 10 литров, то будьте уверены — все 10 литров попадут к вам. В случае если вы возьмете 9, то у оператора единственный путь — залить этот литр в следующую машину. Ну или прибежать со своей канистрой и залить в неё :) Вернуть пробитый по чеку бенз можно, но там уже надо документы на возврат оформлять, переключать саму колонку, вообщем просто так незаметно не пройдет. За все заправки не скажу, но большинство устроены таким образом.
Я ни на чем не настаиваю, я говорю о теоретической возможности. АЗС настраивает свои колонки так, что вы платите за 10 литров, на счетчике видите 10, а получаете 9 (ну или 9.9, смотря сколько хотят взять). Мало кто сможет точно определить сколько там залилось без спец. оборудования. А с проверкой договориться. Я не утверждаю, что так и есть, но вполне может быть в странах СНГ;) Операторы и большая часть персонала, при этом, вообще не в курсе. А АЗС поднимает огромные деньги (10% вполне сравнимо с маржой, скорее всего. Если не больше ее).
Ниже я написал коммент про недолив :)
Это вы описали причины, почему обычный пользователь колонки может заметить расхождение, если его нет. Но ничего о том, почему заправки действительно не могут обманывать.
Я частенько бываю в закулисье заправки и вижу цифры (пролив за смену, остаток в резервуаре). Никаких нестыковок, что продали 20 000 литров, а из резервуара ушло 19 900 я не видел никогда. Погрешность есть, но около литра всего :) Может конечно начальник заправки сделал потайной карман в резервуаре, который не учитывается основным датчиком, и откуда каждый день сливает по 100 литров, но это уже фантастика.

Поработайте на заправке хотя бы месяц, поймете что к чему :)

Отвечу как метролог, который по долгу службы калибрует кориолисовые расходомеры, через которые происходит отпуск нефтепродукта с наливаков нефтебазы и тп. Даже если прибор настроен на «законный обман» клиента, тоесть недолив в пределах 0,25% погрешности, то это может принести нефтебазе до 2000$ в день, просто на ровном месте, а как эти деньги обналичить — есть множество способов. Есть некая нефтяная корпорация, назовем ее «Нефтегляд», так они постоянно просят о критической настройке «в минус», а я тихонько настраиваю «в ноли», ибо страдаем на выходе мы, водители. И на заправках ее я не заправляюсь, ибо бодяжат…
Ну про $2000 вы явно загнули. Это же 2.5 тонны бензина. С учетом дневного пролива — 10-15 тонн для средней заправки, это гиганский недолив должен быть))) При погрешности 0.25% получится всего 30 литров в день, 1000 рублей. Я думаю на недовесе колбасы в мясном отделе делают больше)))))
Про 2000$ — это я не про заправку, а про нефтебазу, которая раздает на бензовозы для заправок. А мы же понимаем, что если на выходе по бумагам все сходится, то заправка также компенсирует погрешность нефтебазы. У нее, грубо говоря, нет другого выхода. К тому же есть такой абсурд, что нефтебаза продает килограммы топлива, а конечный покупатель покупает литры, поэтому немного экономичнее заправляться утром а не после жаркого дня.
Ну что Вы, никто домой ничего не уносит. Это не инициатива заправщиков, а подход владельцев к бизнесу. В программу дозирования специально встроен код, позволяющий оператору включать и выключать программу недолива (при проверке). Выгоду получают владельцы в виде дополнительно реализованных литров бензина.

Обычно выглядит так, что Вы заправляете полный бак, скажем 50 литров, а Вам заливают 55 и платите Вы за 55 литров. Или Вы заливаете 10, а Вам заливают 9 и лишний литр продается другому клиенту.

Кому ерунда, а кому 10% дохода на пустом месте. Например, емкость маленького танка для топлива 20000л, 10% — 2000л или в пересчете на 95-й бензин (сегодня 29,65 р.) 59300р. В Москве такой объем АИ95 продается за 1-2 дня. Итого в худшем варианте в месяц получается лишних 889500р с танка. Учитывая более дорогие марки и более дешевые, усредним до 700 т.р. с каждого из 4-х танков. Итого 2 млн. 400 тыс. р. с каждой автозаправки в месяц из воздуха за счет недолива. Вообще, я описывая ситуацию, я имел в виду одну компанию, у которой в Москве и МО примерно 200 АЗС, что обеспечивает недолив примерно на 480 млн руб ежемесячно. Действительно, ерунда…
Учитывайте, что помимо бензобака в машине есть много других ёмкостей, где скапливается бензин (инжектор, фильтры, насос, топливные шланги). 2-3 литра в них легко можно упаковать. Это по поводу перелива.

Про недолив. Залили в канистру 10 литровую канистру бензин. На колонке ровно 10 литров было. Приехали домой — там 9 литров. Как так? Да просто. Бензин нагрелся -> увеличилась плотность -> занимаемый им объем уменьшился. Поэтому объем в данном случае неверная величина. Надо брать массу (кг) бензина, которую он занимает в колонке и в канистре. Этот показатель будет точнее. Но померять её на колонке невозможно :) Ну и учитывайте, что канистры никто не проверяет на точность, там легко может быть не 10, а 9.5 литров. Для обывателя эта разница незаметна.
От нагрева плотность уменьшается. Соответственно объем увеличивается.
Если бы Вы поискали материалы по этому делу, то нашли бы кучу видео и документальных подтверждений и тестов. Я видел только два видео на эту тему. В обоих незаметно брали специальную прозрачную емкость с делениями для проверки бензоколонок и незаметно для оператора наливали бензин в нее. 10% недолива задокументировано. Проблема в том, что даже имея на руках такие подтверждения, оказалось невозможно компанию, владеющую АЗС привлечь к ответственности, поскольку недолив включается специально оператором, о чем тоже есть видео. Один из людей снял видео, написал заявление в УВД и его стали узнавать на станции и наливать полностью, но его другу на той же станции опять же документально подтверждено — опять не долили.
Дайте, пожалуйста, ссылочки. Очень хочется посмотреть-почитать собранные документальные материалы.
Подборки у меня нет. Но вот, что нашлось в Яндексе.
yandex.ru/yandsearch?text=%D0%BD%D0%B5%D0%B4%D0%BE%D0%BB%D0%B8%D0%B2+%D0%B1%D0%B5%D0%BD%D0%B7%D0%B8%D0%BD%D0%B0&lr=213

И вот некоторые интересные ссылки, (надеюсь, сэкономил Вам пару минут драгоценного времени):
marker.ru/news/504133
intertruck.ru/pages/dorozhnyy_advokat/kak_nas_obmanyvayut_nedoliv_topliva_na_rossiyskikh_azs.html
Блин, зря обрадовался, думал буду тырить бензина понемножку.
А после жаловаться на ДПСников берущих взятки?
В одной партнерской конторке, как-то стало обыденным списывать некоторые потери на так называемые «глюки» то в 1С, то еще где ни будь. Вскоре списывать пришлось уже некоторым сотрудникам с образца заявление :)
Внедрялись тогда в комманд.ком, брали просто более древний, и меньший, и «дотачивали» под определенный размер, более нового, большего комманда.кома. Было незаметно. Копируемые с дискет файлы дописывали, через разделитель в файлы справки нортона. Аналогично, с клавиатурным перехватом обстояло дело.

У меня долгое время работал резидент, подсчитывающий таким образом время бездействия/работы сотрудников, по принципу — раз в три минуты что-то нажал/не нажал ничего. Кстати, эта штука была сделана как вирус, не было просто необходимости распространять, по всей фирме сами таскали дискеты.
Простите ДРАЙВЕР ЧЕГО? Дисплея? КЛАВИАТУРЫ? В Досе?

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

Любой системщик который понимает как работает ДОС, напишет код длинной не более 256 байт. Которому не будет нужен ни autoexec ни модификация каких то фантастических драйверов для своей активации и работы.

История ВЫМЫСЕЛ, по крайней мере в части ее технической реализации.

demimurych, история не вымысел ни в одной из ее частей.
Если вы хотите уточнить какой-то технический момент, просто изложите конкретный вопрос, я задам его очевидцу этих событий и передам ответ. Единственное что я не могу обещать — это «мгновенного» ответа, придется немножко подождать.
Например, под «драйвером дисплея и клавиатуры» понимается keyrus.
>>Простите ДРАЙВЕР ЧЕГО? Дисплея? КЛАВИАТУРЫ? В Досе?

Сюрприз, да?
почему это другие? Вполне себе «те самые». Штука, которая работает прослойкой между устройством и прикладным ПО. Защиты в досе не было, прикладное ПО работало непосредственно с драйверами, которые были в трёх вариантах: в виде функций ОС (int 20h..2fh), с драйверами из BIOS (int 10h для видео, int 13h для диска) или в виде отдельный файлов драйверов (яркий пример — mscdex.sys, драйвер cd-rom).

Сейчас, когда в ходу защита, драйверы стали реализовывать некий стандартный интерфейс для ОС, а ПО для обращения к устройствам стало использовать системные вызовы. Но суть не поменялась — драйвер по-прежнему это штука, которая устройство-специфична и реализует некий программный интерфейс для работы с этим устройством.
Нет, не «те самые». Это были вообще любые программы, написанные в определённом формате.

Да, некоторые из них имели отношение к оборудованию, но это не были драйвера в современном понимании, они не унифицировали устройства, а просто предоставляли какое-то API к чему-либо. Даже для доступа к памяти существовало несколько известных протоколов с разными возможностями (XMS, EMS, VCPI, DMPI, плюс всякие UMB и HMA и доступ к «обычной» памяти).

Некоторые драйвера (ANSI.SYS, например) вообще не взаимодействовали с железом в современном «низкоуровневым» представлении, а просто добавляли какое-то более удобное API, т.е. были, по сути, библиотеками более высокоуровневых вызовов.
Вот вы сейчас про ems написали. Я напомню, что это такое.

Шина памяти была 20-битная, и памяти было 1 мб пространства, из которых треть была отведена для memory mapped-устройств — видеопамяти, rom bios, option rom и что ещё захочешь. Туда отображались boot romы сетевых плат, raid-контроллеров.

Были и такие устройства — карты памяти. Эта такая плата расширения, вставлявшаяся в слот ISA, а все её мегабайты отображались в адресное пространство процессора как 64K по адресу 0xC0000 или 0xD0000 (в досе писали C000h:0000h и D000h:0000h). Процессор про это ничего не знал, для него это было обычное memory mapped устройство.

Но нужно же было переключать как-то, который из банков памяти на карточке (грубо говоря, которая из кучи микросхем) сейчас отображён на эти адреса? Для управления использовался специальный драйвер, который слушал не помню какое прерывание и переключал банки. Для разных карточек драйвер был разный, но прерывание они все слушали одно и то же и api там был одинаковый — «какой банк отобразить».

Такой функционал даже в материнки встраивали.

Потом время шло, шины адреса стали 24-битными, а потом и 32-битными. Стало можно подключить просто больше памяти, и процессор уже мог видеть её сам. Но ведь есть уже куча программ, которые умеют работать в режиме реальных адресов и с карточкой, а про новые режимы и новое пространство адресов знать не знают и никто переделывать не хочет?

И тут умные люди придумали написать драйвер, который слушает всё то же самое прерывание и выполняет всё те же самые команды типа «отобразить такой-то банк на адреса 0xC0000», но вот сам драйвер использует новые возможности процессора и отображает не память на отдельной карточке, а память, расположенную выше мегабайта. Поначалу «отображает» означало «копирует туда-сюда», а потом процессоры научились работать с таблицами страниц виртуальной памяти, и отображать стали с помощью этого механизма.

Я это так подробно написал почему? Этот драйвер — драйвер EMS, его можно смело называть «драйвером оперативной памяти», хотя казалось бы — зачем оперативной памяти драйвер? Вот для внешних карточек он был нужен потому, что это строго говоря не «адресуемая процессором память», а для 386 он был нужен для совместимости со старым решением. И от этого он драйвером быть не перестал.

Сейчас тоже такие драйверы есть, и широко используются. Например, виртуальный CD-ROM от Alcohol 120%, или же драйвер виртуальной Ethernet-карты TAP (и TAP-Win32). Все они для ОС реализуют интерфейс соответствующего драйвера (cd-rom или ethernet) и поэтому в системе появляется новое устройство. Как именно оно работает, зависит от того, какой интерфейс реализует наш драйвер «с другой стороны». От того, что это устройство «не существует», код не перестаёт быть драйвером.
Спасибо, что вы так подробно объяснили, я это всё помню. Распишите keyboard.sys лучше.
Например, keyboard.sys ничего от «современного» драйвера не содержит. Это просто раскладка клавиатуры.
погуглите, милейший, по этим словам:

keyb.com
mode.com
country.sys
что-то там.cpi

всё это требовалось при настройке работы с кириллицей в досе

mode настраивает (в том числе) монитор, keyb — клавиатуру, а country хранит в себе локали. Ещё отдельно требовался файл со шрифтом для загрузки в знакогенератор
keyb.com — резидент, не драйвер, mode.com настраивал режим порта (устройства) и вообще в памяти не оставался. country.sys — драйвер, что-то там.cpi — это файлы ДОС-шрифтов в формате CPI.
надо понимать, что:

не всё то драйвер, что sys
не всё то sys, что драйвер

keyb.com — драйвер устройства. country.sys — нет. mode.com сейчас принято называть «userspace-программой для управления», а country — «драйвер локали», реализующий сервисы ОС по форматированию всяких дат, времени и плавающих точек в вещественных числах.
Согласен. Вот только keyb.com — не драйвер. Это обычный резидент, загружаемый из autoexec.bat. Не реализовывал он никакого программного интерфейса никуда. Просто переключал раскладку по комбинации.

По country.sys я вчера поправился комментарием ниже за полчаса до вашего комментария.
А не, country.sys не драйвер, он же специальной командой подключался.
В какой-то момент появился keyrus.com который делал всё сам :-)
Всем кто писал ниже и выше о якобы «драйверах» под МСДОС.

Никаких драйверов в МСДОС не существовало, потому что у процессора 8086 не существовало механизмов позволяющих процессу монопольно контролировать то или иное устройство.

То что ВЫ перечисляете это всего лишь навсего прослойки предоставляющая более простые интерфейсы для работы с устройством. Всего лишь набор АПИ для упрощения работы с тем или иным устройством, с которым программист может работать и напрямую. Без «драйвера». Поскольку низкоуровневый интерфейс работы с устройством был стандартизирован.

В сущности системному программисту не нужна была и сама МС ДОС.

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

Например перепрограммируя контроллер 8259.

Активацию своего программного кода, системный программист бы осуществлял еще ДО старта МС ДОС.

Программист бы потратил 20 минут на написания такого кода, без реверса ненужных ему прослоек. И предотвратить это средствами доступными на тот момент было попросту НЕВОЗМОЖНО.

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

Зачем вы такой зануда?
Вот здесь, например, Microsoft называет ANSI.SYS драйвером и не морщится:
ANSI.SYS, being an MS-DOS-based device driver,
> Поскольку низкоуровневый интерфейс работы с устройством был стандартизирован.
Да вы что!

Вы сеть Novell в досе настраивали? Там есть: LSL, IPXODI — шли с Netware, а вот к каждой сетевой плате шёл свой драйвер odi, который знал, как обеспечить взаимодействие lsl и оборудования. И хотя можно было отдавать команды карточке напрямую, этот интерфейс стандартизирован вовсе даже не был, и драйвер одной платы не работал с другой.
> Программист бы потратил 20 минут на написания такого кода, без реверса ненужных ему прослоек. И предотвратить это средствами доступными на тот момент было попросту НЕВОЗМОЖНО.

Читаем: программист бы… написал свой драйвер этого устройства (таймер у вас там, или что — неважно). Так и было — каждый писал свои драйверы кто во что горазд. Я писал в детстве драйвер для распечатывания картинок на принтере из паскаля — протокол «как управлять иголками» был документирован.

Эта «прослойка» и называется «драйвером».
То есть, вы утверждаете, что каждая русскоязычная программа сама рисовала кириллицу и отслеживала переключение раскладки клавиатуры?

И зачем тогда нужен программируемый контроллер прерываний, зачем эта чехарда с IRQ? Есть же DOS API на стандартных прерываниях. Буковки показывает, файлики читает, даже в динамик пискнуть может. Чего вам еще не хватает?
demimurych, передаю ответ для вас:

«Да ладно вам! Одно название скажу. KEYRUS. Ну, драйвер такой. Впрочем, в комментариях догадались и без меня.»

Zagrebelion был прав в догадке :)
Взаимоотношения пользователя с устройством происходит по схеме
user -> приложение -> ОС -> Драйвер -> Устройство

в случае ДОС пользователь может общаться с устройством по схеме
user -> приложение -> Устройство

что означает что в ДОС драйверов нет, а есть только УРОВЕНЬ АБСТРАКЦИИ, которым можно пользоваться если тебе так удобно.

В некотором роде устройства con, clock, aux действительно обслуживаются драйвером. С той лишь разницей что это не физические устройства а виртуальные. Которые разработчики были вынуждены реализовывать в силу того что на момент разработки ДОСа не было механизмов регламентировать работу с устройством иным способом кроме как придумывание этих костылей.

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

Может быть остановиться на том, что любая программа, которая напрямую использует устройство, и при этом используется другой программой для доступа к этому устройству, и есть драйвер?
Мне кажется, что это не та тема, на почве которой нужно биться насмерть)
Главному герою повезло, чаще всё заканчивалось более прозаично. Выстрел в голову, прикопали за городом. Могли и просто прикопать, без выстрела.
На самом деле, ситуация на АЗС в начале 90 (1993-1996) отличалась прежде всего бандитским присутствием, крышей и лишь потом техническими моментами использования подобных систем.
Работая разработчиком одной из систем управления АЗС приходилось сталкиваться и с умельцами которы пытались использовать незакрытый (как было у нас) компьютер для изменения файлов (что проверялось несколькими черными ящиками), так и и с попытками наших работников обслуживания «нахимичить» в пользу одной из фирм (полагаю не безвозмездно).Стоит также упомянуть работников самих заправок пытающихся заработать добавку к зарплате.
Возможно когда нибудь я напишу подробней про все это.
Технически это выглядило как устройство подсоединенное по СОМ порту, основная программа была написана на Clipper с файлами .dbf (интересно многие ли помнят про это) и ассемблерным драйвером который и использовал COM порт.
Клиппер, о, да! Помню, хоть и застал его самую агонию.
ООоо Clipper! Помнят помнят. У меня даже сохранилась куча своих старых программ на Clipper разработки середины 90-ых. Часть из них была в эксплуатации аж до 2000-ых годов.
о, Даааа, Clipper...!
Первая официальная работа в банке (в 17 лет, 96-й год), много написал скриптов и обновлений банковского ПО, в последствии множество филиаллов пользовались ими. :-)
Прочитал с увлечением, спасибо автору.
Ну тоже расскажу реальную историю байку ) Все совпадения случайны.

Вторая половина 1990-х. Ближе к 1998. То есть вин 95 с уже точно был 98 по-моему еще нет.
Гос организация с хорошим контролем доступа посетителей. С компьютером. 286. 640 кб памяти. 20Мб винт.

Защита чин по чину. На компе вобще ничего лишнего. То есть чистейший дос. Вместо command.com запускается какая-то самописная оболочка. Ни нортон коммандера. Ни debug.exe. Воообще ничего. Чистый как слеза дос и софтина.

Дисководов нет. Общение с системой только через какой-то девайс с ком-портом ака RS-232. Ясно дело что девайс недоступен для разбора и анализа. Когда данные через девайс не передаются, порт используется для подключения мышки. Да, под 286 тоже были графические среды с мышкой. см. Turbo Vision.

Задание — увести файлы с указанного компьютера. При этом посторонним вход запрещен. Человек, который имеет доступ к компьютеру мягко говоря с машиной на ВЫ. Но у человека есть рабочий ноутбук. Да. В 199х году. Машина слабая и бестолковая на самом деле. Ну и понятное дело никакого ethernet и коаксиала.

Казалось бы дело швах. Но как обычно есть нюанс)
В виде ком порта.

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

Если бы был хотя бы ассемблер или debug.exе можно было бы написать утилиту, которая умеет принимать через ком порт. Но средства разработки отсутствуют.

А что если…
copy con hack.com 


Ну и что? Как бинарные данные то туда записать?

Alt + цифровая клавиатура!!!

Об этом сейчас мало кто знает, но при включенном Num lock нажатие Alt + 061 напишет буку «а».

Scan-codes, ynow…

1) На ассемблере пишем прогу, необходимую для передачи через ком порт ровно одного файла. ru.wikipedia.org/wiki/Volkov_Commander. Размер проги — ажно 40 байт.

2) смотрим на прогу в hiew.

3) Через copy con и альта делаем дубликат проги на машине «где нет ничего»

4) С подключенного по ком порту ноутбука копируем vc.com. Нет это не то, о чем вы подумали. ru.wikipedia.org/wiki/Volkov_Commander

????

5) PROFIT!!!

Такие дела.

ЗЫ. С раскуроченной машиной и подключенным дисководом это каждый завсегда сможет ;)

ЗЫЫ. Как происходило попадание в командную строку из машины? История не сохранила этих сведений. Кажется через блокировку autoexec.bat.

А как copy работала без command.com?
ЗЫЫ. Как происходило попадание в командную строку из машины? История не сохранила этих сведений. Кажется через блокировку autoexec.bat.

То ли оболочка запускалась последней командой из autoexec, то ли что-то еще. Давно уж было. Деталей не помню.
Ну ладно, как работал autoexec.bat без command.com? =)
Если вам так проще — будем считать что ничего
Что ничего этого не было. Я все придумал.

16 лет прошло. Нюансы стерлись.
Да, под 286 тоже были графические среды с мышкой. см. Turbo Vision.
Turbo Vision всё же был не графический, псевдографика.
Хотя были и работающие в графические режиме клоны.
> Вместо command.com запускается какая-то самописная оболочка.

> copy con hack.com

не сходится.
А почему нельзя было просто на одном конце сделать
copy file.ext com1
, а на другом —
copy com1 file.ext
?
Потому что ком порт надо настроить перед отсылкой данных.

А о таком методе настройки

mode com1: 9600,n,7,1

участникам событий тогда было неизвестно

Основой мотив возвышен и пронизан нотками, которые подметили ещё древние греки: Времена уже не те, молодёжь совершенно потеряла любое уважение к старшим. А вот в наши времена небо было ярким, одноклассницы(-курсницы) молодыми, да и мы сами были не промах. Не то, что нынешние.
Тут хороший повод вспомнить «Книгу Самурая». Она буквально вся пронизана духом «а в наше время»:

«В наши дни самураи собираются только для того, чтобы поговорить о деньгах, об
удачных покупках, о новых стилях в одежде и о своих любовных похождениях.
Старые традиции умирают на глазах. Можно сказать, что раньше, когда человек
достигал возраста двадцати или тридцати лет, он не носил в своем сердце
таких презренных мыслей и никогда не говорил на такие темы.
»

Вот же люди же были же в его время! А потом-то оно как все пошло… А уж лет-то сколько прошло! И все хуже и хуже…
«Нынешняя молодежь привыкла к роскоши, она отличается дурными манерами, презирает авторитеты, не уважает старших, дети спорят со взрослыми, жадно глотают пищу, изводят учителей.»
(Сократ, V в. до н.э.)

«Я утратил всякие надежды относительно будущего нашей страны, если сегодняшняя молодежь завтра возьмет в свои руки бразды правления. Ибо эта молодежь невыносима, невыдержанна, просто ужасна.»
(Гесиод, 720 год до н.э.)
«Да, были люди в наше время,
Не то, что нынешнее племя:
Богатыри — не вы!»
Да-да, во все времена люди ругают молодое поколение, но мир почему-то до сих пор не рухнул.
UFO just landed and posted this here
Всего-то 2ой раз. И то, предыдущий был почти 3 года назад. И это, по-вашему, завидное постоянство?
А я-то наивно полагал, что завидное постоянство это упоминание картинки с троллейбусом из батона… (:
Вспомнил, коллега рассказывал…
На его предыдущей работе из-за ошибки функции, если я не ошибаюсь, пересчёта плотности/объема бензина (относительно температуры и влажности воздуха) утекло в никуда 65 тон бенза)
А где именно на диске сохраняли данные, что бы не испортились?
Иногда так жалею, что родился немного позднее…
Как все сложно.
Добывать бензин можно намного проще. При этом не надо ничего вскрывать, дизассемблировать и прочее.

Способ первый — простейший. У резервуара всегда есть технологические отверстия. В числе всех прочих есть одно специальное — для взятия проб нефтепродуктов и измерения уровня нефтепродукта в резервуаре. Это отверстие относительно легко доступно. Для взятия проб из резервуара используется так называемый пробоотборник. Пробоотборник представляет из себя металлический стакан на веревке. Через технологическое отверстие пробоотборник опускают в резервуар и таким образом из резервуара выуживается некоторое количество нефтепродукта. Объем пробоотборника вроде и не большой, но за ночь можно набрать пару приличных канистр. В связи с развитием систем видеонаблюдения данный способ стал неактуален ибо служба безопасности легко находит виновного.

PS. Описание остальных способов опущу по причине незаконности данного деяния. Не стоит давать инструкции подобного рода.
а что, шланг туда нельзя опустить, вместо пробоотборника?
Можно и шланг с ручной помпой.
Я просто привел реальный пример, когда заправщика поймали за этим занятием.

Но на самом деле самое большое количество бензина на заправках воруется при помощи математики.
если «стакан на веревке» — неужели это отверстие так легко доступно, т.е. никакой защиты от залетевшего гоярщего окурка?
Отличная история, да и концовку Вы написали не зря! Чувствуется контраст между решениями, между идеологией этих решений и веяние времени в целом. Спасибо!
P.S. ситуацию с бензином даже помню, хоть в те времена мне не то, что об автомобиле, о мопеде-то думать не приходилось)) Хоть и сейчас, велосипед — моё все, по крайней мере, в летний период :)
Спасибо за историю! Вот только speedisk.exe, с одной буквой D.
Нет, с 1 буквой, т.к. тогда был только формат 8.3 и уложиться надо было строго в него. Имя speedisk.exe укладывается, а speedd~1.exe — так дос видит файлы значительно более позднего изготовления, уже времён винды.
Я еще помню старую шутку о том, что если компания Microsoft разделится на две компании по решению суда (к ним когда-то такой антимонопольный иск был) — то они станут называться MICROS~1 и MICROS~2
Интересная история. А не было идеи тупо подавать управляющие сигналы на ТЗК (то бишь бензоколонку)? Хотя на них всегда присутствует «железный» (то бишь механический) счетчик отданных литров.
История понравилась и не только фактом произошедшего, но и изложением, а самое главное — ничего в итоге не украли.
Не подвергая сомнениям историю автора… но ты, действительно, считаешь, что кто-то сейчас будет писать о том, что «вот как мы прекрасно наворовали у себя в офисе»?
Конечно, нет. Я о том, что автор осветил факт того, что воровства не было, а мог бы просто не раскрывать этот момент.
image
кажется, что здесь все таки хабр, а не журнал какер
У тех кто в те годы начинал таких историй…
Например был компьютерный класс в котором стояла защита, диски регулярно чистились и заливались по новой, дискет не было. Наша компания ковыряясь в памяти сняла вручную дамп этой защиты и в другом месте дизассемблировав и распечатав разобрались в ней вечерами. После чего написали простую ломалку, причем помню что асм в коды вручную переводили.
После чего программа вводилась в обычном редакторе Альт+цифры и запускалась, открывая системные пароли, после чего у нас появились нормальные инструменты для дальнейшего баловства и конечно же игрушки и кучу прочего богатства «запрятанного» сисадмином.
У заправщиков появился доступ к дефицитному товару по гос.цене. В городе готовы переплачивать за бензин. Неужели не воспользовались ситуацией?
UFO just landed and posted this here
У работников заправки было множество способов воровать бензин, чем они успешно и занимались.
Как было замечено выше, на каждой колонке был счетчик механический, считать который программа не могла никаким образом. Оператор в начале смены обязан был снять показания счетчиков, заполнить их в толстенный журнал, ну и заодно в нашу программу управления колонками.Как то я ночью я решил сделать простой расчет по проданному через программу бензину (для безопасности из черного ящика) и изменениям показаний счетчиков (сделанных вручную работникам), и да да мы по сути получили полный расклад по продаже левого бензина (как один из вариантов) через конкретную заправку. Что было дальше с этими отчетами, кому они были показаны и про них рассказано, как говориться совсем другая история.
а поделиться продолжением этой истории? Пусть даже обезличенной.
Sign up to leave a comment.

Articles