Архив за 15 марта 2013 - 6

Так уж случилось, что время от времени я развлекаюсь анализом клиентов ММО-игр на тему различного рода полезностей или получения информации о действии тех или иных игровых аспектов. Основное количество информации приносит разбор клиента в IDA Pro или OllyDbg.
Читать полностью »

Как известно, несколько дней назад в платёжной сети Bitcoin случился сбой с раздвоением цепочки транзакций. Сбой произошёл из-за совершенно незначительной ошибки в старой версии клиентского обеспечения Bitcoin 0.7. Этой версией по-прежнему пользуются многие майнеры биткоинов, которые одновременно занимаются подтверждением транзакций. Из-за бага родилась параллельная цепочка транзакций, которую генерировали пользователи Bitcoin 0.8.

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

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

Читать полностью »

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

  • Расширенный — Название, крупное изображение, анонс, некоторые ссылки
  • Компактный — Название, маленькое изображение

Динамический шаблон Wordpress

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

Общий алгоритм следующий:

  1. При загрузке страницы проверяется состояние параметра style в базе
  2. В зависимости от параметра посты выводятся в том или ином формате
  3. При нажатии на флажок переключения вида запускается функция getPage
  4. Функция getPage принимает значение переключателя и отправляет данные на обработку и ОЖИДАЕТ ЗАВЕРШЕНИЯ ОБРАБОТКИ
  5. Файл style_updater.php принимает данные и обновляет Базу данных.
  6. После этого функция getPage перезагрузит страницу

Читать полностью »

Иголка, нитка и число пи Этот пост поможет вам выкрутиться из довольно-таки щекотливой ситуации. Скажем, вы заперты в комнате, у вас есть моток ниток и иголка, и от вас настойчиво требуют посчитать приблизительное значение числа Пи, используя лишь эти предметы, ну, всякое бывает, знаете. Так вот, сегодня слушая на курсере курс по матану Пенсильванского университета, я вдруг узнал, как это сделать. Вот чего я и предположить не мог, так это того, что число Пи скрывается и тут. Оказалось, что корни этого вопроса уходят аж в 18 век, когда Жорж-Луи Леклерк де Бюффон поставил себе следующую задачу: «предположим, пол сделан из деревянных полосок двух цветов, они чередуются; какова вероятность того, что брошенная иголка упадет так, что будет пересекать линию состыковки двух полосок?» Симуляцию этого процесса и ответ на вопрос можно найти под катом.

Читать полностью »

Шесть советов тем, кто хочет выучить язык и переводить.

Иллюстрация с сайта speakoutitalian.com

Авторы Хабра, которые переводят статьи, делают большое дело — они преодолевают за других большущий языковой барьер, это я говорю без иронии. Одновременно я регулярно вижу самодельные или сделанные фирмами программы для запоминания слов, и это я считаю не самым полезным делом. Да, конечно, карточки полезны. На начальном этапе, уча с полного нуля, первые 50 слов можно ими выучить. Дальше слова лучше учить в контексте.

Мой первый совет и главное, что стоит запомнить из заметки — бросьте запоминать слова. Учите грамматику.

Читать полностью »

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

«Ёжик» на выезде: измерение качества сети

Ёжиком его называют из-за вот такой особенности:

«Ёжик» на выезде: измерение качества сети

Это – антенны специальных сотовых терминалов, расположенных в измерительном комплексе. В распоряжении Отдела радиоизмерений и контроля качества связи Технической дирекции «Билайн» Московского региона таких машин 4, и они ежедневно ездят по городу для проведения замеров на сети. Читать полностью »

Как устроен ntds.dit?
Все данные каталога Active Directory хранятся в БД в файле ntds.dit. Подавляющее большинство приложений взаимодействуют с каталогом через прослойку DSA реализованную в ntdsa.dll. В свою очередь функции из ntdsa.dll не работают напрямую с ntds.dit, их функционал ограничен потребностями службы каталогов и они не могут дать нам представление о внутреннем устройстве БД Active Directory. Тем не менее ntds.dit представляет собой не что иное как БД JET Blue. В каждой версии windows (начиная с Windows 2000) есть всё необходимое для работы с этой БД.

В статье ниже я попробую осветить следующие вопросы:

  • Какова структура БД?
  • Как данных в ntds.dit получается «дерево»?
  • Как реализовано членство в группах?
  • Каков формат атрибута replPropertyMetaData и с какой точностью в метаданных репликации хранятся временные метки?

Читать полностью »

Занимаюсь сейчас разработкой проигрывателя видео под Windows. И «завис» на некоторое время над задачей — после перехода на Qt, видео в проигрывателе начинает моргать и исчезать (см. видео).

Попытки переопределить QWidget::paintEvent невозможны из-за того, что Qt выполняет заливку на (https://qt-project.org/doc/qt-4.8/qwidget.html#autoFillBackground-prop) перед QWidget::paintEvent.
Попытка переопределить WM_PAINT и WM_ERASEBACKGOUND в QWidget::winEvent тоже не удалась, т.к. paintEvent может вызываться не только из WM_PAINT, но и другими сервисами по неизвестному мне алгоритму.
Поэтому ниже приведу решение как выходил из этой ситуации.
Читать полностью »

Занимаюсь сейчас разработкой проигрывателя видео под Windows. И «завис» на некоторое время над задачей — после перехода на Qt, видео в проигрывателе начинает моргать и исчезать (см. видео).

Попытки переопределить QWidget::paintEvent невозможны из-за того, что Qt выполняет заливку на (https://qt-project.org/doc/qt-4.8/qwidget.html#autoFillBackground-prop) перед QWidget::paintEvent.
Попытка переопределить WM_PAINT и WM_ERASEBACKGOUND в QWidget::winEvent тоже не удалась, т.к. paintEvent может вызываться не только из WM_PAINT, но и другими сервисами по неизвестному мне алгоритму.
Поэтому ниже приведу решение как выходил из этой ситуации.
Читать полностью »

Негативный опыт, тоже опыт

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

Беспроводная передача аудио сигнала с ПК на колонки с помощью PurePath

Мне кажется, все стремятся избавиться от лишних проводов в повседневной жизни, не так ли?Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js