Блог пользователя Александр Лбов

Оптимизируй это. Часть 2

  Новый день и новый кусочек кода, который мы будем разгонять до околосветовых скоростей. Пристегните ремни. Поехали!

 Перед вами одна бинарная операция сложения, результат которой помещается в переменную k. Неужели тут тоже можно что-то ускорить?

int k = 0;
for (var i = 0; i < 1000000000; i++)
{
  k = i + 1;
}

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

Оптимизируй это. Часть 1

  Недавно один из наших клиентов поставил перед нами необычную и очень интересную задачу. Нужно было снимать защиту на открытие старых файлов Microsoft Excel. Время, отведённое на снятие защиты, не должно превышать 10 минут, при условии работы на среднем по характеристикам компьютере.

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

  В первый день нами была написана программа, которая могла атаковать .xls файл двенадцатью тысячами паролей за одну минуту. Это давало нам возможность проверить 120 000 паролей за отпущенные 10 минут и позволяло открывать приблизительно 2% файлов из тестового набора. Никто и не рассчитывал на 100% за отпущенное время, но двухпроцентная вероятность открыть файл - это довольно скромный результат. Очевидно, что повысить вероятность успешной атаки можно было путем..

Как заставить TextBox.Text работать?

Если вы пишете приложение для магазина Windows, то, скорее всего, используете текстовые поля (TextBox) и привязки (Binding). Также вы используете паттерн MVVM (Model View ViewModel). Вы могли заметить, что привязка к свойству зависимости (Dependency Property) Text срабатывает только если текстовое поле потеряло фокус. Есть огромное количество сценариев, когда нас это не устраивает. Например, у нас нет кнопки «Ok», введённые значения используются немедленно (и это самый лучший подход), а наше текстовое поле последнее на странице. В этом случае привязка не сработает, пока пользователь не покинет страницу.