Как стать автором
Обновить
50
-3
Евгений @ser-mk

Разработчик, исследователь, аналитик

Отправить сообщение

Я считал первый, второй, третий....
Поэтому, думаю, все-таки нечетный

Рассматривал, но не было опыта разработки в нем, а так же были сомнения в производительности. Игры для Unity довольно требовательны к ресурсам и были опасения что планшет не вытянет и игру и распознование. Но потом можно сказать, что на Unity вполне бы пошла бы эта игра.

Имеется в виду создание простого инструмента - в виде небольшого веб-сервиса или даже эксель-файла - с возможностью пользователю задавать разные параметры и видеть, как меняется результат.

Было бы лучше если бы было больше контекста, веб-сервис чего и задавать параметры чего? модели?

Я, кстати, хотел в следующей статье про rke и rancher написать. Там нужно будет изрядно потрудиться, поэтому нужно время.

Будет интерсно почитать

На практике вам может помочь та же самая возможность «потрогать руками». Если дать возможность конечному пользователю вручную менять комбинации товаров для магазина на свое усмотрение и смотреть на прогноз совокупного спроса (или выигрыша относительно текущей ситуации), это значительно повышает его доверие ко всей системе в целом.

А можно более подробно что такое "потрогать руками" ?

Probe код наверное тоже можно на чем угодно написать, но проще это все же сделать на нативном ассемблере платформы.

Скорее нет, даже если язык транслируется в машинные коды, то он может тащить за собой рантайм, к примеру как Golang

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

либо определить участки "мертвого" кода, которые не будут выполнены ни при каких условиях.

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

Плюсом данного метода инструментирования является то, что само ПО писать можно на любом языке, который может быть транслирован в ассемблер: хочешь на С++, хочешь на Brainfuck.

А какое ПО вы тут имеете ввиду? probe код?

Соответственно, добавляя все новые тесты и накапливая покрытие, можно либо покрыть всю программу, либо определить участки "мертвого" кода, которые не будут выполнены ни при каких условиях

участки "мертвого" кода - но только в промежуточном ассемблере, а потом это надо как-то сопоставить с исходниками и это далеко не всегда просто сделать

Если рассматривать только платформу х86 х64, то там ест ьочень можный инструмент Pintool от самого интел. Если совесть лицензия не мучает, то там инструментизация решается намного проще

Всякие иды только и делали, что переводили байты в абстрактные заголовки без какой-либо реализации инструкций

Похоже что уже нет, вот интересная презентация https://binary.ninja/presentations/Modern%20Binary%20Analysis%20with%20ILs.pdf
судя по всему промежуточное предстaвление подвезли в IDA https://i.blackhat.com/us-18/Thu-August-9/us-18-Guilfanov-Decompiler-Internals-Microcode-wp.pdf


На счёт остальных инструментов — только если radare2/cutter с его ESIL.

В остальных тоже много где есть:


Но у Гидры Pcode, самый читаемый по сравнению с ESIL и Microcode(IDA). Однако не такой простой как у binary ninja BNIL, судя по их презентации))

Спасибо, не знал что такую архитектуру подвезли и в декомпиляторы. LLVM style считай)

Но вообще написать реализацию на Pcode — задача даже более простая, чем писать грамматику для декодера байтов. Быстро получалось исправлять реализацию для некоторых сложных инструкций из x86 (и не только), благодаря очень удобному промежуточному языку, единому мидлэнду (оптимизатор), 2 бэкэндам (в основном C; как альтернативный вариант — Java/C#, больше похоже на последний, т.к. время от времени появляется goto, но не labeled break).

А что за middlend и backend имеется ввиду? Это же не гидровский?
И причем тут Java и C#?)

Результат декомпиляции
void axpy(float param_1,float param_2,float param_3) {
uint uVar1;
uVar1 = &threadIdx.x;
param_2[uVar1] = param_3[uVar1]
param_1;
return;
}

А этот результат декомпиляции уже из гидры получен?

Спасибо, немножко понятнее стало.


Так наткнёмся на лимит на 41 бите.

А лимит чего имеется ввиду? Это размер аргумента инструкции ([0x148] или [0x140])?

Работает это так: пробуем последовательно инвертировать все подозрительные биты в калькуляторе, затем получаем новое шестнадцатеричное значение для байтов

Откуда берутся подозрительные биты в калькуляторе? Можете привести какой-нибудь пример?

Время работы: 0.154 с, ускорее примерно в 700 раз. И все, что мы для этого сделали, по большому счету, только проставили типы.
Время работы: 0.47 с, ускорение по сравнения с последовательной версией примерно в 3.3 раза, что неплохо для моего четырехядерного лаптопа.

Получается вроде бы наооборот замедление в 3 раза. или там 0,047?

За такие деньги дешевле реверс инженера взять который вам что нужно допишет

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

А как температура на софт влияет? =)

Но я так понял смысла в этой установке сертификатов никакого не было? Ведь все равно надо переводить винду в тестовый режим.

Итак, сначала просят установить сертификат, притом дважды. Ок, помещаем его в Trusted Root Certification Authority и Trusted Publishers.
Я так понимаю эти сертификаты не пригодились в итоге?)

Бесплатным вряд ли получится, ведь этому драйверу надо где-то запускаться и работать

Но это не значит что от нее не надо защищаться

Информация

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