avva: (moose)
[personal profile] avva
(может быть интересно в основном программистам)

Вот очень странный и невероятно крутой хак: trapcc - вычисление без единой инструкции CPU.

Авторы продемонстрировали, что механизм трансляции адресов на архитектуре x86 обладает полнотой Тьюринга, т.е. с его помощью можно реализовать любой алгоритм. С помощью хитрой настройки различных контрольных таблиц, которыми пользуется процессор, они вводят процессор в состояние, в котором он не может выполнить ни одной инструкции, т.к. непрерывно происходят исключения, но разные исключения в зависимости от приготовленных данных - и таким образом процессор вычисляет!

Известно, что одной инструкции условного перехода по вычитанию (вычисли a = a-b, и если это меньше или равно нуля, перейди в c) достаточно для Тьюринг-полноты. В этом хаке такая инструкция симулируется с помощью последовательности page faults (от невозможности загрузить данные), которая заканчивается double fault (когда указатель на стек уменьшается ниже нуля).

Несколько более подробное объяснение - в этом комментарии.

Любопытно, что ни один существующий эмулятор x86 не мог правильно запустить этот хак, потому что он опирается на слишком извращенную конфигурацию контрольных таблиц, и на тонкие нюансы поведения процессора в этой извращенной конфигурации. В итоге они смогли подстроиться под эмулятор Bochs.

Как ни странно, у всего этого даже есть практические применения, правда, в области, которая ничего хорошего и полезного миру не приносит - обнаружение того, что программа бежит под отладчиком или в виртуальной машине. Ну а так - это просто неимоверно круто и красиво.

Date: 2013-02-23 01:55 pm (UTC)
From: [identity profile] znour.livejournal.com
Спасибо. просто удивительное исследование.

Date: 2013-02-23 01:57 pm (UTC)
From: [identity profile] burrru.livejournal.com
Обалдеть!

Date: 2013-02-23 02:10 pm (UTC)
From: [identity profile] substractor.livejournal.com
Что может быть красивее сферического коня в вакууме...

Date: 2013-02-23 06:56 pm (UTC)
romikchef: (штора)
From: [personal profile] romikchef
феерического коня в вакууме :)

pure awesome

Date: 2013-02-23 03:22 pm (UTC)
From: [identity profile] staerum.livejournal.com
yo dawg, I herd you like computing, so I put an computer in your computer so you can compute while you compute

Date: 2013-02-23 04:55 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Надеюсь, что в следующих версиях процессоров дырка будет закрыта, и triple fault будет определен более строго. :)

Date: 2013-02-23 05:12 pm (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
> однозначно хак года
Текущего календарного года или за предыдущие 365 дней?

Date: 2013-02-23 05:53 pm (UTC)
From: [identity profile] janatem.livejournal.com
> которая ничего хорошего и полезного миру не приносит
Отличная оговорка!

Date: 2013-02-23 06:28 pm (UTC)
From: [identity profile] nec-p1us-u1tra.livejournal.com
Почему оговорка?
Программа, которая хочет знать, не смотрят ли на нее дебаггером, не имеет в виду ничего хорошего.

Date: 2013-02-23 07:03 pm (UTC)
From: [identity profile] janatem.livejournal.com
Так я примерно это же и выразил (оговорка не в смысле сказал не то, что хотел, а то, что выражается придаточным предложением после слов «хотя», «правда» и т.п.).

Где-то попадались похожие рассуждения про технологию оптической невидимости. Что, мол, это всё очень интересно, но никакой практической пользы она не принесет, только для шпионажа и войны.

Date: 2013-02-23 07:18 pm (UTC)
From: [identity profile] ircicq.livejournal.com
Производители эмулирующих дебаггеров на месте не стоят.
Уж коли хак описан, уточнят эмуляцию MMU.

Date: 2013-02-23 08:53 pm (UTC)
From: [identity profile] drw.livejournal.com
Как оно в память-то пишет?

Date: 2013-02-23 10:48 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
hardware writes fault info on the stack -
where it thinks the stack is (address in TSS) (цитата из их слайдов)

Date: 2013-02-23 11:58 pm (UTC)
From: [identity profile] kray-zemli.livejournal.com
Ну всё, ща пойдут бут-вирусы, запакованные таким паковщиком. Ни один антивирус не раскусит.

Date: 2013-02-24 06:10 am (UTC)
From: [identity profile] dartamon.livejournal.com
Visual Basic for Applications делал распознование булевых значений исключениями еще много лет назад (Тру = 0, Фолс = -1). Ничего тут толком нового.

Date: 2013-02-24 04:04 pm (UTC)
From: [identity profile] vashik.livejournal.com
программа бежит (https://encrypted.google.com/#hl=ru&q=%22%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B1%D0%B5%D0%B6%D0%B8%D1%82%22+OR+%22%D0%B1%D0%B5%D0%B6%D0%B8%D1%82+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%22&oq=%22%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B1%D0%B5%D0%B6%D0%B8%D1%82%22+OR+%22%D0%B1%D0%B5%D0%B6%D0%B8%D1%82+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%22)
программа выполняется (https://encrypted.google.com/#hl=ru&q=%22%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F%22+OR+%22%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%22&oq=%22%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F%22+OR+%22%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%22)

Date: 2013-02-25 10:07 am (UTC)
From: [identity profile] netp-npokon.livejournal.com
В зависимости от того, как выпадут звезды, разным людям гугл может показать разную статистику по запросам. Поэкспериментируйте на досуге, очень интересно.

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

Date: 2013-03-02 07:57 pm (UTC)
From: [identity profile] bam-77.livejournal.com
почти ничего не понял, но очевидно, что можно по аналогии создать алгоритм, который позволит узнать - не живем ли мы в Матрице )

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 08:47 pm
Powered by Dreamwidth Studios