Как стать автором
Обновить
54
0
Александр Симонов @darksimpson

Пользователь

Отправить сообщение
Дело не в регулировании. Дело в какой-то тотальной промывке мозга и искажении наших представлений и мнений. Вот так втихую. Я не против регулирования как такового, но меня настораживает вот это вот 1984. Неуютно при понимании происходящего. Хотя, может я и утрирую.
«Требуется замена» — это уже сам по себе неприятный момент во многих смыслах. А так, это и паспорт можно всех поголовно согнать менять.
Кстати, интересное наблюдение. Еще всего несколько лет назад, когда я вел вполне себе ЖЖ с подробностями, даже некоторым софтом, писал статьи в Хакер и рассказывал Компьютерре как «поломал Метро» и все дела (причем инфа там тоже была), ни у кого даже в мыслях ничего такого небыло, что статьи уберут, ЖЖ закроют, тираж изымут, а автора посадят…

А сейчас… Причем, не только здесь, а вообще, тенденция такая. Хотя, по сути, формально, ничего с того времени ни законодательно, ни как-либо еще особо не изменилось.

Понимаете, что происходит? Вот. И это страшненько. Система, которая порабощает и промывает — во всей красе.
Я не разбирал РЖД, увы.
Насколько мне известно, у нас (в Мск) это практически не работает. Но инфа может быть устаревшая.
Извините, метод, а не функция, конечно. Си в голову засел.
Да, по поводу того, как хранится баланс в этом лэйауте (осторожно, говорящая жаба!):

// Read Sector 8 data blocks (0 to 2)
for (int i = 0; i < 3; i++)
  System.arraycopy(mfc.readDataBlock(sect8StartBlock + i), 0, mfsect, i * 16, 16);


// Read and show money value from ticket
int money = BitOps.copyBitsToInt(mfsect, 196, 19, false, false) / 100;


и сама функция copyBitsToInt из класса BitOps:

public static int copyBitsToInt(byte[] from, int fromStart, int length, boolean revBits, boolean revBytes) {
  byte[] intBytes = new byte[]{0, 0, 0, 0};
  copyBits(from, intBytes, fromStart, 32 - length, length, revBits, revBytes);
  return (intBytes[3] & 0xFF) | ((intBytes[2] & 0xFF) << 8) | ((intBytes[1] & 0xFF) << 16) | ((intBytes[0] & 0xFF) << 24);
}

public static void copyBits(byte[] from, byte[] to, int fromStart, int toStart, int length, boolean revBits, boolean revBytes) {
    int j = 0;
    int y = 0;
    for (int i = 0; i < length; i++) {
      j = (revBits) ? length - 1 - i : i; // Reverse bits counter ("from" side)
      y = (revBytes) ? ((((length - 1) / 8) - (i / 8)) * 8) + (i % 8) : i; // Reverse bytes counter ("to" side)
      if (((from[(fromStart + j) / 8]) & (1 << (7 - ((fromStart + j) % 8)))) > 0) // If bit is set, then
        to[(toStart + y) / 8] |= 1 << (7 - ((toStart + y) % 8)); // Set bit
      else
        to[(toStart + y) / 8] &= ~(1 << (7 - ((toStart + y) % 8))); // Unset bit
    }
  }
Существует масса методов для правильной организации этого функционала с использованием нестабильных каналов передачи данных. Элементарно копить транзакции и пачечками их туда-сюда гонять. Это работает (правда, только когда это нормально делают, и в этом основная проблема).
В Аэроэкспрессе можно было покататься :) Теперь там онлайн проверка.
Хм. Насколько мне известно, раньше меня этим никто не начал заниматься (по крайней мере в открытую). Если я что-то упустил тогда, было бы интересно посмотреть что. Правда.
Вот, мне кстати всегда было интересно получить ответ на этот сакральный вопрос, еще много лет назад — почему именно 01.01.1992 года? Не уже ль это такое тонкое трололо по поводу отмены регулирования цен? Или все более прозаично? Может у кого есть какие-нибудь интересные варианты?
А еще, текущим прецедентом люди сами создали себе проблем. Ведь теперь диверсифицируй-не диверсифицируй, а все равно получишь… кучу старых карт с Legacy ключами, от которых, кроме как с помпой, фанфарами и кучей говн из медных труб не избавишься. Всё, ёк.
Кстати, раскрою небольшой секрет: с ключами для генерации и проверки имитовставки в кошеле все обстоит так же (в отличие от обычных ультралайтов, где они достаточно часто ротейтятся, правда с оговорками тоже).
Не поможет. Ключи за 5 секунд достаются из воздуха атакой «без карты». Если не лениться, а допилить Хамелеон тот же и немного автоматизировать, то можно сделать бе… в общем, можно все сделать :)
Ну, может человек из Питера.
Если посмотреть с несколько более отрешенной точки зрения, то получится, что у нас уголовно наказуемое действие — по улице ходить, грубо говоря. Поэтому, обычно каждый сам ставит перед собой вопрос и дает на него ответ (то есть на что-то такое решается или нет в результате).
А вот там разработчиков это очень интересует, вплоть до разборок по поводу и без.
Хамелеон в текущей итерации очень плохо работает, увы. Ждем новую итерацию.
Привет! Спасибо :)

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность