Троянский компилятор Thompson's

@Entity
@Table(name = "tabelName")
public class yourEntity{
    @Id
    @SequenceGenerator(name = "yourName", sequenceName = "yourSeqName", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "yourName")
    @Column(name = "id", updatable = false)
    protected Long id;
}

@Query(value = "SELECT yourSeqName.nextval FROM tableName", nativeQuery = true)
Long getNextSeriesId();
<час>

РЕДАКТИРОВАТЬ:

Query q = em.createNativeQuery("SELECT yourSeqName.NEXTVAL FROM DUAL");
return (java.math.BigDecimal)q.getSingleResult();
11
задан Jonathan Leffler 23 April 2009 в 16:44
поделиться

3 ответа

Исходная программа входа в систему принимает совпадающие пары имени и пароля из файла.

Модификация заключается в добавлении сверхмощного пароля, скомпилированного в программу входа в систему, который разрешает root-доступ. Чтобы гарантировать, что этот код не виден при чтении программы входа в систему, в компиляторе есть изменение, чтобы распознать этот раздел программы входа в систему, в его первоначальной форме и скомпилировать его в супер-мощный двоичный пароль. Затем, чтобы скрыть существование этого кода в компиляторе, должно быть еще одно изменение в компиляторе, который распознает раздел компилятора, в который было добавлено первое изменение, и выдает измененную форму.

Как только измененный код компилятора существует, вы можете скомпилировать компилятор и установить его в стандартном месте, а затем вернуть исходный код программы входа в систему и компилятора в неизмененную форму. Установленный скомпилированный компилятор тогда возьмет неизмененную программу входа в систему и выведет небезопасную форму. Аналогично, установленный компилятор скомпилирует исходный код неизмененного компилятора в хитрый вариант. Любой, кто проверяет исходный код любого из них, соглашается с тем, что в них нет ничего необычного.

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

15
ответ дан 3 December 2019 в 04:53
поделиться

Я никогда раньше не сталкивался с этой концепцией, но это довольно интересно - я нашел аккуратную статью в http://scienceblogs.com/goodmath/2007/04/strange_loops_dennis_ritchie_a .php

6
ответ дан 3 December 2019 в 04:53
поделиться

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

2
ответ дан 3 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: