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

Познователь

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

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

Похоже что уже нет, вот интересная презентация 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, судя по их презентации))

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

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

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

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

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

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

Результат декомпиляции
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;
}

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

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

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


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

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

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

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

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

Новые фичи в Python 3.9

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

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

Как починить все самому, если баг-репорты игнорируются: отлаживаю wkhtmltopdf под Windows

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

Как синхронизация времени стала безопасной

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

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

USB over IP в домашних условиях

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

USB over IP в домашних условиях

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

Telegram как NAS/FTP

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

О хранении JWT токенов в браузерах

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

MNT Reform — Полностью открытый ноутбук для параноиков

(NXP и Freescale это Qualcomm)

А давно NXP и Freescal стали Qualcomm? Можно какие-нибудь пруфы?

Взламываем Age of Empires III, чтобы изменить настройки качества шейдеров

Этот файл довольно хаотичен. Но после меток Geforce FX 6800 мы видим несколько идентификаторов. Скорее всего, нам нужен один из них. Давайте попробуем 00F1.
Проще всего протестировать это — воспользоваться LLDB и задать нужные точки останова. Я пропущу это этап, но скажу, что 00F1 подошёл (к счастью).
На этом этапе нам нужно ответить на вопрос: «Как сделать это изменение постоянным?» Похоже, что проще будет изменить значения var_CC и var_D0 на 0X00F1 и 0X10DE. Для этого нам всего лишь нужно получить пространство для кода.

Интересно, автор пробовал менять XMB файл вместо кода. По идее если 00F1 заменить на индификатор своей карты, то таким образом игра должна думать что у нас Geforce FX 6800… по идеи

Greybox Fuzzing на примере AFLSmart

А вычисляемыми полями типа CRC он уже не справляется?


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

Вы под низкоуровневыми имеете ввиду smart deletion, smart addition
and smart splicing
из статьи ?

Как избавиться от размытых фотографий с помощью Python

Когда воспринимаешь слова буквально

Первое что подумал когда прочитал заголовок, зачем тут вообще Python, когда можно обойтись rm -rf ...

MitM-like поддержка RTOS в GDB

Там был задействован Cypress FX3,

Дилетантский вопрос: почему задействовали такой специфический контроллер?


И еще интересует с каким отладчиком работает GDB-сервер hw_server ?

Макросы для питониста. Доклад Яндекса

Когда макрос раскрывается, а это происходит в момент загрузки модуля, то он просто преобразуется к такому коду.

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

Информация

В рейтинге
5,822-й
Откуда
Тульская обл., Россия
Зарегистрирован
Активность