パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

MS-DOSはCP/Mのソースコードを盗んで作られたのか?証明できたら総額20万ドルの賞金」記事へのコメント

  • ソースが欲しけりゃ、わざわざ盗むまでもなく逆アセンブルすればええだけやん

    現代におけるソースコード盗用とは意味が違いすぎますわ

    • by Anonymous Coward

      アセンブラ知らなさすぎ。
      ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
      かなり手間暇かけないとアセンブラのソースにはならんよ。

      この場合の盗用は、現代におけるソースの盗用とほぼ同じ。

      • Re: (スコア:5, 参考になる)

        バイナリを逆アセ>アセンブル(コンパイル)可能なソース化が手間がかかるのは、言われる通り。
        特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。
        「簡単」と言っている人は多分実際にはやったことなくて、「やった事例がある」のを知ってるだけだと思う。やったのなら、その手間に辟易してるだろうから。
        ただし、だからと言ってソース化が不可能と言っている訳ではない。もちろん可能。

        dis.xや半自動化ツールは親コメがいう所の「ワークの解析」なんてのはやってくれない。
        (=親コメで言っているものと同等ですらないものを持ち出しているだけ)

        毎日逆アセと解析している身としては、まぁCP/Mぐらいの規模になれば、ソースを盗用するよりは、むしろ見えているAPIを下敷きに、模倣する方が100倍くらい楽。
        仮にCP/Mの動作を確認したいとしても、テストコード書いて確認すれば良いだけだから、わざわざコストの高い解析をするとは考えにくい。
        • by Anonymous Coward

          > 特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。

          他アーキテクチャへの移植が目的なら「ワークの意味合いまで完全に調べる」必要はあんまないだろ。
          コードとデータの区別ができれば、8080 → 8086/8088 の移植は、キレイに書かれたプログラムならニモニックの機械的な変換でいけるよ。

          • ワークの意味合いまで調べる必要があるのは、
            それがテンポラリ的に使いまわしされるのか、とか、
            グローバル的に意味合いを持たされて使われるのか、とか、
            「同じものを指しているが、意味合いが違う場合」が多々あるからなんですね。

            全く改変する予定がない(機械的な逆アセではかれたコードを一対一で再利用するだけ)のであれば
            最低限それで良いかもしれませんが、
            それをもとに、発展継続を考えているのであれば、どう考えてもシステムの構造や、ワークの意味合いの解析は必要でしょう。

            まぁこういうのは実際にやったことがないと、どのくらい大変かはわからないですよね~。
            • by Anonymous Coward on 2016年08月11日 22時53分 (#3061900)
              なんか資料鵜呑みにしてるだけで、本当にやったことある?

              MS-DOS の時代は、ディスアセンブラとか無くても、モニタでダンプ読んでコード理解するのは当たり前の作業だったよ。
              アセンブラのニモニック覚えるのも、オペコードの数字覚えるのも大差ないから、アセンブラ読めなくてもダンプではコード追えるって人も多かった。それくらいは少なくとも特殊な能力でもないし、誰でもやってた基本能力だった。
              ワークの解析というか、メモリマップ作るのはダンプ読みながらやる標準的な作業の一部。そんな大変な作業じゃない。ダンプレベルでパッチあてたり機能追加したりとか、学生のバイトにもやらせてたぐらいのレベルの作業だよ。

              いまみたいに CPU の挙動が複雑じゃなければたいした作業じゃないので、当時マイコンやってた人なら誰でもできるよ。
              親コメント
              • 逆に「本当にやったことあるの?」と問いたいw
                曲がりなりにも「システム」のプログラムならそれなりの量はあるし、もちろん複雑。

                あなたが記述してるのは「パッチあて」であって、システムの動作や構造をあらわにするレベルの「解析」ではないよ。
                そもそも比較しているものが違いすぎる。
                hello worldが書けたからOSも書けるだろって言ってるようなもんですわ。

                俺も毎日8bit-32bitのコードを解析してるけど、どれも面倒くさいよ。
                CPUの挙動じゃなくて単純にコードの規模の話。
                親コメント
              • ゲームのチートやちょっとしたパッチあてなら、それでいいけど、
                システム一通り読もうとすると、メモ書き程度では破たんだろう。
                というか、そんなに楽なら次から頼むわ。あの不毛とも思える作業。

                CP/M程度なら挙動を模倣するコードを自分で書くのが一番楽かと。

                まあこの時代、ソースの盗用,いいソフトをまねた習作,移植,あたりは
                渾然一体としていて厳密に分けられないことも多いけどね。

                親コメント
              • by Anonymous Coward

                それ言葉の使い方間違ってる恥ずかしいやつ、でケリついてるし

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

処理中...