作者opengood5566 ( )
看板Python
标题[问题] c调用py产生的exe有办法包入py档吗?
时间Sat Feb 14 00:53:36 2015
c调用python, 通常用PyImport_ImportModule来引入欲调用的py档案
可是发现产生的exe档并不会包入这个py档案, 必须把py档案和c放一起才能执行
1.
请问有办法把py档案也包入exe吗?
2.
或是 有甚麽其他的方法 把py档引入 来产生包入py档的exe呢?
3.
这麽做安全吗?
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.175.179
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1423846418.A.914.html
1F:推 LiloHuang: 假设使用 VC 编译器,编译器并不知道 .py 不会一起编译 02/14 13:21
2F:→ LiloHuang: 以写程式的角度来看,第一步得先把 .py 档编译成 .pyc 02/14 13:22
3F:→ LiloHuang: 透过 VC 的资源档把 .pyc 的档案一起编译到 .exe 档案 02/14 13:22
4F:→ LiloHuang: 第二步,使用 FindResource LoadResource LockResource 02/14 13:22
5F:→ LiloHuang: 取出 .pyc 的指标,以及 SizeofResource 取出资源大小 02/14 13:22
6F:→ LiloHuang: 再用 co = PyMarshal_ReadObjectFromString(p+8, s-8) 02/14 13:22
7F:→ LiloHuang: PyImport_ExecCodeModule("<自定义>", co) 来取代 02/14 13:23
8F:→ LiloHuang: 原先你使用的 PyImport_ImportModule("<自定义>") 02/14 13:23
9F:→ LiloHuang: 但是以上的方式相当的繁琐,简单一点就是用 Bundler 02/14 13:23
10F:→ LiloHuang: 花钱买好一点的 Bundler,可以不用写程式把档案做打包 02/14 13:23
11F:推 LiloHuang: 如果 .py 档案有一个以上,自己实作打包会更加的复杂 02/14 13:26
12F:→ LiloHuang: 以上,提供参考。 02/14 13:27
※ 编辑: opengood5566 (1.169.175.179), 02/14/2015 18:39:48
13F:推 LiloHuang: 如果是把 .py 编译成 .pyc 会有一定程度的保护... 02/14 18:48
14F:→ LiloHuang: 但是不能完全防止逆向工程就是... 02/14 18:49
15F:→ opengood5566: 感谢^^ 02/14 19:11
16F:推 LiloHuang: 请看最新的回文,里面有比较完整的范例... 02/14 19:25