2014-01-17 45 views
0

我對Python很陌生,但希望將其用於編程和腳本編程。我編寫了基本腳本,並且做了一些編譯工作。我目前正在使用py2exe(使用別人製作的不同setup.py腳本),以便它變成一個簡單的.exe,沒有依賴關係(python DLL等)Python - 作爲獨立可執行文件編譯/保護

您可能想知道我的問題是什麼。那麼,我決定檢查可執行文件的安全性,並在Resource Hacker中查看它。我能夠查看我不希望人們能夠發現的腳本的所有部分。 (例如:密碼輸入)。

誰能給我一個簡單的工作方法,爲Python代碼轉換爲一個獨立的可執行文件,不能讓原來的python腳本的收視通過類似資源黑客?

  • 我不是在現場完全瞭解..我還沒有商業開發(然而),我只想讓事情我自己,我也可以讓其他人..雖然我可能自由職業者爲隨意的人在線做事。不管怎麼說,如果我有一個腳本,它提示你輸入密碼,並且如果你把它改正了,那麼它就會繼續,否則,它會被取消並退出......然後,一旦我將它變成一個.exe,在Resource Hacker中打開,並查看「Python腳本」,我滾動到底部,並砰!它顯示密碼。現在當我說我是新的,我的意思是,真的是新的。無論如何,如果你不介意解釋,「加密」,「哈希」等等,我寧願對這些主題開悟。

您的幫助表示讚賞。

+3

退房[這個問題](http://stackoverflow.com/questions/261638/how-do-i-protect- python-code) – wnnmaw

+1

如果程序中有密碼,任何帶有調試器的人都可以在程序運行時找到它們。加密它們會有所幫助(即對二進制文件進行隨意檢查),但程序運行時沒有任何幫助。通常情況下,一次不存儲密碼,而是存儲某種可以改變的API TOKEN。 – Macke

+1

您目前正在考慮「默默無聞的安全性」。如果您擁有某人可以通過公共程序連接的網絡服務,則他們也可以(技術上)以其他方式進行連接,並執行相同的操作,因爲您公開披露了訪問所需的任何祕密。 – Kos

回答

0

這裏有幾個簡單的步驟(與凍結) -

  1. 您需要使用具有其所有已安裝的共享庫模塊

  2. freeze.py通常駐留<python_install>/Tools/freeze/freeze.py下一個Python安裝

    如:Python-2.4.2/linux/Tools/freeze/freeze.py

  3. 我們整合凍結已經RY簡單的程序,它沒有,你只需要調用凍結在這種方式的任何自定義的Python模塊的依賴:

如:

cat hello.py 

#!/usr/bin/env python 
print "Testing" 

凍結:

a. Python-2.4.2/linux/Tools/freeze/freeze.py hello.py 
b. make 

你會看到有一個可執行的hello。

file hello 
hello: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), not stripped 

就是這樣:現在 調用招呼就會產生:

[0:22:47]% ./hello 
Testing