Python打包EXE全攻略(下)

6) 用cython編譯打包成防破譯加密exe

之前打包的python程序exe文件都可以通過第三方工具反破譯為pyd文件稼钩,然后就可以反向看到源代碼。這樣的exe文件缺乏保密性博肋,無法作為正式的發(fā)布版本低斋。一種通用簡單的解決方法是把python程序先用cython編譯后,再進(jìn)行打包匪凡,這樣中間代碼為二進(jìn)制文件膊畴,相當(dāng)于進(jìn)行了加密,無法被反破譯病游,提高了保密性唇跨,適合當(dāng)作發(fā)布版本。以下仍以windows10系統(tǒng)里打包為例衬衬。

第一步买猖,安裝Cython庫

可以直接用pycharm進(jìn)行安裝,或是用pip 安裝

Cyphon

第二步滋尉,安裝vs2015

第三步政勃,編寫一個(gè)setup.py程序用來調(diào)用cython,把用到的py文件都進(jìn)行轉(zhuǎn)編譯為c兼砖。

繼續(xù)使用之前的例子奸远, 假設(shè)我們有XXX.py,YYY.py,ZZZ.py三個(gè)程序讽挟,編寫setup.py如下:

from distutils.coreimport setup,Extension

from Cython.Buildimport cythonize

extensions =[]

extensions.append(Extension('XXX',['XXX.py']))

extensions.append(Extension('YYY',['YYY.py']))

extensions.append(Extension('ZZZ',['ZZZ.py']))

setup(ext_modules = cythonize(extensions,compiler_directives={'language_level':3}),)

第四步懒叛,編寫main.py程序,這個(gè)程序是個(gè)入口程序耽梅。它會導(dǎo)入所有程序所需要的庫包薛窥,然后調(diào)用原先入口程序的主函數(shù)啟動整個(gè)程序。我們例子中原先的入口程序是XXX.py眼姐,我們編寫main.py如下:

import XXX

import YYY

import ZZZ

if __name__ =='__main__':

XXX.show()

預(yù)期的運(yùn)行結(jié)果如下:

預(yù)期運(yùn)行結(jié)果

第五步诅迷,把程序轉(zhuǎn)成pyd和c:

使用命令:python setup.py build_ext --inplace

結(jié)果會生成c文件和pyd文件,這時(shí)要對pyd文件進(jìn)行改名众旗,把XXX.cp36-win_amd64.pyd改成XXX.pyd罢杉。YYY和ZZZ同樣進(jìn)行修改。

最后程序集如下:

轉(zhuǎn)編譯后的全體程序

第六步贡歧,用pyinstaller打包成exe:

pyinstaller -F main.spec

運(yùn)行結(jié)果如下:

測試運(yùn)行

這樣我們的程序通過Cython轉(zhuǎn)成c語言再編譯成中間代碼滩租,最后打包成exe,提高了保密性利朵。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末律想,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绍弟,更是在濱河造成了極大的恐慌技即,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件樟遣,死亡現(xiàn)場離奇詭異而叼,居然都是意外死亡郭脂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門澈歉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來展鸡,“玉大人,你說我怎么就攤上這事埃难∮ū祝” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵涡尘,是天一觀的道長忍弛。 經(jīng)常有香客問我,道長考抄,這世上最難降的妖魔是什么细疚? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮川梅,結(jié)果婚禮上疯兼,老公的妹妹穿的比我還像新娘。我一直安慰自己贫途,他們只是感情好吧彪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丢早,像睡著了一般姨裸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怨酝,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天傀缩,我揣著相機(jī)與錄音,去河邊找鬼农猬。 笑死赡艰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盛险。 我是一名探鬼主播瞄摊,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼勋又,長吁一口氣:“原來是場噩夢啊……” “哼苦掘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起楔壤,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤鹤啡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蹲嚣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體递瑰,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祟牲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抖部。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片说贝。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慎颗,靈堂內(nèi)的尸體忽然破棺而出乡恕,到底是詐尸還是另有隱情,我是刑警寧澤俯萎,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布傲宜,位于F島的核電站,受9級特大地震影響夫啊,放射性物質(zhì)發(fā)生泄漏函卒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一撇眯、第九天 我趴在偏房一處隱蔽的房頂上張望报嵌。 院中可真熱鬧,春花似錦熊榛、人聲如沸沪蓬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跷叉。三九已至,卻和暖如春营搅,著一層夾襖步出監(jiān)牢的瞬間云挟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工转质, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留园欣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓休蟹,卻偏偏與公主長得像沸枯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子赂弓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容