ソースコードのないPC-9801プログラムの仕様解析、予算10~30万は安い? 262
ストーリー by hylom
金と時間があれば解決はできそうだがどのくらいの規模かは分からない 部門より
金と時間があれば解決はできそうだがどのくらいの規模かは分からない 部門より
クラウドソーシングサイトCrowdWorksにて、PC-9801プログラムの解析という案件が出ている。EXEファイルのバイナリのみで、ソースコードや仕様書などが一切存在せず保守が不可能になっているというものだそうだ。
開発言語は不明で、現行の環境はPC-9801BX2とドットインパクトプリンタとの組み合わせで動いているという。プログラムは2本あるとのこと。
成果物は「各プログラムのINPUT/OUTPUT仕様書」だそうなのだが、報酬が「10~20万円」となっている点が議論を呼んでいる。
クラウドワークスならではの予算感 (スコア:5, 興味深い)
かつてクラウドワークスで何度か受託したことある一人ですが
馬鹿にしてるとしか思えない予算のプロジェクトが山ほどありますよ。
iPhoneアプリとアンドロイドと、ついでにサーバも一揃い、
設計開発から導入まで全部まとめて10万円でやってくれみたいな感じです。
我々プロからすれば1桁どころか、2桁ぐらい違うんじゃない?って予算感ですが
なにせ相手は素人の方なので、なぜそんなに開発にお金がかかるのか想像できないのです。
あげくには、お金を出せないけどアプリがヒットして利益が出たら払いますとか・・・
さらにカオスなのは、そういう無茶な案件でも、たまに
日本語が喋れないインド人とかが入札してきたりするんですよね。
もちろん、まともに完成させるとは思えません。
適当に作って形だけ完了宣言して、払ってくれたら儲けものってな逞しい外貨稼ぎです。
クラウドワークスの開発案件は、まさに魔窟です。
もちろん、まともな案件も中にはあるので、そういう1~2%のまともな案件を
見つけたときだけ私は応募してます。
そこからの受注率が、また低かったりしますけどね。
こういう予算のハチャメチャぶりが解消されないうちは、
本職の技術者の人は近づかない方が良いかと思います・・・
新規に作成し直した方が良いのでは (スコア:4, すばらしい洞察)
経験から言うと、既存のプログラムをどれだけ解析しても、
処理内容までは分かってもその処理の意図が分からないという事は
往々にしてある。
意図が分からないということはその処理が正しいのかどうか
判断できないということで、同様の処理を再現することは出来ても
結局遠からず保守できなくなる。
それならいっそ要求仕様からきちんと起こして新規に作成する方が良いのでは。
Re:新規に作成し直した方が良いのでは (スコア:2, すばらしい洞察)
そりゃ米国防総省だって知っている話。
米国防総省は10億米ドル以上かけて、更新に失敗しているのだが。
https://it.srad.jp/story/13/07/14/0555217/ [it.srad.jp]
Re:新規に作成し直した方が良いのでは (スコア:1)
新規で作れば楽じゃん!
で、後悔することになる。
仕様漏れが発覚したり動きが微妙に違ったり…
結局解析して仕様作る羽目になる。
要件は、既存プログラムの動作仕様解明まで (スコア:2)
要件が、再度コードを作るプログラムを作成するということならば
開発費用までほしいところですが、
既存プログラムの動作仕様解明までのようですし現状動作している
ようですのでそうは難しくないのではないかと想像します。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:1)
そう思ってチャレンジしたものの諦めた方がすでにいる模様。
モデレータは基本役立たずなの気にしてないよ
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
どういう人たちかわかりませんけど、PC9801のEXEプログラムを解析して
メモリーアロケーションを解析したり逆アセンブルして開発言語を特定し
動作を追う経験があった人かどうかですね。
それをやったことない人には開発技術があるってだけでは難しいんじゃ
ないかとは思います。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
特定のインパクトプリンタ制御するなら,MASMあたりでゴリゴリ書いてあるような。
昔のは規模が小さければアセンブラで書いちゃった方が早かったですからねえ。メンテ性はすげえ悪いけど。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
MS-DOSの頃は高校生レベルの知識でシステム全体をコントロール可能だったんで,
いろいろ夢がありましたよね。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
開発言語を特定したいのは付着したライブラリ部分を特定したいからです。
開発言語がなんとなくわかると固定したライブラリ部分がたぶん存在すると
思うのでプログラムが大きくても解析は楽になるはずです。
はずというのは実際見ないとわかんない。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
所謂DOS BASICのコンパイラを使ったとかも。
プリンタ操作周りが容易そうだし。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
アセンブラからCに移るとCってすげえ便利ね,となるのよね。
私もファミリーベーシックの時はPEEKとPOKEをよく使ってましたね。
にしてもこの手の話題になるとイキイキしてくるジジイ具合よ。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
Re:要件は、既存プログラムの動作仕様解明まで (スコア:1)
ネイティブコードですよ。intel 486の頃はDelphoiのObject-Pascalもあったはずです。サブルーチンコールの形式がCとは違うので、区別つきます。
Re:要件は、既存プログラムの動作仕様解明まで (スコア:2)
そのあたりは現状動作しているのでそこからある程度は追えるんじゃないかな。
あとコンパイラ(ライブラリ)のバグを利用した技とかもありますしね。
ライブラリを叩いていたりすると大変 (スコア:2)
GRAPH.LIB
さらに
GDCを叩いていたりしたら
相当面倒でしょう。
Re:ライブラリを叩いていたりすると大変 (スコア:2)
システムソフトの「PC-Techknow9800」とかも
必携でしょうね。
一桁多ければ考えるな〜 (スコア:2)
PC-9801と68K Macのソフトはよく解析してたなあ。
ただま,副業レベルでもMAX30万って無いわ〜
つまり (スコア:1)
現行プログラムの解析自体に、そのくらいの価値しかないという事でしょう。
そんなことやってないで、さっさと仕事すればいいのに。
募集するだけで、どれだけ時間使ってるのか知らないけどさ。(応募者との調整とかもろこみだと、30万なんかぶっ飛ぶだろうに)
Re:つまり (スコア:1)
そもそも、問題を解決する気が無いのではと思います。
大昔に納めたプログラムについて問い合わせが有ったけど
誰も対応出来なくて、客を諦めさせるために
対応出来る人間が居ない事を示すアリバイ作りとしてこういう単価で募集を出しているのでは?
Re:つまり (スコア:2)
KB単位、と言うだけでは
* 1-999KBまでで「MBにいかない」と言う意味なのか、
* 1-9KBまでで「KBで1桁程度」と言う意味なのか、てのは判然としませんね
前後の文脈からして64KB以下って事だろうと思われますが
Re:つまり (スコア:2)
「せいぜいオンメモリで動くKB単位のプログラム」ってとこしか見てないですがね
16ビットという事で64K
Re:つまり (スコア:2)
いや知ってますけどね
元コメがそういう感じじゃなかったので「そういう風に読める」というハナシ
Re:つまり (スコア:1)
# printfから浮動小数点数の処理を排除してコンパクトにするとかの理由で
Re:つまり (スコア:1)
よい突込みですね。
PC-9801BX2としているので、CPUはIntel 486SXであり、FPUなしですから、FPUライブラリをリンクしているかFPUエミュレーションを別途常駐させているかいずれかでしょうね。
まぁ、大概前者かな。
あるいは遅くなるから整数値のみとかも当時はよくありましたね。
n88baisc.libとかついているならP-CODE読めるスキルが必要ですね。
そういうことをやるなら「PC‐9801システム解析 (上)」がとても参考になることでしょう。
何もかもがとても懐かしいです。
Re:つまり (スコア:1)
このEXEが、当時あった改変保護機能付き自己展開型EXE生成ソフト
「Mets File Shield」(8000円くらい)で自己展開型圧縮EXEにされていたら、
さらに戸惑いそうですね。
Re:つまり (スコア:1)
あ、そうですね。
ソーサーで、にわか逆アセンブルしてた時のイメージでいました。
ランタイムデバッガがありましたねorz
Re:つまり (スコア:1)
そっちですか。
%dとかは文字列としてexeから見つかり、
しかし渡しているのが…んんっ?!
ってなりそうですね。
バイナリのサイズがわからねー。 (スコア:1)
IO仕様書というなら、デバッガでトレースするだけでいいかもしれないけどえ、その際は残りメモリががが、
応募者いるんだな。勇者だ。
Re:バイナリのサイズがわからねー。 (スコア:1)
16bitコードなら、Full ICEくっ付けるって手もあるな。確実に予算オーバーだけど。
Re:バイナリのサイズがわからねー。 (スコア:1)
普通に逆コンパイラーのHex-Raysを使うのが王道でしょ。
https://www.hex-rays.com/files/hexrays_info.pdf [hex-rays.com]
> Facts about Hex-Rays:
> -The decompiler supports 32-bit compiler generated x86 code
> -It can handle code generated by any mainstream C/C++ compiler
MS-DOS の .EXE は非対応では?
Re:バイナリのサイズがわからねー。 (スコア:1)
むしろPC-9801が現役の時代には聞いたこともない名前だったから対応しているわけねーだろと思ったら案の定だ。
Re:バイナリのサイズがわからねー。 (スコア:1, すばらしい洞察)
技術的難易度というよりか、作業環境・人的資源での難易度のように思う。
98が現役の頃なら、exeの解析できるような腕やセンス、ツールその他開発環境を持ってる奴は
その辺にゴロゴロいたでしょ?
そういう人達も年食ってエラくなって現場から離れて久しかったり、
今でも現役なら最前線走ってるだろうから98時代の知識とカンを蘇らせるのにリハビリが要る。
どっちにしろこんな単価で雇えるようなレベルじゃない。
98エミュレータの開発に絡んでたとかでもない限り、当時の環境を動態保存してたり
すぐ使える状態のバックアップなんか持って無いんじゃないかな。
Re:バイナリのサイズがわからねー。 (スコア:1)
そこに、報酬設定の低さを感じるんですよね。
・スキル的に担える人が希少
・ツール/環境を残している人が希少
本気でやらなきゃいけないと思うなら、全体作業が2~3か月として、300万~かなぁ
ってのは、技術者サイドの感覚
実際にそんなプログラムを今まで使っているようなところが、それだけの費用を捻出できるとも思えない。
多分、運用していた98がお亡くなりになって、ジャンク部品を集めて存命していたけど、部品も集まらなくなったんでしょうね。
そういう会社の存亡にかかわる事なのかもしれないけど、もっと早いうちに切り替えておくべきでしたよね。
でも、そんな古いものが直接製造機械と最近まで連携できているとも考えにくいし、そういうたぐいのプログラムとは思えない。
ぶっちゃけ、新たに仕様起こして作った方が無駄な時間をかけなくて済むし、安上がりだろうに、何でこんな募集するんだか。
「INPUT/OUTPUT仕様書」が成果として出ればいいと言ってるが、そのためには、多分全ての動作を解析する必要があるのは明白なのに。
しかも、そんな仕様書おこしたところで、それほど役に立たないであろう・・・・
自分で考える努力をしないSEなのかなぁ・・・
ただでさえ炎上案件なのに、炎上の元が地雷っぽい・・・・
Re:バイナリのサイズがわからねー。 (スコア:1)
ただまあ、久しぶりにPC-9801/DOSのプログラムに触ってみるのは楽しそうかな、とは思いますね。
定年退職して余暇があるような状況だったら、楽しめてお金も稼げる、という受け取り方はできるかも。:-)
もしかすると (スコア:1)
PC98全盛の時代に、ゲームソフトのコピープロテクト外しとかチートとかをちょいちょいとやってた人ならもしや、という気もする。
けど、もう現役引退してるだろうし、そもそもそういう爺さんたちが、クラウドソーシングサイトを見てる気がしないなぁ。
Re:もしかすると (スコア:2)
Re:~20万なのか~30万なのか (スコア:1)
> 本契約前でも、秘密保持契約を別途結ばせて頂ければ、解析対象ファイルをお送りすることは
> 可能でございますので、まずはそちらから解析可能かご判断頂くのも良いかと思われます。
確かに安すぎるかもしれないが、この点は評価できる。
98エミュレータとか作るような人種なら案外あっという間にリバースできる可能性が微レ存。
Re:~20万なのか~30万なのか (スコア:3, おもしろおかしい)
> 解析対象ファイルをお送りすることは可能
もしかしてPC98フォーマットの3.5インチFDが送られてきたりして...
初っ端から詰む。
Re:~20万なのか~30万なのか (スコア:1)
いや、エミュレータは、公開仕様書からクリーンルーム方式で作るんだよ。
ハードウェアではCPUもIOチップも殆どintelのチップの相当品なので問題ないのだけど、EGCだけはカスタムチップで詳細な仕様が無いので完全には再現出来てない。
ソフトウェア面ではBIOSは、BIOSコールの仕様書から実装する。BASICは手が出せないのでEPSONみたく放置する。
Re:~20万なのか~30万なのか (スコア:1)
クリーンルーム方式というのは、逆アセンブルはしないという事だよ。
Re:~20万なのか~30万なのか (スコア:1)
厳密なクリーンルーム方式だと、コーダーと検証も人員を分ける。
Re:~20万なのか~30万なのか (スコア:1)
なるほど、いま検索して経緯を見ると確かに勘違いでした。考えてみると非公開にして使ってもらえないなら本末転倒な気がする。
Re:~20万なのか~30万なのか (スコア:1)
前半の方は簡単だろうと思ってスタートした当初の文章で、
後半は実態が見えてきてから付け足した文章なんじゃないかな…
でも予算は増えない、と。
Re:~20万なのか~30万なのか (スコア:1, 興味深い)
こういう感じが目に見えるようだ、ということだろ。
http://www.jgnn.net/ls/2014/08/51010.html [jgnn.net]
何言ってんだこいつはオマエだよ。夏休み終わったらちゃんと学校行けよ。
Re:~20万なのか~30万なのか (スコア:2)
Re:~20万なのか~30万なのか (スコア:1)
予算は30万用意してあるが、私が10万ピンハネするので、あなたに渡るのは20万。
Re:安いというよりも (スコア:2, すばらしい洞察)
成果物が仕様書で予算10〜20万じゃあいいとこ1人日ですね。
スキルだの解析だの以前の問題。
Re:ドットインパクトプリンタだあ? (スコア:1)
これですね。
時代からすると、
・PC-PR系列
・NM系列(PC-PRと似ているけど微妙に違う)
・ESC/P系列
のどれかだと思いますが…。
現状だと、コマンドセットの一覧を探すのも一苦労しそう。
# 確か自宅にマニュアルが残っているはず(^^;)
Re:よく似た依頼 (スコア:2)
引用された方が元請けで、2件を安請け合いした下請けがクラウドワークスに出してきたのがこのストーリーの話題なのでは。