[問題] c調用py產生的exe有辦法包入py檔嗎?

作者: opengood5566 ( )   2015-02-14 00:53:36
c調用python, 通常用PyImport_ImportModule來引入欲調用的py檔案
可是發現產生的exe檔並不會包入這個py檔案, 必須把py檔案和c放一起才能執行
1.
請問有辦法把py檔案也包入exe嗎?
2.
或是 有甚麼其他的方法 把py檔引入 來產生包入py檔的exe呢?
3.
這麼做安全嗎?
感謝
作者: LiloHuang (十年一刻)   2015-02-14 13:21:00
假設使用 VC 編譯器,編譯器並不知道 .py 不會一起編譯以寫程式的角度來看,第一步得先把 .py 檔編譯成 .pyc透過 VC 的資源檔把 .pyc 的檔案一起編譯到 .exe 檔案第二步,使用 FindResource LoadResource LockResource取出 .pyc 的指標,以及 SizeofResource 取出資源大小再用 co = PyMarshal_ReadObjectFromString(p+8, s-8)PyImport_ExecCodeModule("<自定義>", co) 來取代原先你使用的 PyImport_ImportModule("<自定義>")但是以上的方式相當的繁瑣,簡單一點就是用 Bundler花錢買好一點的 Bundler,可以不用寫程式把檔案做打包如果 .py 檔案有一個以上,自己實作打包會更加的複雜以上,提供參考。如果是把 .py 編譯成 .pyc 會有一定程度的保護...但是不能完全防止逆向工程就是...
作者: opengood5566 ( )   2015-02-14 19:11:00
感謝^^
作者: LiloHuang (十年一刻)   2015-02-14 19:25:00
請看最新的回文,裡面有比較完整的範例...

Links booklink

Contact Us: admin [ a t ] ucptt.com