Я имею в виду, да, вы можете конвертировать машинный язык в LLVM IR.IR является полным по Тьюрингу, что означает, что он может вычислять то, что может вычислять какая-либо другая система, полная по Тьюрингу.В худшем случае вы могли бы иметь представление LLVM IR эмулятора x86 и просто выполнить машинный код, заданный в виде строки.
Но ваш вопрос специально задавался о преобразовании «назад» в IR, в смыслеИК результат аналогичен исходному ИК.И ответ - нет, не совсем.Код машинного языка будет результатом различных этапов оптимизации, и нет способа определить, как код выглядел до этой оптимизации.(Стрелок упомянул McSema в комментарии, который делает все возможное, но в целом результаты будут очень отличаться от исходного кода.)