11593

Сам собрал, сам страдал

Недавно у меня на работе сотрудница подхватила винлокер, и я наконец-то увидел это чудо воочию. Но лечить мне его было не резон. На это у нас есть департамент IT.

А вчера уже позвонила другая знакомая и тоже пожаловалась на винлокер на домашнем компьютере. Он вылез внезапно, когда знакомая мирно читала какую-то PDF, скачанную с интернета. Компьютер у неё один. Помимо XP на нём стоит ещё 98-я и военный линукс МСВС (ставил это всё я несколько лет назад). Основная система — XP. В 98-ю знакомая давно не заходила, линукс ей нужен по работе: трудится программистом в «почтовом ящике», как говорили во времена СССР. То есть она, конечно, не прямо дома пишет программы для этого «почтового ящика», но просто хотела иметь возможность использовать такую же систему, как на работе, чтобы было можно дома что-то пробовать. Оказалось, что 98-я у неё не запускается, линукс работает, но в интернет она из него выйти не может. Поэтому, вооружившись LiveCD известного отечественного антивируса, я отправился в гости.

С антивирусным LiveCD я до этого тоже дел не имел  — как-то обходилось. Мне диск очень понравился. Gentoo, на основе которого он был собран, прекрасно распознал и примонтировал все разделы на диске, а также виндоусовский реестр. Лечащая утилита, правда, вирус не нашла. Я параллельно проверил точки автозагрузки в реестре и вышел на зловреда. Благодаря встроенному браузеру проверил его на virscan.org. Действительно, его распознавали как вирус только 4 из 36 антивирусов. Тело вируса тут же было отправлено в антивирусную лабораторию, которая выпустила LiveCD, и уже к вечеру его включили в базу.

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

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

11592

Господи, спаси от DROP TABLE

Разбирая базу данных, обнаружил поле с именем GOD_MADE. Как вы думаете, что бы это значило? Нет, не угадали. Это всего-навсего год выпуска. Тот, кто это писал, обладал явно нестандартным мышлением.

11591

Долог самурая путь к библиотеке

Ещё одна деталь к японскому менталитету.

Вообще-то я на Джаве не программирую. На С++ больше. Но поскольку на Андроиде пользовательские приблуды пишут на этой самой Джаве, а охренеть какой японской «это ж, блин, %businessName%!» захотелось поиметь нашу библиотеку на своём телефоне, то откомпилил я её, написал JNI-прокладку между С++ и Джавой, приложил пример и выкатил японским друзьям попользоваться.

Через месяц пришёл от японцев вопрос: «А можно ли вашу библиотеку грузить из произвольной папки?» А хрен его знает. Сроду так далеко в Джаву не лазил. Погуглил — и нашёл системную функцию, которая именно этим и занимается — грузит либу по абсолютному пути. Задумался. Мысль о том, что андроидные разработчики из такой серьёзной фирмы не знают Джаву, в голову не пришла. Поэтому вопрос в моей голове трансформировался: «Если мы будем грузить библиотеку из другой папки, не нарвёмся ли мы на грабли, которые вы заботливо для нас разложили?» Таковых граблей не было, и я честно ответил: «Можно, грузите из любой папки, разрешаю». И забыл.

Месяца через два приходит истеричное письмо от японцев. Дескать, мы вас третий месяц просим написать функцию, а вы динамите! Удивился, но решил не связываться, поскольку времени было мало. В результате родился шедевральный код:

void LoadLibraryFromAbsolutePath( String path )

{

  System.load( path );

}

Код был отослан в Японию. Через день пришло письмо с благодарностью. Кроме шуток — абсолютно серьёзная и искренняя благодарность. Если бы у нас в конторе не смогли написать три строчки такого кода и отдали бы на аутсорс, уволили бы весь отдел.

Как можно программировать на Джаве без знания основных функций языка, для меня загадка. Равно как загадкой остаётся, как таких программеров наняли на работу и почему в Японии нет Гугла.

11589

Вход в выход

Как-то к нам на заправку принесли картридж из-под лазерного Самсунга. Тонер-контейнер в этой модели мощно спрятан в корпус, доступ через небольшие технологические отверстия, которые просто так не видно, если о них не догадываться. А ещё к валику примыкает небольшой пластиковый короб для сбора лишнего тонера, либо отгоревшего и отпавшего, либо пыли. Обычно этот контейнер нужно чистить раз в десять заправок.

Тут же парень принёс нам на заправку новый картридж, ещё фабричной заправки, но с полным контейнером тонера. Ну, мы-то вычистили, заправили, но потом всё же спросили, как печатал, нормально ли тонер сыпался на лист — мало ли, вдруг контейнер обдирал тонер с барабана? Такого раньше не видели. А оказалось, что парень сначала решил сам заправить картридж, купил порошка (судя по рассказу, вообще к другому принтеру) и начал искать, куда его засыпать. Раскрутить удалось только контейнер, а поскольку там было почти пусто, только пара крошек уже выгоревшего тонера, он засыпал туда полную «дорожку» порошка, забив контейнер, и только когда порошок «не пошёл», а листы оставались белыми, принёс картридж нам.

Мораль: не знаешь дырку — не суй что попало.

11588

Все мои кнопки для тебя

Каждое новое знакомство начинается абсолютно одинаково (что совсем не надоело). Собеседники, узнав, как меня зовут, вздыхают и говорят:

— А фамилия-то у тебя такая… айти-и-ишная!

А всё дело-то в том, что я Аникеева. Но всей «айтишности» во мне — только кулер поменять да роутер настроить. Но вот как только встречу своего Логинова…

11587

Красная книга косяков

Решил узнать поподробнее про услугу «мобильный банк». Печатал с Андроида, который услужливо подсказал: «сбербаг».

Машина не ошиблась: при попытке навигации по сайту браузер стабильно вылетает.

11586

«Пошёл на» на всех языках

Знаете, я сейчас понял, что в школах всё-таки нормально учат программированию. Почему? В начальных и средних классах преподают базовую логику. Вроде бы всё просто, но логика — это очень хитрая школа.

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

А как насчёт функций в математике? f(x)? Разве в базе это не одно и тоже? Разве, задав вместо x любое число, мы не получим что-нибудь в переменной f?

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

Недавно, к слову, был в одном лагере, и была там у нас робототехника. Как самый интересующийся, был допущен к программированию. И знаете что? RobotC — это тот же самый С, просто ты, как ребёнок, вводишь, как быстро крутится моторчик или под каким углом наклоняется элемент. А в основе та же логика. Робот что-то увидел? Пусть он держится возле предмета на расстоянии пять сантиметров. Вроде бы сложно, но на деле — обычное условие.

К чему я? Сидя сейчас на уроке информатики в своём девятом классе, я повторяю все задачи на Паскале в С++. И мне ещё поражаются, да.

11585

Спасём мир скотчем и изолентой

Вот вы говорите, пунктуальные и аккуратные японцы не смогли справиться со сломанной защёлкой, но русская смекалка и кусочек бумаги всё решили? У этой истории есть и другая сторона.

Японский менталитет предполагает, что если люди достаточно часто будут сталкиваться с отломанными защёлками, они либо улучшат качество детали, либо начнут придумывать более надёжные защёлки или типы коннекторов, либо вовсе решат проблему кардинально, так или иначе сократив количество проводных соединений и, соответственно, проблемных защёлок. Рано или поздно проблема будет устранена навсегда.

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

11584

Двойной звездец всему живому

Сегодня потребовалось обзвонить пару десятков человек, и в номере одного из них попались цифры 351. Набирая их, я вздрогнул, но не сразу понял почему. А потом вспомнил. В своё время мне довелось немало попользоваться АОНом «Русь», где код **351 эквивалентен rm -rf /. Конечно, современной DECT-трубке такой код не повредит, но подобное запоминается на всю жизнь.

11583

What do you want to learn today?

Вот сетуют тут на образование, особенно школьное, а мне повезло.

Был у нас в интернате преподаватель информатики. На его уроках большая часть народу спала. Не мялся он, темы были интересными, да вот только голос у него был заискивающе-убаюкивающий. К слову, дедушка (62 года), ярый линуксоид и тролль, посему в 11 классе мы уже довольно уверенно пользовались не только окнами, но и OS X, и линухами с Гномом. Отличительной чертой преподавателя было ещё и то, что он не вдалбливал конкретный материал, а провоцировал нас на постановку задач самим себе.

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

Затем был простенький искусственный интеллект и текстовые игры. Этот хитрец разжигал наш интерес и подкидывал как бы случайно задачи, которые мы считали за собственные и с жаром пытались их решить. К слову, ни «цензор», ни ИИ у нас толком не получились, а вот в крестики-нолики мы играли на двоих постоянно: «Нужно протестировать, ребята, так не годится, просто посидите и поиграйте».

А уже перед выпуском, в последние дни апреля, все его классы готовили небольшое исследование: сравнение графических оболочек (винда, мак, Гном и «кеды»). Естественно, я, раздолбай, ничего не сделал. И когда настало время сдавать, он поставил передо мной мак, открыл Гаражбэнд и сказал:

— Важно уметь быстро ориентироваться в незнакомом софте. Я знаю, ты музыку любишь, ну так напиши мне песенку минуты на три.

Анатолий Владимирович Попов! Я знаю, вы читаете этот сайт. Спасибо Вам большое!