質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

4401閲覧

wxpythonにて作成したexeファイル購入者が譲渡できない仕組みを知りたい。

dendenmushi

総合スコア98

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/25 03:30

前提・実現したいこと

wxpythonを利用してexeファイルを販売する際に、1購入に1PCだけが使えるようにしたい。

試したこと

購入されたexeファイルを1PCにセットアップし紐づけしたら、そのexeは他の譲渡などされた先で利用できないようにする方法として1マックアドレス固定の方法を模索しましたが、これといっていい情報が得られませんでした。
他の方法でも構いません。Libraryなど見識ある方アドバイス何か頂けないでしょうか。

補足情報(FW/ツールのバージョンなど)

OS:win10
python3.6
wxpython

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/01/25 07:54

FYI: 参考にならない回答(自己解決かつ退会済み)ですが、過去に同様の質問回答がありました。 商用ツールのライセンス管理がしたい - https://teratail.com/questions/137116
dendenmushi

2020/01/25 08:03

ありがとうございます。参考になりました。
guest

回答2

0

python/wxpythonに限った話ではありませんが、最近ではプログラムに対して特定のPCやユーザーを結び付けるのは、サーバーと通信して「ライセンス」を付与するようなものが多いです。何らかのキー値をユーザーに伝え、インストール時やインストール後にそのキーをユーザーに入力させ、ライセンスを管理するサーバーと通信することで製品を使えるようになる、いわゆる「アクティベーション」を行います。アクティベーションをしないと一定期間で使えなくなるとか、機能制限をします。例えば今のWindowsやVisual Studioがそうですよね。

ネットに繋がないスタンドアロン環境で動くような製品ですと、製品自体がマスターキーのようなものを持っていて、ユーザーはマスターキーにつながるライセンスキーを入力すると、あるルールでそのライセンスキーとマスターキーを照合し、合致すれば正当なユーザーと認識するようなものもあります。昔のWindowsやOffice製品もそうでした。ですが、この方法はライセンスキーが流出すると違法コピーが使えることになるので、廃れました。リバースエンジニアリングで抜き出すことも可能ですし。

その他、高額で特殊なソフトウェア製品になると、USBポートやシリアルポートに挿す「ドングル」と呼ばれるハードウェアを一緒に使うことで正規ユーザーと認識するものもあります。ドングルは購入したときに正規のライセンス数でしか手に入らないはずのものなので、それを使っている者すなわち正規のユーザーと言うことになります。この方法ですとネットやサーバーは必要ありませんが、安易な造りのドングルですと、これまたリバースエンジニアリングされて模造されることもあります。

配布先のユーザー様合意の上では、MACアドレスに限らずPCのマザーボード、ハードディスクやSSDのシリアル番号などを総合的に勘案すればある程度縛れる場合はありますが、その気になれば簡単にリバースエンジニアリングで突破されるようなことですから、やはり安易に採用しない方が良いと思います。python/wxpythonですから尚更です。

投稿2020/01/25 04:27

dodox86

総合スコア9369

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendenmushi

2020/01/25 07:49

アドバイスコメントありがとうございます。下の方にも追加で質問しているのですがもしよろしければコメントよろしくお願い致します。
dodox86

2020/01/25 08:00

.NET Frameworkなどで汎用のライセンス管理のライブラリなどは無いと思いますよ。各社は自前でサーバーと連携して管理するように自作するでしょう。サードバーティ製のライセンス管理ライブラリ/システムなどはあるかもしれませんが、私自身は知りません。
dodox86

2020/01/25 08:05

私が過去に携わった製品ではやはり、お客様ごとのライセンスキーの払い出しと、クライアントインストール時にサーバーと連携してアクティベートする自前のライセンス管理システムです。私自身はこれはもう一般的な方法だと思っています。
dendenmushi

2020/01/25 08:12

なるほどです。自前の仕組みが必要ということですね。ありがとうございました。
dendenmushi

2020/01/25 11:52

dodox86さんであればどのような仕組みにしますか?python限定で、やはりデスクトップアプリだとしてもWEBと通信する仕組みを独自で作るということでしょうか。
dodox86

2020/01/25 12:29

私だったらメイン部分にPythonを使った製品にライセンス縛りをするようなことはそもそもしないです。 Pythonを使ったものではない、ライセンス管理を行うネイティブの実行ファイルを自作して連携させるくらいでしょうか。それでもPython側のプログラムはその気になれば比較的簡単に改変できるでしょうから、本質的に脆弱です。
dendenmushi

2020/01/25 12:34

いろいろと勉強させて頂きありがとうございます。python本体と連携するライセンス管理実行ファイル(ほかの言語?)ということでしょうか。こういった書籍を探したいのですがワードとして「認証」?「ライセンス」?でしょうか。ネイティブ実行ファイルというのはワンタイムキ―のようなものということでしょうか。
dodox86

2020/01/25 12:48

> ネイティブ実行ファイルというのはワンタイムキ―のようなものということでしょうか。 いえ、違います。C言語などで作ったライセンス管理を行うネイティブの実行ファイル、と言うことです。それでも(重ねて言いますが)メインがPythonですと決め手に欠けると思います。回答はしましたが、「wxpythonを使ったEXEファイル」と言う条件を考えると最後はmaisumakunさんの回答に行き着くと思うので、私の回答は本質問に対しては不適切だったかもしれません。「プログラムのライセンス認証の方法について」の参考情報としてとらえてください。「wxpythonを使ったEXEファイル」と言う前提は崩せないのであるから、「やらないよりは良い」程度の域を出ないと思います。
dodox86

2020/01/25 13:15

あとは、そもそもサーバーが無いと実質役に立たないような製品設計にするか。結局はサーバーで管理することになります。
guest

0

ベストアンサー

wxpythonにて作成したexeファイル

この時点で、セキュリティ的な試みはほぼ無駄です。Pythonから実行ファイルを作る場合、ソースコードを圧縮するような形になりますので、ソースコードが復元可能となります。どんな手を施そうとも、本気になればかんたんに回避可能です。

投稿2020/01/25 03:38

maisumakun

総合スコア146544

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendenmushi

2020/01/25 07:48

アドバイスコメント頂きありがとうございます。例えば有名どころのライブラリですとどんなものがあるのでしょうか。有名な_Adobe製品、EXCEL、OFFICE製品、あれらは元は.NETの認証方式を利用しているために購入者に限定して使わせることが可能となっているのでしょうか。 秀丸は振り込みを促すのみで、さくらエディタは無料。 ふと思ったのですが有名な録画ソフトbandicamはどのような仕組みなのでしょうか。あれはwxpythonのようなライブラリではなく別の仕組みで作られているということでしょうか。機能制限がなくなるのですが、それはシリアスコードを入力させるシステムです。 例えばダウンロードする購入者たちの時刻やメールアドレスを使って暗号化した値を、ダウンロードされたときに自動的に作り出し(販売者側のDBに登録アドレスと暗号化値を送信)、機能制限解除の依頼を販売者側にして振込完了すると、メールアドレスに紐づく暗号化コードが自動返信。 購入者が特定の画面でそのコードを入力すれば、機能制限解除。こんな仕組みですとwxpythonでも可能そうな気がしますが、これでも破られてしまいますかね。暗号化の方法にもよりますが。
can110

2020/01/25 08:41

ソースコードが簡単に復元できるので、そもそも 「例えばダウンロードする~(中略)そのコードを入力すれば、機能制限解除。」といった仕組みそのものを回避(除去)したコードで別exeを作成されたら元も子もないです。
dendenmushi

2020/01/25 11:51

結論として…wxpythonは使わないほうがいいということで、他の何を使ったらベストと考えられていますか?もしよろしければ別策のアドバイスも頂けないでしょうか。
maisumakun

2020/01/25 12:01

どれくらいコストを掛けられるか(販売するソフトウェアの価格はどの程度か)、そしてどのようなソフトウェアかによっても、適切な手法も変わってきます。
dendenmushi

2020/01/25 12:11

もっとも安価ですと(価格1000円程)、どういう大枠の仕組みになるとお考えでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問