关于 Python 代码反编译问题,请老哥们支支招

331 天前
pipixiarwksb  pipixiarwksb

接了个私单,对方老板要求测试下服务,我这边需要把源码发过去才能测试,如何防止反编译呢?

2172 次点击
所在节点   Python  Python
18 条回复
Inn0Vat10n
Inn0Vat10n
331 天前
pyarmor
elioti
elioti
331 天前
你去服务器跑起来,然后删代码
gerorim
gerorim
331 天前
转译 pyd ,Linux 和 Windows 都支持
kuanat
kuanat
331 天前
能做成网络请求的方式是最好的,即使是内网也可以临时用穿透方式来测试。

如果因为实时性或者与其他模块集成没办法,那就编译成 pyd/so ,如果是 so 的话记得移除符号表,pyd 应该是默认移除的。

做一点简单的限时逻辑,不要有明显的特征,尽量以 silent crash 的形式来处理。这样一般防老板是够用了。有应对措施的大概率就能自己做了。
macaodoll
macaodoll
330 天前
服务器跑起来给个接口测试呢?或者开个远控让他测试,没给钱不给代码。
vicalloy
vicalloy
330 天前
用 Nuitka 编译成二进制。
Nuitka 现在已经比较成熟了,用下来没有发现什么问题。
ktyang
ktyang
330 天前
问题不是光反编译吧。。。他拿着二进制文件只要能用就不会给钱。。。血泪教训。。。还得限制使用才行
xhatt510
xhatt510
330 天前
做成服务化最好吧。4 楼老哥说的很全了。
xhatt510
xhatt510
330 天前
其他方法,增加了你很多无意义的工作量
jstony
jstony
330 天前
nuitka 编译,加上时间服务器验证,无法验证或者过期直接 exit 0.
pipixiarwksb
pipixiarwksb
330 天前
感谢各位老哥回帖
@Inn0Vat10n 后面试下 貌似找了一圈 网上就这个比较好点
@elioti 服务器还要买,都是本地跑的
@gerorim 这个网上说不行,很简单就被破译了
@kuanat 编译成 so 可以试下
@macaodoll 没买服务器
@vicalloy 结合一楼的一块试试
@ktyang 就是这样啊,看网上有类似套路
@jstony 可以
@xhatt510 可以
iorilu
iorilu
330 天前
远程演示

实在不行, 上门演示阿

如果老板都不愿意, 那乘早走人就是, 不用浪费时间
noahlias
noahlias
330 天前
黑盒不是很危险吗(老板要是想 code review 咋办)
python 做这种分发的话 我觉得不应该封装一些核心 你认为有价值的逻辑吗 用 c/c++ /rust 等 bind
pipixiarwksb
pipixiarwksb
330 天前
@iorilu 不在一个地方啊
@noahlias 有核心逻辑
pipixiarwksb
pipixiarwksb
330 天前
@noahlias 也是一哥思路,我这边也会 go 可以把核心代码封装成 go,问题是 go 会被反编译吗?
iorilu
iorilu
330 天前
@pipixiarwksb 这种事没底的

你这假设就几千块的事, 就别折腾了

假如是几万的活, 一般都是有合同按完成度给钱, 包括怎么演示

正常远程演示都是可以接受的, 如果对方不接受演示, 直接让你交付再给钱, 显然也不合理

另外, 这活交付包不包含源代码也要说清楚的
gerorim
329 天前
@pipixiarwksb #11 pyd 就是动态链接库 so ,不是 pyc 。外加绑定机器码+限定时间。
pipixiarwksb
326 天前
@gerorim 阔以 老哥强 ,正在为这个发愁,绑定机器码+这个时间阔以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030066

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX