Pull to refresh
69
0
Алексей @godAlex

User

Send message
А откуда картинка "Суперазрешение"? Как решает такую задачу увеличения изображения нейронная сеть на сложенных стыках объектов?
Я пробовал применять принцип на подобии "свёрточного" алгоритма чтобы увеличивать фотографии в 10-100 раз. Это было сделано без нейронных сетей. Просто подбирался наиболее подходящий по текстуре уменьшенный образец эталонного изображения. На изображении 1024*1024 работало около часа (в 4 потока, пробовал использовать GPU но ускорения не заметил). На однородных поверхностях, таких как песок, или плитка простым подбором текстуры из набора масштабируемых образцов хорошо получается увеличивать (для сглаживания краёв использовал embedded-enfuse). А вот при неровной и сложной кромки стыка 2-х материалов в образцах не оказывалось подходящих зон (например еловые иголки на сложном фоне, увеличение деревьев).
Теперь мы знаем, как бороться с терминаторами — просто фотографировать их.
Интересно, какой спектр применяют в устройстве стирания памяти в фильме Люди в чёрном? Теперь мне не кажется идея авторов фильма со вспышкой простой нереальной выдумкой.
Если пароль набирается много раз, то можно использовать статистику — набрать много данных, 50-100 записей ввода пароля, затем как-то совместить изображения для улучшения контрастности и т.п.
Для определения буквы на клавиатуре не обязательно обладать разрешением для распознавания буквы — клавиатуры имеют стандартные раскладки, кнопки расположены в известных позициях, следовательно, достаточно иметь данные размером в несколько пикселей на кнопку, недостаточные для распознавания букв, но достаточных для определения позиции кнопки.
p.s. пока писал комментарий — не дочитал «Рандомная клавиатура (поможет при низком разрешении изображения)».
Заливка по чёрным
image
Если применить к картинке размытие+контрастность, то можно в графических редакторах заливать цветом пути — так нагляднее.
image
По чёрным фигуры получаются похожими.
Во времена I386 было достаточно кусочка фольги в разъёмах, чтобы при включении пошёл дым, немного мелодичных звуков BIOS (именно мелодичных — от перепадов напряжения в электронных цепях). Потом не включался.
Мне представляется мрачное будущее, где трояны хоум-локеры блокируют все двери в умном доме, пока не отправишь платное СМС.
После случайного нажатия стрелок на клавиатуре получилось набрать 3148 очков с первого раза, благодаря энтропии. Последующие 3 попытки показали худший результат, несмотря на то, что при следующих попытках я учитывал правила игры. Если бы клеток было больше, то можно было играть, нажимая случайные стрелки намного дольше.
Тогда добавьте в таблицу с протекторами отметку о наличие программ для их взлома в свободном доступе, если такие найдутся. Это будет показатель надёжности защиты.
Хорошо было бы сделать таблицу с перечнем технологий защиты и затрат на взлом или обход этих технологий. Иначе, под словом «защита от отладчиков» может представиться неосведомлённым читателям, что программу нереально открыть любыми отладчиками, и, как следствие, взломать.
Я считаю, что прежде чем заниматься защитой программ, нужно взглянуть на этот процесс с другой стороны: на сколько просто взломать защиту? И узнать про методы обхода защиты, чтобы узнать, на сколько она надежна.

Я не являюсь специалистом по взлому защиты ПО, по этому напишу то, что смог найти, возможно некоторые из методов уже не актуальны. Привожу примеры реализации защит и методов их обхода:
Обнаружение отладчика
Level 1
Защита: функция win32 BOOL IsDebuggerPresent(VOID) возвращает true, если процесс находится под отладкой.
Обход: отлавливать обращения к IsDebuggerPresent и заменять ответ, либо временно заменить функцию IsDebuggerPresent, чтобы она всегда возвращала false.
Level 2
Защита: Способ без вызова IsDebuggerPresent
        mov     ecx,fs:[20h] ;// если значение по адресу fs:[20h] = 0 , то нет отладки
        jecxz   not_being_debugger

Обход: заменить значение по адресу fs:[20h] на ноль. (при этом функция IsDebuggerPresent будет возвращать false)
Level 3
Защита: искать следы присутствия отладчиков в памяти, то есть имена окон известных отладчиков, следы установки отладчиков в реестре.
Обход: маскировка следов отладчиков.

Проверка целостности
Level 1
Защита: применяется простая контрольная сумма дампа памяти процесса
Обход: либо в новый код добавить дополнительные данные, чтобы совпала КС, либо найти место в протекторе, которое прводит подсчёт КС и изменить его. А найти процедуру проверки КС можно путём отслеживания обращений к области памяти с кодом на чтение (break point).
Level 2
Цифровые подписи.

Защита импорта
Импорт функций DLL осуществляется двумя путями: раннее связывание и позднее связывание.
При раннем связывании найти места вызовов функций просто. При позднем связывании используются сначало функции LoadLibrary и GetProcAddress.
Level 1
При скрытии импорта остаются в явном виде две импортируемые функции — это LoadLibrary для подключения DLL и GetProcAddress. В параметрах GetProcAddress указываются названия импортируемых функций. Достаточно найти вызовы GetProcAddress.
Level 2
Защита:
Вызов GetProcAddress шифруются и адрес вызова передаётся в неявном виде, на промежуточных этапах адреса зашифрованы. Текст с названиями функций зашифрован.
Обход:
Даже если текст названий функций зашифрован, то непосредственно перед вызовом GetProcAddress названия функции будут расшифрованы, и их можно перехватить, поставив точку остановки внутри GetProcAddress, далее проследить стек вызовов.
Так и хочется сказать «В первый раз в магазин ходили?». Признаюсь, что состав продуктов читаю после их употребления.
По делу:
Сами маркетологи называют это «дикий маркетинг», говорят, со временем от него теряется доверие покупателей к рекламе, и поэтому от такого маркетинга со временем эффект становится отрицательным. Почему его применяют? Я считаю, что из-за трагедии общин или неграмотности.
Вы не поверите, в примере этой статьи, размером с десяток строк на Си (если считать строки с командами, то их всего 5) была ошибка. За неделю статья собрала 30000 просмотров, но никто не заметил эту ошибку. Пример не был спрятан в спойлер, но был в середины статьи.
do scanf("%i",&i); while ( i<1 && i>9 ); // Ошибка в while, которое контролирует диапазон вводимых чисел [1;9].

Если вам хочется найти утечку памяти в пяти строках кода игры
Замените тело main следующим кодом, и добавьте сгенерированные данные из программы, приведённой в этом посте.
  while (1) {
    printf(text[data_pos]);
    int *i=malloc(sizeof(int));
    do scanf("%i",i); while ( *i<1 || *i>9 );
    data_pos=data_addres[data_pos][*i-1];
  }

Добавил параметр для создания исходника с использованием и DOS и BIOS прерываний. Получилось, с некоторыми оптимизациями, до 20 команд сократить.
С речью человека ещё интереснее. В 2012 году психологи заметили, что людям трудно говорить, когда они слышат свои слова с задержкой в долю секунды, и сделали «звуковую пушку», повторяющую слова говорящего. пруфлинк
Да. Вы написали этот комментарий после того, как прочитали мою статью о крестиках ноликах?
Представьте очень маленький браузер, который способен отображать предкомпилированный сайт со следующими ограничениями: одна страница может содержать не более 16 символов и 9 ссылок на другие страницы сайта. При этом «зеркальные» отражения можно производить только просьбой пользователю развернуть монитор или играть через зеркало. В реальной игре это можно применять, в этом примере для этого нет места. Но некоторые комбинации, возможно повторяются, не искал.
Если вы запустите генератор, исходный код которого находится в конце статьи, с параметром "-sh > example.html" то можете увидеть принцип работы этой игры на примере HTML.
Представьте, что у вас будет дома робот, который делает всю домашнюю работу, готовить, может бегать по лестнице и покупать продукты, с учётом ваших предпочтений, так же отвечать на все вопросы (голосовой поиск) и ненавязчиво вставлять в диалоги %adware%?
В моём приложении, в настройках внизу, есть кнопка «Тест ИИ», как раз делает битву двух ИИ.
Подозреваю, что алгоритм mini-max на больших полях будет медленно работать.
Про dpi читал и кое-где применяю. Nine-path применяю в главном меню и кнопках, возможно сейчас что-то изменилось, но раньше была проблема с nine-path и папками ресурсов в разных dpi.
я бы вряд ли стал использовать Canvas и заниматься вопросами перерисовки отдельных областей экрана
вы имеете ввиду OpenGL?
сделан перевод на английский и русский языки. С какого?

Это следствие «ночной сборки» статьи, исправил.

Information

Rating
Does not participate
Location
Россия
Registered
Activity