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

ソースコードのないPC-9801プログラムの仕様解析、予算10~30万は安い?」記事へのコメント

  • 要件が、再度コードを作るプログラムを作成するということならば
    開発費用までほしいところですが、

    既存プログラムの動作仕様解明までのようですし現状動作している
    ようですのでそうは難しくないのではないかと想像します。

    • そう思ってチャレンジしたものの諦めた方がすでにいる模様。

      ▽その他・ご応募されるエンジニアの方へ
      こちらは過去に数名のエンジニアの方に委託しましたが、途中で放棄されてしまっており、
      難易度はかなり高いものと思われます。
      (入力パラメータを可変させて出力ロジックを推測するような人海戦術では厳しいと思われます)

      --
      モデレータは基本役立たずなの気にしてないよ
      親コメント
      • どういう人たちかわかりませんけど、PC9801のEXEプログラムを解析して
        メモリーアロケーションを解析したり逆アセンブルして開発言語を特定し
        動作を追う経験があった人かどうかですね。

        それをやったことない人には開発技術があるってだけでは難しいんじゃ
        ないかとは思います。

        親コメント
        • まずはバイナリエディタで文字列検索しないとw

          特定のインパクトプリンタ制御するなら,MASMあたりでゴリゴリ書いてあるような。
          昔のは規模が小さければアセンブラで書いちゃった方が早かったですからねえ。メンテ性はすげえ悪いけど。
          親コメント
          • by Anonymous Coward

            どのみちプリンタの制御コードの部分は読みにくいですからね。

            • どれだけコードが読みにくかろうが,
              MS-DOSの頃は高校生レベルの知識でシステム全体をコントロール可能だったんで,
              いろいろ夢がありましたよね。
              親コメント
              • by Anonymous Coward

                MSXやX68Kなんかだと、ソフトだけでなく増設メモリとかの拡張カード作ったりとか、いろいろやってる人がいましたよね。
                MSXはPC98とかと比べると安価だったので、ハードウェアでも手を出しやすかったのもあると思います。

        • by Anonymous Coward

          逆アセンブルして開発言語を特定

          実行ファイル中に文字列として

          > Turbo-C - Copyright (c) 1988 Borland Intl.

          とか

          > MS Run-Time Library - Copyright (c) 1988, Microsoft Corp

          とかあったりすることもあるのでまずはそっからでそ。

          • 開発言語を特定したいのは付着したライブラリ部分を特定したいからです。
            開発言語がなんとなくわかると固定したライブラリ部分がたぶん存在すると
            思うのでプログラムが大きくても解析は楽になるはずです。

            はずというのは実際見ないとわかんない。

            親コメント
            • by Anonymous Coward on 2017年08月26日 15時10分 (#3268090)

              某氏の日記によると [srad.jp]、6月頃にランサーズで同一と思われる案件の募集がされていて、N88-BASICらしい。なんでそんな重要な情報落とすかな。いや素人だから何が重要なのかも理解できていないのか。納期が最短半月とかクレイジーな設定の割に8月になってしれっと再募集かけているあたりも、単にかかりそうな期間が理解できていない感じだし。

              親コメント
              • by Anonymous Coward

                なんでそんな重要な情報落とすかな。

                情報として不確かだからでは?

          • by Anonymous Coward

            その頃だとTurbo-Pascalもあるかもしれませんね。
            あれはP-codeじゃなくてnativeコード吐くんでしたっけ?

            • 所謂DOS BASICのコンパイラを使ったとかも。
              プリンタ操作周りが容易そうだし。

              親コメント
              • by Anonymous Coward

                DOS BasicといってもNEC製のコンパイラはランタイム環境が必須なので特定できるんで違うだろうなあ。
                98ハードウェアに特化したBasicコンパイラってあったっけ? QuickBasicとかTurbo-Basicは違うしな。

              • by Anonymous Coward
                BASIC/98 ってありましたね。
              • by Anonymous Coward

                basicだとしたら、ランタイムも一緒にFDに入ってるんじゃない?
                200kb程度ですし。

                まぁ、あの時代、BASICから初めて、速度の為にBASICのマシン語モニタでマシン語制御→
                最後はwinfmやらfilmtnやらに内蔵のバイナリエディタでマシン語バイナリ直書きでcomやらexe作成とかアレゲな人がいた時代なので。。。。

              • このまえ,Cなんて死ねばいいのに(意訳)とかの記事があったけど,
                アセンブラからCに移るとCってすげえ便利ね,となるのよね。
                私もファミリーベーシックの時はPEEKとPOKEをよく使ってましたね。
                にしてもこの手の話題になるとイキイキしてくるジジイ具合よ。
                親コメント
              • by Anonymous Coward

                バイナリエディタで.COMファイル作成は分かるが
                .EXEファイルはちょっと盛ってないか?w

              • by Anonymous Coward

                64bytesのEXEなら先日バイナリエディタで直接作成しました。終了するだけの単なるstubですが。

              • by Anonymous Coward

                >.EXEファイルはちょっと盛ってないか?w

                がんばればできるかもしれませんが、がんばっちゃうだけで実用的ではないですね。

              • by Anonymous Coward

                Cなんて死ねばいいのに(意訳)と言われて反発したくなるのはその頃の記憶があるからなんだろうね。でもそういうのを老害っていうんだよ。

              • by Anonymous Coward

                まだあるっぽいぞ
                http://www.dennougumi.co.jp/products/basic98/ver5/index.html [dennougumi.co.jp]

              • いいなあ,老害って言われてみたいなあ。
                親コメント
              • by Anonymous Coward

                おい、老害

            • ネイティブコードですよ。intel 486の頃はDelphoiのObject-Pascalもあったはずです。サブルーチンコールの形式がCとは違うので、区別つきます。

              親コメント
            • by Anonymous Coward

              > その頃だとTurbo-Pascalもあるかもしれませんね。

              手許の 3.02 で生成された実行ファイルを確認したら

              > Copyright (C) 1985 BORLAND Inc

              7.0 で生成された実行ファイルを確認したら

              > Portions Copyright (c) 1983,92 Borland3

              という文字列が埋め込まれてた。
              社名と年代が分かれば処理系を調べる手がかりとしては良いところでは。

          • by Anonymous Coward

            開発言語不明というのが引っかかるな。今時なら適当な hex dump tool とか strings で簡単に分かるはずなのに不明なのだから、圧縮か暗号化してあるのかも。

            言い回しからして、何かのキージェネレータか。

            歴戦の勇者達なら、圧縮された exe ファイルを解凍して元の exe に戻すツールくらいは持っていると思う。

            ああ、パソコン通信の海に放流した exe 解凍ツールは生きているのだろうか?

            圧縮ツール: 放流した解凍ツール
            pkexe: pkdec (これはもしかしたら手元に置いてあるだけかも)
            diet: eat (*1)
            lzexe: lzee
            exepack: unexep

            (*1) diet 自身で解凍できる。オーバーレイ部分があると失敗するので作ったツール。

            • by Anonymous Coward

              DOS時代だと、バイナリーを付け足し編集して条件分岐でジャンプ先を変えるなどとという、ウィルスと作り的に同じ可能性もあり得るので。。。

              ここまでくるとマシン語書いてるようなもんですね。。

              • by Anonymous Coward

                Cのint86()関数って確かスタックに命令コードを生成して呼び出してた記憶がある。
                実際そうでもしないとやりようが無いからね。

                256種類を展開すれば生成しないでも可能だけど。

      • by Anonymous Coward

        桁一個か二個足りないというコメント有りましたが、その通りなんだと思いますよ。

        ♯ツール類使用禁止の臭いはある。。。

        • by Anonymous Coward

          しかし1000万から2000万で募集してたら、
          それはそれで別の騒ぎになってただろう

          • by Anonymous Coward

            ドットインパクトプリンターだと、自前でタイミング取りながら直接制御コード叩いてる可能性もあります。。
            じゃないとデータ飛ぶ(ォィ)からw
            まあ、21世紀成る前に新しいのに更新される前提で作られたモノでしょう。

            • by Anonymous Coward

              割り込みで作るのが面倒なのでとりあえずベタで書いたら問題なく動いてそのままは
              作った事ありますねえ。

              単純なコマンドラインのツールでも機種共用ライブラリなんかを使ってると
              何の為にあるのかわからないコードだらけに見えるかな。
              W2K上で動かすと機種判別部で存在しないメモリ読もうとして落ちるとか。
              Windows上かの判別をしてWindows用実行ファイルも用意してあるのにそこで落ちてNT系に
              対応できてなかったなんてのもw

              • by Anonymous Coward

                >Windows上かの判別をしてWindows用実行ファイルも用意してあるのにそこで落ちてNT系に
                >対応できてなかったなんてのもw
                Win3.x用のアプリをWin95/98で動かした際にバージョン4.xをNT4と勘違いして跳ね飛ばすとかあったっけなぁ

            • by Anonymous Coward

              事務員さんが太郎ちゃんで作ったサンプルどおりに(こちらはページプリンタ出力)、
              N88+ドットインパクトで作れって言われた時を思い出す...

              漢字はJISコードに変換してIN-OUTで挟んで出力、はデフォとして。
              CRだけ送って下線、半改行コードを駆使して罫線、行末まで空白を送ってCRの位置ズレ防止などなど...
              地獄だったなぁ...その後、誰が保守したんだろう。今見ればCHR$だらけのソースは暗号文と同じ。

              ※出力遅い!うるさい!って文句言われたし...

      • by Anonymous Coward

        下手すると誤差やバグや初期化されていないメモリに依存していたりするのでプログラム自体の解析だけでは駄目かもしれません

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

処理中...