Re: [問題] 軟體限制使用者/安裝/複製

看板Python作者 (酒虎)時間5年前 (2019/09/02 13:58), 5年前編輯推噓3(3013)
留言16則, 7人參與, 5年前最新討論串2/3 (看更多)
※ 引述《bobshih (夏天)》之銘言: : 你好 各位先輩 : 我是新手 想請教 : 如果開發一個軟體 打包成exe檔出售 : 但遇到 軟體給使用者A後 怕使用者A 私下複製提供他人使用 : 或是使用者A 有兩台電腦 要同時安裝其軟體 : 該如何限制使用者 購買的軟體 只能安裝於一台電腦 不能複製/轉移其他電腦/其他人使用 : 我之前有跟巴基斯坦人 購買過小軟體 : 軟體打開後 要輸入帳號密碼連線後 (應該是連到伺服器或是對方電腦吧) : 才能使用軟體 並且該軟體可以限制 安裝幾台電腦 超過安裝次數/或是使用期限 : 則無法安裝開啟軟體 : 請問這是什麼技術? 又是該往哪方面找資料?? 各位好, 小弟遇到了同此原文的問題, 還望各位指點一些關鍵字或是解決方法。 小弟所遭遇的問題和原文相近, 上頭的指示是希望製作成安裝檔而不是執行檔, 也就是程式幫使用者安裝後, 他即使複製給別人也不能運作(或是會跳出警告)。 根據原文的留言: 「→ uranusjr: Device UUID UDID, 不過防止複製什麼的其實都可以破解辣」 我找到了以下的程式碼: import subprocess x = subprocess.check_output('wmic csproduct get UUID') 藉此可以得到電腦的 UUID, 原先是想要將 UUID 登錄至伺服器上, 這樣只要每次開啟程式自動與伺服器聯繫就能判斷要不要跳警告了; 不過後來考量到以小弟的所在環境來說, 上頭給不給開伺服器是還好解決, 但使用者那邊沒開網路或網路被限制在內網的問題比較難解決…… 關於上述這些內容, 想到的解決辦法是取得要開放的 UUID, 直接寫在 .py 內的 list 內並用 pyinstaller 生成 .exe 執行檔, 執行時發現在 list 內找不到 UUID 就跳錯誤。 想請教還有其他推薦的關鍵字或解決辦法嗎? 另外, 把 Python 寫出來的程式包裝成安裝檔這部分該用什麼關鍵字? 我自己試了幾組關鍵字, 結果大多是如何安裝 Python、如何安裝某某函式庫或是 Pyinstaller 如何使用等等, 可能是因為我關鍵字一直包含 Python 和 install 兩個詞, 只是想要調整關鍵字也找不太到該加什麼或改成什麼…… 小弟經歷淺薄, 還請各位賜教。 在此先謝謝各位前輩花時間閱讀與回應了, 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.181.39.217 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1567403918.A.728.html

09/02 17:25, 5年前 , 1F
用OTP呢? 不用網路但會綁設備
09/02 17:25, 1F

09/02 17:26, 5年前 , 2F

09/02 17:26, 5年前 , 3F
只有玩過example 無法給更深入的討論 抱歉 :)
09/02 17:26, 3F

09/02 20:14, 5年前 , 4F
好的,我研究看看,謝謝資訊!
09/02 20:14, 4F

09/03 12:59, 5年前 , 5F
在業界看到有人先用程式蒐集該電腦環境的資料
09/03 12:59, 5F

09/03 12:59, 5年前 , 6F
產生一個授權檔案 有那個檔案才可以跑
09/03 12:59, 6F

09/03 13:00, 5年前 , 7F
我把認證過的vm環境 完整複製到別台電腦上執行會失敗
09/03 13:00, 7F

09/03 13:00, 5年前 , 8F
詳細我也不知道怎麼辦到的 不過可以朝這方向研究看看
09/03 13:00, 8F

09/03 13:13, 5年前 , 9F
回cod大,複製到別台電腦會失敗,是因為硬體不一樣吧?如果
09/03 13:13, 9F

09/03 13:13, 5年前 , 10F
是vm複製到vm, 也會失敗嗎?
09/03 13:13, 10F

09/03 15:34, 5年前 , 11F
是的 vm 複製 vm 配置一模一樣 @@
09/03 15:34, 11F

09/04 13:16, 5年前 , 12F
感謝前輩的分享,我嘗試找看看資料
09/04 13:16, 12F

09/05 07:46, 5年前 , 13F
建議改成連回主機用發出來的授權key安裝,否則在怎麼防都
09/05 07:46, 13F

09/05 07:46, 5年前 , 14F
會被破解
09/05 07:46, 14F
m 大提的方法, 目前小弟主要卡在使用者那端絕大多數不開網路或限制在內部網路, 所以設計上要弄成只有安裝時判斷授權(暫時性地用手機分享網路可以對外連線), 一方面是小弟還是沒找到該怎麼製作成安裝檔而不是執行檔, 另一方面是這個判斷授權的結果勢必要儲存在某處, 以便後續沒有網路時開啟程式有地方可以辨別; 用加密文件妥當嗎? 還是有其他的方式比較推薦呢?

09/06 01:35, 5年前 , 15F
wmic CPU get ProcessorID
09/06 01:35, 15F

09/06 19:40, 5年前 , 16F
可以簽章啊!
09/06 19:40, 16F
謝謝指點, 對簽章有些不熟, 先做些功課。 ※ 編輯: jakeasa123 (175.181.39.217 臺灣), 09/10/2019 15:08:34
文章代碼(AID): #1TRA-ESe (Python)
文章代碼(AID): #1TRA-ESe (Python)