Как декодировать исходный код c, который скомпилирован gcc

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

3 ответа

Восстановление источника C из двоичного файла было описано как "превращение гамбургера обратно в коров". Вы не сможете восстановить свой исходный код. В лучшем случае вы получите обратно некоторый код, который функционально эквивалентен вашему исходному источнику, но он не будет содержать ни одного из ваших исходных имен переменных, комментариев, макросов и т. Д., Он может не иметь такой структуры (в зависимости от того, насколько агрессивно он был оптимизирован), и это может быть не очень понятно (опять же, в зависимости от того, как он был оптимизирован).

Надеюсь, оригинал все еще можно восстановить.

Если вы используете интегрированную среду разработки на основе Eclipse, в ее истории может быть сохраненная версия вашего источника. Если это так, щелкните правой кнопкой мыши по проекту и выберите "Восстановить из локальной истории...".

РЕДАКТИРОВАТЬ В противном случае попробуйте grep -a -C 200 -F 'Unique string in text file' /dev/sda1 > OutputFile; замените 200 на количество строк в файле и /dev/sda1 с разделом.

См. Раздел восстановления текстового файла по адресу https://wiki.archlinux.org/index.php/File_recovery для получения дополнительной информации.

Удачи!

Вы можете использовать дизассемблер, но вы никогда не сможете полностью восстановить исходный код программы.


Чтобы предотвратить это в будущем, я рекомендую использовать систему контроля версий, например, Git или Subversion. Используя эти инструменты, вы всегда будете иметь резервные копии своего кода на случай такой большой ошибки, как эта.

Другие вопросы по тегам