Вы можете спасти общую структуру вашего кода, используя class-dump в исполняемом двоичном файле.
Он не восстановит весь код, но сможет восстановить все определения классов. То есть, если вы не удалили двоичный файл из символов отладки.
Что касается жесткого диска, который невозможно восстановить, я думаю, все зависит от того, сколько денег вы готовы потратить на него. Есть компании, которые специализируются на восстановлении данных с разбитых дисков, и, насколько мне известно, они способны восстановить практически любой тип сбоя диска. Вопрос в том, готовы ли вы заплатить эту цену или дешевле будет просто переопределить код.