Sender: katsu@FLAGSHIP Newsgroups: fj.comp.lang.perl Subject: Re: [Q]=?iso-2022-jp?b?GyRCJTklLyVqJVclSCROMEU5ZjI9GyhC?= References: <9b5o4u$2dj$1@katase.isl.melco.co.jp> <9b5vbn$n6g$1@nw041.infoweb.ne.jp> <9b684u$l3o$1@echonfs.echo.nuee.nagoya-u.ac.jp> From: WATANABE Katsuhiro Date: 20 Aug 2002 14:15:19 +0900 Message-ID: Organization: An individual person. User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Lines: 60 Xref: FLAGSHIP mine:447 あまりの follow-up の遅さが議論の妨げになっていたらごめんなさい。 記事 <9b5o4u$2dj$1@katase.isl.melco.co.jp> で satoys@isl.melco.co.jp (Yoshihiro Sato) さんいはく > perlスクリプトを人にわからないようにして > リリースしたいのですが、なにか > 方法(コンパイル、暗号化など)方法は > ありますでしょうか? 無理あるいは無意味という結論が出た(スレッド全体は *1)ようですが、 これに関する「蛇足」の記事の、さらに「追加」とのことで、 記事 <9b684u$l3o$1@echonfs.echo.nuee.nagoya-u.ac.jp> で 市村和人 さんいはく > dump LABEL; を思い出しました。 > ソースコードの先頭に > > dump DUMP_START; DUMP_START: > > と書き込んで、作成できる core ファイルを undump(1) して作成された実行 > ファイルのパーミッションをread不可にすれば、暗号化とはいきませんが、読 > み出せなくなると思います。 簡単に読み出せてしまうと思います。 まず、core にはソースコードが残ってしまっているでしょう(*2)。perl を 実行した process の data segment 全体が dump されるのですから。 undump(1)は、core から data segment を取り出して、新しい実行形式 ファイルの data segment に移します。よって、新しい実行形式ファイルの data segment にはソースコードが入り込んでいます。新しい(実行形式) ファイルの owner が誰で mode が何になっていようとも、それが一般の ユーザ x の権限のもとで実行できるということは、x がプロセス空間の data segment をいつでも取り出せる(get core)ことを意味します(*3)。 もちろんその data segment にはソースコードが含まれているでしょう。 (*1) 元となったスレッドの記事全体を参照されたい方は、以下の web page を参照してください: http://groups.google.co.jp/groups?dq=&hl=ja&lr=&ie=UTF-8&inlang=ja&th=c6dad0a3319766be&seekm=9b5vbn%24n6g%241%40nw041.infoweb.ne.jp&frame=off http://groups.google.co.jp/groups?dq=&hl=ja&lr=&ie=UTF-8&inlang=ja&th=4028f8c775dc4fc1&seekm=9b684u%24l3o%241%40echonfs.echo.nuee.nagoya-u.ac.jp&frame=off (*2) ただし、ソースコードを map した記憶域は非常に注意深く消して まわるような perl の実装でない限り。いつでも完全に消す困難さと performance を考えるとこれは大変だし、報われない気がします。 実際の perl はどうなのでしょうか?あるいは perl に限らず一般に、 ソースコードを map した記憶域はそのたび神経質に掃除してまわる ような(インタプリタ)言語処理系の実装はあるのでしょうか? (*3) 具体的な方法は、 > Newsgroups: fj.os.linux,fj.unix > Message-ID: > Subject: Re: =?ISO-2022-JP?B?GyRCJSIlVyVqJE4bKEJjb3JlGyRCJUAlcyVXJCwbKEI=?= > =?ISO-2022-JP?B?GyRCPVAkSiQkJHMkRyQ5JCwbKEI=?= > From: WATANABE Katsuhiro > Date: 13 Aug 2002 09:17:51 +0900 (http://katsu.watanabe.name/article/443.txt で閲覧できます)等で 議論されました。 -- 渡邊克宏 http://katsu.watanabe.name