アカウント名:
パスワード:
コード比較だけをみたんじゃわからんでしょ。
Disassamblerソース(MSのオブジェクトを逆変換したのはこっちだと思うが)にある、クラス名やメンバ名などが一致していることのほうが問題ですね。ざっと、ImageMaster のソースを取ってきて調べてみたけど、LogicalVolume,UdfHelper, PartitionMap のクラス名とメンバの名前は一致したので、コードを利用している疑いは強いです。
トレス疑惑の追及に近いものを感じる。
# や、もちろんライセンス違反はいけないことですけどね?
コード比較ちゃんと読め。左側は逆アセンブル結果なので、本来のローカル変数名や定数名に関する情報が失われている。それを踏まえた上でコード読むと、両者はけちのつけようが無いくらいほとんど同じということがわかるはず。
逆アセンブラ/逆コンパイラを通したばやい、元のソースと完全に一致することはありません。変数名は反映されませんし、最適化によりコードの記述が若干影響を受けることもあります。
では、どの程度異なるものなのか、実際に試してみることにします。PNG画像のコードを書き写した上でコンパイル可能なようにコードを追加し(クラスや変数・定数の宣言)、csc.exe(version 3.5.30729.1)でコンパイル後、それを逆コンパイルしてみました。
※Rafael Rivera氏の使われた逆コンパイラは不明ですが、ここでは.NET Reflector [red-gate.com]を使っています。
LogicalVolume volume = new LogicalVolume(); volume.Id.Parse(0x54, buffer); if ((volume.BlockSize < 0x200) || (volume.BlockSize > 0x40000000)) { return false; } volume.FileSetLocation.Parse(0xf8, buffer); num2 = helper.Get32(0x10c, buffer); if (num2 > 0x40) { return false; } num = 440; for (int i = 0; i < num2; i++) { PartitionMap map; byte num5; if ((num + 2) <= 0x800) { map = new PartitionMap(); map.Type = buffer[num + 1]; num5 = buffer[num + 1]; if ((num + num5) > 0x800) { return false; } if (map.Type == 1) { if ((num + 6) > 0x800) { return false; } map.PartitionNumber = helper.Get16(num + 4, buffer); goto Label_0164; } } return false; Label_0164: num += num5; volume.PartitionMaps.Add(map); } volumes.Add(volume); } else if ((num3 == extent.Length) || (num3 == this.Size))
このように、おおむね再現されているものの、オリジナルとは一部異なる(goto辺り)部分も見られます。(変数名は.NET Reflectorがクラス名から推測して付けてるっぽい)また、MaxExtents等の定数らしき部分はconst intで宣言していますが、コンパイル時に即値へ置き換えられていることが分かります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
コード比較を見たけど (スコア:0)
Re:コード比較を見たけど (スコア:4, 参考になる)
コード比較だけをみたんじゃわからんでしょ。
Disassamblerソース(MSのオブジェクトを逆変換したのはこっちだと思うが)
にある、クラス名やメンバ名などが一致していることのほうが問題ですね。
ざっと、ImageMaster のソースを取ってきて調べてみたけど、LogicalVolume,
UdfHelper, PartitionMap のクラス名とメンバの名前は一致したので、
コードを利用している疑いは強いです。
Re:コード比較を見たけど (スコア:1)
トレス疑惑の追及に近いものを感じる。
# や、もちろんライセンス違反はいけないことですけどね?
Re:コード比較を見たけど (スコア:1, 参考になる)
コード比較ちゃんと読め。左側は逆アセンブル結果なので、
本来のローカル変数名や定数名に関する情報が失われている。
それを踏まえた上でコード読むと、両者はけちのつけようが無いくらいほとんど同じということが
わかるはず。
Re: (スコア:0)
Re:コード比較を見たけど (スコア:4, すばらしい洞察)
逆アセンブラ/逆コンパイラを通したばやい、元のソースと完全に一致することはありません。
変数名は反映されませんし、最適化によりコードの記述が若干影響を受けることもあります。
では、どの程度異なるものなのか、実際に試してみることにします。
PNG画像のコードを書き写した上でコンパイル可能なようにコードを追加し(クラスや変数・定数の宣言)、csc.exe(version 3.5.30729.1)でコンパイル後、それを逆コンパイルしてみました。
※Rafael Rivera氏の使われた逆コンパイラは不明ですが、ここでは.NET Reflector [red-gate.com]を使っています。
このように、おおむね再現されているものの、オリジナルとは一部異なる(goto辺り)部分も見られます。
(変数名は.NET Reflectorがクラス名から推測して付けてるっぽい)
また、MaxExtents等の定数らしき部分はconst intで宣言していますが、コンパイル時に即値へ置き換えられていることが分かります。
Re: (スコア:0)
Re: (スコア:0)