• 请不要在回答技术问题时复制粘贴 AI 生成的内容
okwork
V2EX  ›  程序员

有一个想法,解决动态语言源代码被抄袭的方式,大家看看可不可行

  •  
  •   okwork · Jul 29, 2018 · 6594 views
    This topic created in 3020 days ago, the information mentioned may be changed or developed.
    大致思路是这样的:给别人部署的时候,其实只时给对方一个启动脚本,在服务器启动的时候,通过一次性密钥(启动脚本中)从指定服务器上下载源代码,然后运行之后,脚本命令就把源代码文件目录删除。

    好处:源代码不用存放在对方服务器上
    坏处:服务器断电重启,服务就完蛋不能用了。你必须给对方再分发一个新的一次性密钥,再下载一次。
    42 replies  •  2018-07-31 10:06:37 +08:00
    ysc3839
    ysc3839
    Jul 29, 2018 via Android
    1
    可以禁止删除文件。
    t6attack
    t6attack
    Jul 29, 2018
    2
    这不又是 防君子不防小人么。
    niubee1
    niubee1
    Jul 29, 2018
    3
    很早前这么干过, 但是如果是单机部署没有热备的话, 会出事故的, 所以后面还是放弃了这个方案
    xy90321
    xy90321
    Jul 29, 2018
    4
    只要到过对方服务器,那主动权就根本不在你手上了
    对方在自己服务器上部署个监视目录自动拷贝留档备份什么的那都不是个事儿
    除非你把业务逻辑都做成 rpc 根本不经过对方服务器(可是那样又是性能噩梦)
    jowuIM
    jowuIM
    Jul 29, 2018
    5
    。。。都下下来了,你害怕他拿不到?
    okwork
    okwork
    OP
    Jul 29, 2018
    6
    @ysc3839 这个问题可以在部署的时候验证的。可以在脚本程序中先行验证,如果被禁止了删除文件的功能,就不进行源代码下载和安装的工作。

    @niubee1 那后面你是用什么方案怎么解决的?
    standin000
    standin000
    Jul 29, 2018
    7
    混淆代码工具
    murmur
    murmur
    Jul 29, 2018
    8
    dump 内存了解下
    inframe
    inframe
    Jul 29, 2018 via Android
    9
    真的有必要就做成服务提供,不要下发代码了
    tomfs
    tomfs
    Jul 29, 2018
    10
    增加自己的工作量,感觉没其他效果.
    真的有必要的话,就直接做 api 接口提供吧.
    LukeChien
    LukeChien
    Jul 29, 2018 via Android
    11
    做游戏 SF 才这么做
    sujin190
    sujin190
    Jul 29, 2018 via Android
    12
    没用吧,内存中照样弄得出来,再说你都需要下载启动后才删除,那弄出来更是轻而易举了
    innoink
    innoink
    Jul 29, 2018 via Android
    13
    10 年前这种做法就已经过时
    aver4vex
    aver4vex
    Jul 29, 2018
    14
    管你是什么语言,没有不能破解的,只是难度大小的区别。所以还是别瞎折腾了。
    lenqu
    lenqu
    Jul 29, 2018❤️1
    15
    防 copy ?
    我只相信二进制,所以 python -> exe ?
    linux 上就不要搞什么闭源了吧 ,大家都闭源,还发展个屁。。。。。
    miao1007
    miao1007
    Jul 29, 2018 via Android
    16
    还是类似于 aot 的方式构建为二进制更好
    bomb77
    bomb77
    Jul 29, 2018
    17
    真的这么在意代码被 copy,要么服务化,要么用静态语言重写个
    xuboying
    xuboying
    Jul 29, 2018
    18
    kill -6 <processID>
    ysc3839
    ysc3839
    Jul 29, 2018 via Android
    19
    @okwork 把删除操作改成移动文件到别的地方。这样子你检测不出来,实际文件也没被删掉。
    suntoryliqu
    suntoryliqu
    Jul 29, 2018
    20
    哈哈不可行,所有在客户端上执行的代码,都有被反编译的可能,只是看 cracker 耐心与否……
    Mac
    Mac
    Jul 30, 2018 via Android
    21
    有这个带宽和服务器资源,还不如搞成 API,本地就只能解析数据。后台全控在你手。
    msg7086
    msg7086
    Jul 30, 2018
    22
    不说别的高深的做法,我底层写个监控程序启动时自动对文件系统做快照的脚本就行了。
    0TSH60F7J2rVkg8t
    0TSH60F7J2rVkg8t
    Jul 30, 2018 via iPhone❤️1
    23
    楼主没想过下载劫持?直接 dns 到本地服务器中转一下,中转过程中缓存记录一下。大概也就第一次要访问你的服务器,后面就直接本地读取外加拿到源代码了。上 https 也不是个事,都本地部署了,给个自签证书系统信任分分钟的事情。
    waruqi
    waruqi
    Jul 30, 2018 via Android
    24
    内存 dump 下不就好了
    momo1999
    momo1999
    Jul 30, 2018
    25
    你不会用矛,你的盾也设计不好
    fyyz
    fyyz
    Jul 30, 2018 via Android
    26
    反编译你的启动脚本看汇编不就好了?
    fyyz
    fyyz
    Jul 30, 2018 via Android
    27
    启动程序
    znood
    znood
    Jul 30, 2018 via iPhone
    28
    你自己写个静态程序,动态代码解压出来执行
    reus
    reus
    Jul 30, 2018
    29
    没用的,防君子不防小人的东西
    sarices
    sarices
    Jul 30, 2018
    30
    还不如你直接在服务器计算,这样盗版也没用,非允许 ip 不允许请求
    cyspy
    cyspy
    Jul 30, 2018 via Android
    31
    记得有个 Python 模块可以直接在进程里开 repl
    zhzer
    zhzer
    Jul 30, 2018
    32
    没用,连混淆都防不住"有心人",更何况这个呢
    yufpga
    yufpga
    Jul 30, 2018
    33
    那你还不如弄一个 docker 镜像给它部署呢
    dorothyREN
    dorothyREN
    Jul 30, 2018
    34
    linux 下的 alias 命令了解一下,alias rm='mv !:1 /tmp'
    xxxy
    xxxy
    Jul 30, 2018
    35
    在 dump 内存面前一切都无所遁形
    2pang
    2pang
    Jul 30, 2018
    36
    修改虚拟机中的操作码和指令,然后发布的时候发布修改后的虚拟机以及编译出来的字节码
    liudaqi
    liudaqi
    Jul 30, 2018
    37
    @yufpga docker 镜像不能被反编译吗?
    ShareDuck
    ShareDuck
    Jul 30, 2018 via Android
    38
    @liudaqi 能!
    yufpga
    yufpga
    Jul 30, 2018
    39
    @liudaqi 能够搞出来 Dockfile. 这个得看你的镜像怎么做了,docker 设计的初衷也不是这个,只是没那么容易被别人看到源码。基于楼主这个场景,我觉得 docker 是一种性价比比较高的交付方式。正如你们所说,只要想办法,总有人能够
    反编译你的代码,但是他们这么做的目的是什么,真有这个必要么?不见得吧
    fulvaz
    fulvaz
    Jul 30, 2018
    40
    ...........你干脆弄成云服务算了.
    whnzy
    whnzy
    Jul 30, 2018
    41
    像 python,报错的时候会读源文件的
    PythonAnswer
    PythonAnswer
    Jul 31, 2018
    42
    关键算法部分搞成 api 啊。其他调用操作什么的,抄就抄了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1450 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 22:42 · PVG 06:42 · LAX 14:42 · JFK 17:42
    ♥ Do have faith in what you're doing.