ページ 1 / 1
【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 03:46
by 玉井
失礼します。
visualstudioにて制作、完成し、releaseを実行、
exeファイルにし終わったゲームがあります。
先日パソコンを床に落とした衝撃で、PC内のファイルなどに
データ損傷などの障害が出てしまい、げんなりしながら色々調査していたのですが
こともあろうに、そのvisualstudioのプロジェクト内の
そのゲームのあるひとつのcppファイルが損傷していました。
(中身のソースがすべて文字化け?し、1000行近いソースがたった一行になっていた)
そのファイルからの修復は不可能と判断したのですが、
このファイルのソースを、
別の方法で復活、取得、解読、等、自分が手に入れる方法はありますか?
というのも、自分が作ったゲームです。
そのゲームプロジェクト内のreleaseフォルダの中には、
破損した同じファイル名のodjファイルや
それを利用して作ったexeファイルなどが残っています。
これらを利用して、
なんとか、破損したソースを表示させることは叶いませんか?
今、非常に困っています。
泣きそうです。
そのほかの方法でもなんでもいいです、
cppファイルが蘇る方法があればどうか教えて下さい。
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 04:18
by h2so5
objファイルやexeファイルからソースコードを復元するのはかなり困難で、書きなおしたほうが早いです。
どうしても復元したいならHDD復旧業者に依頼するという手もありますが...
バックアップやコピーは全く作っていないのでしょうか?
(一度でもどこかに複製を作っていた場合、そこから復元ソフトなどを使って復元できる可能性もあります)
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 04:46
by 玉井
h2so5 さんが書きました:どうしても復元したいならHDD復旧業者に依頼するという手もありますが...
すみません、記載しませんでしたが、
流れは
落とした⇒HDDのデータが見れなくなった
⇒復旧業者に頼んだ⇒外付けHDDに全部取り出してもらった
⇒戻ってきたので中身の確認⇒破損したデータが出てきた
なんです。
どうしても、odjファイルから読み取りたいのですが、
そんなに手間のかかることなんでしょうか、、、。
あと色々と確認してみると、復旧業者の方は
なんかひとつひとつのフォルダを手作業で取り出した感じ?があります。
フォルダ名が同じのものだと、
Aのプロジェクトに、Bのプロジェクトのフォルダが入っていたり。
なんか同じものだと勘違いして持ってきてるなあ、とか感じるところがあるんです。
あんまり、良い業者じゃなかったんでしょうか。
データ救出専門業者ということで七万円も取られたんですが。
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 05:48
by h2so5
objファイルやexeファイルを逆アセンブルすれば処理の内容を解読することはできますが、そこからソースコードへ直すのは手動ですよ。
↓こういったデータからソースコードを復元する必要があります。
コード:
002C2B27 cmp dword ptr [ebp-8],3E8h
002C2B2E jge 002C2B71
002C2B30 mov eax,dword ptr [ebp-20h]
002C2B33 push eax
002C2B34 push 34384Ch
002C2B39 mov ecx,dword ptr [ebp-14h]
002C2B3C push ecx
002C2B3D lea edx,[ebp+FFFFFED8h]
002C2B43 push edx
002C2B44 call 002C121C
それに、一度自分自身で書いたことのあるプログラムで1000行程度ならある程度の構造は憶えているはずなので、それを元に書き直すのが現実的な解決方法だと思います。
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 06:57
by 玉井
コード:
[quote="h2so5" id=3,118719]↓こういったデータからソースコードを復元する必要があります[/quote]
それは自分には無理そうです。
わけがわからないです。
[quote="h2so5" id=3,118719]一度自分自身で書いたことのあるプログラムで1000行程度ならある程度の構造は憶えているはずなので、それを元に書き直すのが現実的な解決方法だと思います。[/quote]
もちろん、覚えてはいます。
が、ゲーム自体が複雑だったので、、
また打つとなると、骨が折れます。
非常にトホホなので最終手段としたいのですが。
過去に自分でデータ救出ツールを使った時は
中身を綺麗に取り出せたのですが、
その時は、ただHDDを認識しなくなったというケースでして、
今回はぶつけた後、ツールでも中を覗けなかったのと
非常に重要なデータということで、専門業者に頼んだのです。
質問が脱線しますが、ノートパソコンを落とした衝撃で、
HDD内のあらゆるあちこちのファイルにて
まばらに障害が出るもんなんでしょうか?
例えば、visualstudioだけで言えば、
各プロジェクトで画像を入れたフォルダ内の画像のいくつかが破損していたり、
BGMを入れたフォルダ内のmp3のいくつかが破損していたり、
ソリューション自体を実行出来なくなったプロジェクトもありました。
かと思えば、まるっきり無事なプロジェクトもありました。
落としたということで物理的障害?だと思うんですが
その場合はこんなにちらかった破損状況になるんでしょうか?
一番わけがわからないのは、
Aプロジェクト内のa.cppファイルのソースが、
そのまんまBプロジェクト内のd.cppファイルに書かれていました。
これは、誰かの手によって、コピペしたとしか思えないんですが。
これを復旧業者に尋ねるのは失礼になりますか?
なにが言いたいのかと申しますと、上記の状況のおかげで
もしかしたら、本当はそこのソースも復旧可能なんだけど、
復旧業者がミスor見落としor手抜きなどしてしまっているのではないかと
思ってしまって。。
別の業者に頼むと、ソースの文字化けや虫食いも無く
うまく取り出せた、なんてこともあるんでしょうか。
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 09:07
by へにっくす
玉井 さんが書きました:HDD内のあらゆるあちこちのファイルにて
まばらに障害が出るもんなんでしょうか?
出るもんです。
OSは何でしょうか。visualstudioを使ってるようですから、XP以上としますね。そのファイルシステムは、
NTFSを使用しています。
なぜファイルを認識するのかと言うと、まずファイル名などの情報を保存するテーブルがあり、そこからリスト状にHDDのどの番地に格納されているか記録しています。
破損状況によりますがそのテーブルもHDDの中の話なので、壊れている可能性が高いのです。
専門業者と言えども、テーブル、またはそれから出ているリストの情報が壊れていては、完全な復旧はできません。またリストの情報が無事でどの番地かわかっても、その中が壊れていてはこれまた完全な復旧は無理です。なのであなたの言うような現象は
起こりえます。
玉井 さんが書きました:別の業者に頼むと、ソースの文字化けや虫食いも無く
うまく取り出せた、なんてこともあるんでしょうか。
とどめをさすようで申し訳ないのですが、すでに業者に頼んで復旧されているのであれば、壊れた当時の情報も掃除されている可能性が高いです(無駄な領域を解放するため)。
なので
あきらめなさい。としか言えないです。
今度からは、ソース管理とかしっかりしましょう。
HDDは消耗品です。いつ壊れてもいいように万全の措置をとるのが普通です。
今回その点で、高い授業料を払ったと思うしかないと思いますよ。
オフトピック
今でこそ落としたりしなきゃ、何年も使えるようになってますけどね。
それがかえって、消耗品だってこと、誰も認識していないように見える…(^^;
昔は容量は少ないうえに壊れやすかったですよ。笑
[編集]Offtopicの部分を少々修正。
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月13日(日) 09:44
by softya(ソフト屋)
ディレクトリの論理的な並びとHDDの物理的な並びは一切関係がありませんので、物理的な破損で論理的な破損がどのようになるかは事前に予想できません。
つまり「まばらに障害」と言うのはHDDのファイルシステムにおいて当然のごとく発生します。
>一番わけがわからないのは、
>Aプロジェクト内のa.cppファイルのソースが、
>そのまんまBプロジェクト内のd.cppファイルに書かれていました。
ちょっとした情報の取り違いがそういうこと引き起こしますが、復旧は事前の保蔵情報でも無い限り困難を極めます。
objからソースコードを復旧させる方がよっぽど簡単だと思います。
HDDは破損するもので、ましては落とす可能性のあるノートPCのHDDなどいつ壊れてもおかしくないものです。
USBメモリに毎日バックアップを取るなどの自衛策は必須と言えるでしょう。
>なにが言いたいのかと申しますと、上記の状況のおかげで
>もしかしたら、本当はそこのソースも復旧可能なんだけど、
>復旧業者がミスor見落としor手抜きなどしてしまっているのではないかと
>思ってしまって。。
>別の業者に頼むと、ソースの文字化けや虫食いも無く
>うまく取り出せた、なんてこともあるんでしょうか。
失礼ながら7万円程度だと大したことは出来ません。
あと、壊れた後にご自身がした行動によって難易度が跳ね上がることがあります。
「HDD復旧|データ復旧センター[データ復元]」
http://www.datadoctor.jp/hdd/
このぐらいからが必要な金額だと思います。
レベル4ぐらいに該当していませんか?
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月16日(水) 08:36
by 玉井
皆様ありがとうございました。
今回の件で、普段から別の記録媒体にも
保存しとくのが如何に重要かを思い知りました。
今後は気を付けたいと思います。
Re: 【至急】失ったソースを復旧する方法ありますか?
Posted: 2014年4月16日(水) 11:03
by softya(ソフト屋)
HDDの修復代金ですが、交わした契約内容次第では交渉の余地は有るかもしれません。再確認してみてください。
※ 普通は完全には修復できないと書いてあるはずですので、無理かと思います。