Я случайно удалил исходную программу, теперь у меня есть только скомпилированный код gcc. Есть ли способ вернуть исходный код.Как декодировать исходный код c, который скомпилирован gcc
ответ
Вы можете использовать disassembler, но вы никогда не сможете полностью восстановить исходный код программы.
Чтобы предотвратить это в будущем, я рекомендую использовать источник управления, например, Git или Subversion. Используя эти инструменты, вы всегда будете иметь резервные копии своего кода, если произойдет такая большая ошибка.
Если вы используете IDE на основе Eclipse, в его истории может быть сохранена версия вашего источника. Если это так, щелкните правой кнопкой мыши по проекту и выберите «Восстановить из локальной истории ...».
EDIT В противном случае попробуйте использовать grep -a -C 200 -F 'Unique string in text file' /dev/sda1 > OutputFile
; замените 200 на количество строк, которые, по вашему мнению, находятся в файле, и/dev/sda1 с разделом.
Дополнительную информацию см. В разделе восстановления текстового файла по адресу https://wiki.archlinux.org/index.php/File_recovery.
Удачи вам!
и если не используется ....? – CristiFati
@CristiFati См. Мое редактирование. Кроме того, я знаю, что некоторые университеты делают ночные резервные копии своих файловых систем. – apandit
Восстановление источника C из двоичного элемента было описано как «превращение гамбургера обратно в коров». Вы не сможете восстановить исходный код. В лучшем случае вы вернете код, функционально эквивалентный исходному исходному коду, но он не будет содержать никаких ваших исходных имен переменных, комментариев, макросов и т. Д., Он может быть не структурирован одинаково (в зависимости от того, насколько он агрессивно был оптимизирован), и это может быть не очень понятно (опять же, в зависимости от того, как он был оптимизирован).
Надеюсь, оригинал все равно может быть восстановлен каким-то образом.
Да, но не в том виде, в котором он был скомпилирован. –
В зависимости от того, как вы его удалили, вы можете просто выполнить восстановление файла. – Zsw
Был там человек, если бы это был не гигантский проект, будет намного быстрее переписать его, чтобы попытаться восстановить его. – asdf