Тут и раскрываются нюансы IDE от JetBrains. Раз уж субъективно… Функционал на первый взгляд тот же, но это не так.
Например, Git в QtCreator и Intellij Idea. Пришлось заменять его на TortoiseGit.
Навигация: как в Локаторе сделать поиск по имени функции во всем проекте? А поиск по шаблону кода?
Кастомизация интерфейса. IDE от JetBrains позволяют очень гибко настраивать внешний вид интерфейса. При разработке на Qt хочется иметь список открытых вкладок в виде постоянно открытого вертикального списка, но сделать это встроенными средствами или найти плагин так и не удалось.
Стабильность QtCreator оставляет желать много лучшего. Часто падает, спасают только автосохранение.
Автооформление кода. Задаёшь стиль, IDE автоматически приводи код к нужному виду. Очень удобно, когда на проекте есть новички, которые не могут писать хорошо отформатированный код.
Список можно продолжать долго, QtCreator сильно отстаёт в функционале и удобстве от Idea.
Киллер фичами у JetBrains я бы назвал: глубину анализа кода, возможности авторефакторинга, встроенные инспекции кода на лету, поддержку VCS, скорость развития IDE и исправления ошибок, удобство навигации по проекту, поддержку огромного кол-ва библиотек и фреймворков. Опыт основан на Intellij Idea.
Было бы очень интересно почитать обзор-сравнение OnePlus One и Meizu MX4. Хочу приобрести один из этих телефонов, про оба пишут, что отлично сделаны и совсем не тормозят, как выбрать из них — не ясно.
Как таковой проблемы централизации нету. Хорошую схему предлагает библиотека Mylar (http://css.csail.mit.edu/mylar/) разработанная в MIT. Даже со скомпрометированного сервера не получится получить расшифрованные данные.
Насколько я понимаю, вы говорите о появившемся кейгене для WinRar. В то же время появился кейген для The Bat, там использовалась длиннющая RSA. Скорее всего был взломан один из серверов посредников по продажам, тот же softkey.
Уже который раз пытаюсь совместить две картинки в одну — не удаётся. Не удавалось и в статье про упражнение для глаз с кружками. На каком расстоянии держать голову от холста, как долго смотреть?
В реверсе там всё было не так сложно, проблема была больше в математике. Первое задание — тривиальный кейчек под linux, навыков отладки под linux не было — выдрал весь код и собрал под win. int 80h ручками обходить пришло и подкладывать значения на угад. В конце концов приходим к сравнению ответа и какой-то строки, сгенерированной на основе ввода.
Вторая задача была — обратить Алгоритм. Сам Алгоритм запускался в несколько потоков, вычисления велись на fpu. Алгоритм разбирался легко, с обращением были проблемы. Использовались 64битные вещественные числа, надо назвать такое входное вещественное число, которое после работы алгоритма даст числа, последние 32бита которых будут соответствовать заранее подготовленному выходу (давался в задании).
Третья — разобрать приложение под iphone со всеми вытекающими. Надо знать arm.
Crypto100 было на работу с текстом. Дана книга, даны какие-то числа разделённые на 2 части, формат — число | блок из нескольких чисел, разделённых запятыми. Таких блоков было 3. Первое число — глава, остальные — порядковые номера слов в этих главах. Собираем слова, получаем фразу, гуглим, ответ.
Crypto200 на угадывание шифра по входам и выходам. Угадывался достаточно легко, если внимательно следить за закономерностями.
Crypto300 не успел, но там был пошифрованный PEшник, который собран известным линкером. И дана программа-шифратор. Шифровала xor, каждый складывала со случайным байтом, полученным с помощью регистр сдвига с линейной обратной связью. Надо было подобрать инициализирующую последовательность. Plaintext атака по началу PEшника подсказывала несколько первых байт, с которыми ксорили шифрованный файл.
Crypto400 было на атаку Хастада, три сообщения, E=3, длина сообщения меньше длины ключа (1024), по китайской теореме об остатках находим p^E=n (m1*m2*m3), искомое сообщение p, m1,m2,m3 — ключи из сертификатов n — шифротекст.
Crypto500 был на подписи с помощью эль-гамаля, решать не пробовал.
Надо добавить не только PreparedExpressionItemKind.Signature, но и DelimiterKind.Comma, чтобы верно работала такая ситуация:
Вот описание операции:
/>
/>
Вот выражение power(5,-(-5)), на нём получаю stack disbalance, правим так:
((itemIndex > 0) && (preparedExpression.PreparedExpressionItems[itemIndex — 1].Kind == PreparedExpressionItemKind.Delimiter) && ((preparedExpression.PreparedExpressionItems[itemIndex — 1].DelimiterKind == DelimiterKind.OpeningBrace) || (preparedExpression.PreparedExpressionItems[itemIndex — 1].DelimiterKind == DelimiterKind.Comma)))
Пока проверить не могу, как совместить это с вышеописанным патчем.
За почти 8 лет существования tPORt эта папка достаточно хорошо наполнилась. Если тут есть представитель TPoDT, хотел бы услышать, когда была организована эта команда.
Далеко не для каждого алгоритма такое можно сделать. Обычно не применяется схема, когда генерируется верный серийник и сравнивается с введёным, а проверяется на соответствие некоторым признакам без генерации валидного серийника.
Например, Git в QtCreator и Intellij Idea. Пришлось заменять его на TortoiseGit.
Навигация: как в Локаторе сделать поиск по имени функции во всем проекте? А поиск по шаблону кода?
Кастомизация интерфейса. IDE от JetBrains позволяют очень гибко настраивать внешний вид интерфейса. При разработке на Qt хочется иметь список открытых вкладок в виде постоянно открытого вертикального списка, но сделать это встроенными средствами или найти плагин так и не удалось.
Стабильность QtCreator оставляет желать много лучшего. Часто падает, спасают только автосохранение.
Автооформление кода. Задаёшь стиль, IDE автоматически приводи код к нужному виду. Очень удобно, когда на проекте есть новички, которые не могут писать хорошо отформатированный код.
Список можно продолжать долго, QtCreator сильно отстаёт в функционале и удобстве от Idea.
И
Часто при эксплуатации уязвимостей приходится перебирать какой-нибудь параметр.
Вторая задача была — обратить Алгоритм. Сам Алгоритм запускался в несколько потоков, вычисления велись на fpu. Алгоритм разбирался легко, с обращением были проблемы. Использовались 64битные вещественные числа, надо назвать такое входное вещественное число, которое после работы алгоритма даст числа, последние 32бита которых будут соответствовать заранее подготовленному выходу (давался в задании).
Третья — разобрать приложение под iphone со всеми вытекающими. Надо знать arm.
Crypto200 на угадывание шифра по входам и выходам. Угадывался достаточно легко, если внимательно следить за закономерностями.
Crypto300 не успел, но там был пошифрованный PEшник, который собран известным линкером. И дана программа-шифратор. Шифровала xor, каждый складывала со случайным байтом, полученным с помощью регистр сдвига с линейной обратной связью. Надо было подобрать инициализирующую последовательность. Plaintext атака по началу PEшника подсказывала несколько первых байт, с которыми ксорили шифрованный файл.
Crypto400 было на атаку Хастада, три сообщения, E=3, длина сообщения меньше длины ключа (1024), по китайской теореме об остатках находим p^E=n (m1*m2*m3), искомое сообщение p, m1,m2,m3 — ключи из сертификатов n — шифротекст.
Crypto500 был на подписи с помощью эль-гамаля, решать не пробовал.
/>
/>
Вот описание операции:
/>
/>
Вот выражение power(5,-(-5)), на нём получаю stack disbalance, правим так:
((itemIndex > 0) && (preparedExpression.PreparedExpressionItems[itemIndex — 1].Kind == PreparedExpressionItemKind.Delimiter) && ((preparedExpression.PreparedExpressionItems[itemIndex — 1].DelimiterKind == DelimiterKind.OpeningBrace) || (preparedExpression.PreparedExpressionItems[itemIndex — 1].DelimiterKind == DelimiterKind.Comma)))
Пока проверить не могу, как совместить это с вышеописанным патчем.