2015-01-03 11 views
6

クライアントは以前の開発者とブリッジを焼き付けました。残念なことにWeb開発者として、私は.NETフレームワークに関する多くの経験がありません。.NET Framework v4.5実行可能ファイルをコンパイルする ".NETアセンブリファイルではありません"、dotPeekでは実行可能ですが、実行ファイルは正常に実行されます

EDIT:クライアントが合法的にソフトウェアを所有していますが、ソースコードを要求していないため、開発者は私たちの通信に応答していません。 SOに関するこの質問をする私の意図は、法的助言(私たちはそれを取り扱っている人がいる)ではなく、逆コンパイルに利用できるオプションのためであった。

私は実行ファイルをJetBrains dotPeekで逆コンパイルしましたが、それらはすべて.Net Framework v2.0/v4.5フレームワークを実行しました。私が今作業しているクライアントの給与計算実行ファイルは、dotPeek、ILSpy、または.NETアセンブリファイルとして実行された他のC#デコンパイルソフトウェアによって認識されない.Net Core v4.5を実行します。

少しの研究の後、私は.Net Coreが最近オープンソースであると信じています...しかし、私はどのように私がデコンパイルプロセスを進めることができるか、あるいはそれが現時点で可能であるかどうかはわかりません。どんな勧告?

注:「逆コンパイルはできませんが、X、Y、Zを先に試しましたか?」の行に沿って回答を受け付けます。私たちは厳しいスケジュールを実行しているので、それができるかどうかをクライアントに知らせる必要があります。

私がやったことのいくつかの明確化:dotPeekでprogram.exeを開設、プロパティを右クリックは私に与えているこの:

enter image description here

それは「未.NETアセンブリファイル」を主張し、私は実行可能ファイルを実行することができます良い。

EDIT:デコンパイルする別の方法を絞り込むために、実行可能ファイルからより多くの情報を抽出することは可能ですか?

.NETデコンパイラがここで助けにならないと思われます。

+0

.NET 4.5がマシンにインストールされていますか? –

+0

はい、実行可能ファイルを実行できます。 –

+1

@AntonioBakulaあなたは以前に '.Net Core v4.5'プラットフォームで実行可能ファイルを逆コンパイルしましたか? –

答えて

0

.net core。オープンソースの.netは現在進行中です。あなたは、私が.NETコアが問題で何を意味するのかで混乱少しですが、私の理解から、まだ、最終的な.NETのコア4.5がない、マイクロソフトのパブリックgithubのページcorefx

日によって進捗の日を見ることができますそれは確かにまだ完全ではありませんが、誰がそれをプロダクションコードで使用するのでしょうか?詳細情報については

は、.NETのコアランタイムをターゲットにした.NETアセンブリについて何も特別なことはありませんthis blog post

+0

なぜdownvote? – Balanikas

+0

.netコアの問題を解決するために、私はdownvoted(私はとにかくそれを行う特権を持っていない)ではなかった、私はスクリーンショットをアップロードする。 –

+2

私はしませんでしたが、答えは全く意味がありません。 –

2

をお読みください。異なる参照アセンブリを使用するだけです。 mscorlibなどの正しいバージョンを使用するように、デコンパイラに伝える必要があります。プログラムの対象が何であれ、Silverlightは時代遅れの唯一の賢明なものであり、.NETCoreも新しいものです。

しかし、このようなシナリオで最も問題になるのは、プログラマが自分のアセンブリを難読化して自分のIPを保護しているということです。給与管理プログラムはほとんどの場合契約書に基づいて作成されますが、クライアントはカスタマイズ作業のみを行い、コアまたはソースコードには正式なタイトルはありません。

+0

私はあなたが提供しているアドバイスを理解していますが、法的問題に対処するのは私の責任ではありません。私は実行可能ファイルを逆コンパイルして、給与データベースを内部に抽出できるかどうかを判断するように言われました。法的事項は経営陣によるものです。 –

+0

しかし、アセンブリに焦点を当ててみましょう。可能性を絞り込むのに役立つ可能性のある実行可能ファイルからより多くの情報を抽出するために使用できるツールはありますか? –

+0

私はそれがそうであるように難読化されている場合:いいえ。デコンパイラを試してみました。 –

5

開発者は、開発用のWebサイトに関する正当なプログラミングに関する質問をし、教育的な対応が必要です。不要な法律上のアドバイスではありません。dllを逆コンパイルする正当な理由はたくさんあります。

".Net Core v4.5"を使用して開発されたファイルで、MVIDがないと、ファイルにCLRヘッダーが存在しないことが示唆されます。

ファイルをアセンブリに逆コンパイルすると、ファイルがVB6で作成されたことがわかります。

良いVB6のデコンパイラを見つけたら、おそらく大きな問題なしにプログラムをコンパイルできます。残念ながら、vb6をソースコードに完全にコンパイルすることはできませんが、アプリケーションの構築方法をかなり理解することができます。

+0

お返事ありがとうございました@Jamie。私たちは現在、クライアントと協力してデータをまとめる作業をしています。もしこれが成功すれば、たくさんのお金を節約することができます。私はhttp://www.vb-decompiler.org/download.htmを試しましたが、「このプログラムは未知のコンパイラでコンパイルされています」と記載されています。私はそれをHex Rays IDA経由でアセンブリに逆コンパイルしようとします。マーカーの特定に関する詳細はありますか? –

+0

ランタイムファイルの名前を探してください。次に、それらの参照を使用する言語のタイプをルックアップします。 VB6でコンパイルされた場合は、MSVBVM60.dllへの参照があります。 PE Explorerの試用版をダウンロードし、インポートビューアを参照してその内容を確認することをお勧めします。何も表示されない場合は、PE Explorers Dissassemblerを使用してください。 –

+0

残念ながら、VB6ではなく.NET 4.5ではC#です。 –