「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@364) [緊急] [感想]
@364■ (#1113) 暗号化して梱包した実行ファイルからはソースが取り出せないようにする - クジラ飛行机 (2009-08-29 16:40) /高 未処理
【症状】どのような症状、現象か?

暗号化して梱包したなでしこの実行ファイルから
ソースが簡単に取り出せてしまう。

【再現方法】サンプルソース、再現手順など

http://www.himanavi.net/cgi/nade-bbs2/cbbs.cgi?mode=one&number=8114&type=8077&space=15&no=0

【要望】どのような解決が望ましいか?

暗号化するのは、見られたくないためであり、
暗号化されたものは、取り出せないよう修正する。

【その他】

特にデラックス版で暗号化したものは、取り出せないように工夫する。

次へ→

(#1233) 割り込み失礼します - NON (2009-10-08 20:10) /緊急 議論中
なでしこの実行ファイル生成にパックファイル方式を使っている以上、パックファイル用の暗号化では復号阻止は難しいのではないかと。

ソースコードをパクられたくないという思いは皆さん同じだとは思いますが、コンパイラ型言語ですら逆コンパイルされる時代です。ソースコードを内部に持つインタプリタ型のなでしこに、厳密なソースコード秘匿を求めるのはそもそもお門違いでは?

なでしこは、公式ページで述べられているとおり、「日々の定型処理に」使う「手軽な道具」であるはずです。それを考えれば、厳密なソースコード秘匿は本来の趣旨とは違うと思います。

ソースコード秘匿が可能ならば、それが最善であることは間違いありません。とはいえ、自ら開発に参加するならともかく、ただ要求だけ並べても説得力は無いでしょう。
なでしこはフリーソフトウェアであり、開発者の好意によって提供されているものです。いくらサポートが行われているからといって、早く直せと急かすのはマナー違反ではないかと。冷静に議論しながら、気長に待つべきでしょう。

バグ報告掲示板を見ても分かるとおり、なでしこには未解決の問題があります。個人的には、この問題よりも優先すべき事項があるように思います。

(#1306) 軽く対処 - クジラ飛行机 (2009-11-07 03:12) /緊急 確認待ち
(#1224) で過去のなでしこで解読できる問題に対処しました。
実行ファイル作成時、暗号化をチェックしても過去のなでしこで解読される怖れがある問題に対処(r210)(@364)

(#1352) すみません - k.k (2009-12-05 19:57) /緊急 確認待ち
あの、その質問をしたk.kです
その質問を質問掲示板にした理由はひまわりのプログラム板で「exeをhmwになおすやつ」を発見してなでしこではできないのかな?と思って投稿したわけです
最後にそのソースが取り出せる件の結果です
環境 
OS windowsVista
なでしこ version1.531~
実行ファイルのなでしこバージョン version1.522~最新
1,version1.522で実験
1.531    エラーが出てくる。(取り出せない)
1.5321      エラーが出てくる。(取り出せない)
1.5322      エラーが出てくる。(取り出せない)
1.5323      エラーが出てくる。(取り出せない)
となりました。

(#1353) 暗号化の強化を(再) - クジラ飛行机 (2009-12-06 12:21) /緊急 調査中
k.k.さん、確認ありがとうございました!

しかし、以下で新しい解析ツールが出ました!
http://nadesiko.g.hatena.ne.jp/periwnkl/

いたちごっこな訳ですが・・・
新しいツールが出るまでは、(普通には)取り出せない訳ですから、
頭をひねって解決できるように頑張ります(笑)

パックファイルであることも問題となっていますので、
ソースの埋め込みのみ別形式にすることも考えられます。
(ただ、ファイルサイズが増えてしまうので、よくないですが・・・)

解析が簡単なのは、暗号化のソース事態が公開されていることが問題であるかもしれません。
デラックス版の暗号化のみ、非公開ソースにするなど、抜本的な解決も考えてみます。

良いアイデアがあれば、教えてください(!)

(#1354) RE:暗号化の強化を(再) - mr (2009-12-06 15:28) /緊急 未処理
こんにちは。

対応ご苦労様です。

意見を3つ述べます。

1.暗号化の対応はとても難しいかと思いますし、デラックス版ではない方にはソース暗号化の機能はつけなくて良いのではないでしょうか。

2.そもそも、「誰でも簡単プログラマー」をキャッチフレーズとするなでしこに、暗号化の機能は無くても良いのではないでしょうか

3.「exeをエディタで開くとソースがそのままという状態は避けたい」という程度の要件に対しては、「暗号化」(絶対に解読できなくする)ではなく、「難読化」(カンタンには読めなくする)という形で機能を提供すれば良いのではないでしょうか。


P.S.
ちなみに、対象の記事については、著作権法第百二十条の二あたりにふれているようにも読めます(私の勘違いかもしれませんが)。一度弁護士さんや警察に相談してみていただくことも検討されてはいかがでしょうか。

(#1355) ソースコードの隠蔽処理 - クジラ飛行机 (2009-12-07 01:02) /緊急 確認待ち
- デラックス版暗号化の解読対策(@364)(r213)

下記のプログラムに対する隠蔽処理を行いました。
http://nadesiko.g.hatena.ne.jp/periwnkl/

今回の対策は以下の二点です。

・(1)暗号化部分のソースコードを非公開にした
・(2)ユーザーが暗号化されたパックファイルを操作しようとするとエラーがでるように強制修正した

オープンソース版とソースは基本的に同じですが、条件コンパイルで(1)を弾くようにしてあるので、コンパイルできるよう配慮したつもりです。

(#1356) RE:RE:暗号化の強化を(再) - クジラ飛行机 (2009-12-07 01:10) /高 確認待ち
mrさん、意見ありがとうございます。

> 1.暗号化の対応はとても難しいかと思いますし、デラックス版ではない方にはソース暗号化の機能はつけなくて良いのではないでしょうか。
> 2.そもそも、「誰でも簡単プログラマー」をキャッチフレーズとするなでしこに、暗号化の機能は無くても良いのではないでしょうか

そう思います。
暗号化に関しては、デラックス版を主眼において、作業をしていこうと思っています。
ただ個人的には、暗号→解読のいたちごっことなっていますので、最低限のものができていればいいかなぁとも思いますが、暗号化については、できる範囲で対応したいと思います。

> 3.「exeをエディタで開くとソースがそのままという状態は避けたい」という程度の要件に対しては、「暗号化」(絶対に解読できなくする)ではなく、「難読化」(カンタンには読めなくする)という形で機能を提供すれば良いのではないでしょうか。

こちら、良いアイデアですね。難読化としたいと思います。
ありがとうございます!!


(#1358) そういえば - k.k (2009-12-07 22:42) /高 確認待ち
そういえば実行ファイルがでかくなっています。
これはどういうことなんでしょうか

(#1359) RE:ソースコードの隠蔽処理 - k.k (2009-12-08 19:52) /緊急 未処理
ちょっと実験してみました
そのソフト自体を抜き出して
1.5322(フリー版)で実行ファイルにする(プラグインは埋め込まない)そうすれば抜き出せません

(#1362) 難読化に一票 - choco (2009-12-09 11:13) /高 未処理
何やら白熱しているので。

デラックス版については、暗号化をお願いしたいです。
商用で利用しているので、簡単に複合化できてかつ、そのツールが手軽に手に入る状態では利用できないです。

フリー版については、無償なのでそこまで労力をかける必要があるのかわかりません。
そこは難読化でもいいような気がします。
まぁ、こういう話題が白熱するって事は【なでしこ】ユーザーが増えてきたからですよね。
(そういう一面から見ると、私的にはちょっと嬉しいような。)

(#1364) 諦める。。。しか… - area (2009-12-12 21:00) /高 議論中
こんなページを見つけてしまいました
http://files.periwnkl.com/blog/2009/12-12_01_nadesiko.html

ううむ。。。なんといっていいものやら。。。
とにかく、作成したシェアで公開したいアプリには
体験版をつけないのが一番かと。

どうしてもつけなければならない時には、体験版は体験版でソース自体から
機能を削減するなどしないとならなくてはならないかと思います。

(#1365) 法的に - ftp (2009-12-13 15:07) /高 議論中
解析する行為が著作権違反なので
ソースの先頭にコメントで上の一文を自動追加する、とか・・・。

(#1366) areaさんの紹介した解析ソフトのソース - ftp (2009-12-13 15:16) /高 議論中
*母艦設計()
  母艦→可視 = 偽
  母艦→タイトル = "なでしこソースコード抽出器"
  メニュー一括作成("なし,file_menu,ファイル(&F),,,
-,open_menu,開く(&O),Ctrl+O,,select_exe
-,-,,,,
-,close_menu,閉じる(&X),,,終了
")
sourceとはTエディタ
source→レイアウト = 全体
source→ファイルドロップ許可 = 真
source→ファイルドロップ時 =~
  extract(source→ドロップファイル)

statusとはステータスバー
status→レイアウト = 下

母艦→可視 = 真

*select_exe()
  file = ファイル選択("なでしこ実行ファイル|*.exe")
  もし、(file != 空)ならば
    extract(file)
*extract(exe)
  もし、(パックファイル存在(exe) == 偽)ならば
    言う("なでしこで作成された実行ファイルではありません")
    戻る
  status→テキスト = exe
  パックファイル分離(exe, "{母艦パス}temp.pac")
  パックファイル抽出("{母艦パス}temp.pac", "nadesiko.nako", "{母艦パス}nadesiko.nako")
  source→テキスト =  開く("{母艦パス}nadesiko.nako")
  // ファイル完全削除("nadesiko.nako")
  // ファイル完全削除("temp.pac")

(#1367) 対策済みです - クジラ飛行机 (2009-12-13 23:57) /高 議論中
ftp さん、ソースありがとうございます!
(#1366)で紹介していただいたソースコードに関しては、最新版で対策済みです。
安心してください。

> 解析する行為が著作権違反

その通りですよね。


(#1379) 難読化ではなくて… - なでしこ愛用 (2009-12-19 19:44) /高 アイデア
いくら「誰でも簡単プログラマー」をキャッチフレーズとしているからといって、僕は難読化では不十分ではないかと思います。
自分がせっかく感性こめて一生懸命作ったプログラムのソースを、他人が勝手に使われたりしたら、誰だって嫌だと思います。

だから、せめて なでしこ に搭載されている簡易暗号化機能を利用して、複数の暗号化形式やキーで、何度もソースコードを暗号化してはどうでしょうか。
また、実行するときは解読する必要があるので、解読するための部分も同じように暗号化をかけてみてはどうですか?

やはり、それでも何度も復号化していけばいずれソースコードをゲットできますが、何もしないよりはずっと良いと思います。

(#1381) (#1379)への補足 - なでしこ愛用 (2009-12-19 20:17) /高 アイデア
(#1379)への補足です。

http://www.himanavi.net/cgi/nade-bbs2/cbbs.cgi?mode=all&number=5924&type=0&space=0&no=0#5937
上のページのような方法で、ソースコードの暗号化をしてみてはどうでしょうか。

(#1400) 抜き出せちゃうんですけど - 774 (2010-01-03 17:27) /高 感想
(#1366)で紹介されているソースを古いバージョンでexe化すると抜き出せちゃいますよ?

(#1402) RE:抜き出せちゃうんですけど - for774 (2010-01-04 09:56) /緊急 再修正依頼
>1367
ftp さん、ソースありがとうございます!
(#1366)で紹介していただいたソースコードに関しては、最新版で対策済みです。
安心してください。

ではないということですね。
どういうことでしょうか。

(#1406) あのー - k.k (2010-01-05 21:58) /緊急 再修正依頼
ちょっとおかしいです
最初のソースでバージョン1.5325だと
抜き出せてしまいます

(#1434) こちらは - ごろう (2010-01-17 01:05) /緊急 感想
横からすみません。
バージョン1.5326では、暗号化されたexeは読めませんでした。
次へ→

(#1113)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能