Как декодировать исходный код 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. Используя эти инструменты, вы всегда будете иметь резервные копии своего кода на случай такой большой ошибки, как эта.