怎么防止 windows 客户端 被破解 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
bomjack
V2EX    程序员

怎么防止 windows 客户端 被破解

  •  1
     
  •   bomjack 2024-05-10 11:41:30 +08:00 5968 次点击
    这是一个创建于 520 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研发一款 windows 桌面客户端, 但是对于好无经验的我, 不知道如何防止客户端被破解,暴露重要信息,比如秘钥,加密方式... 所以希望有经验的大佬路过,可以支支招,谢谢啦!

    第 1 条附言    2024-05-10 14:43:14 +08:00
    在这里都谢谢各位大佬的积极回复,有什么想法都可以分享出来,谢谢!
    49 条回复    2024-05-11 18:33:55 +08:00
    wang93wei
        1
    wang93wei  
       2024-05-10 11:49:32 +08:00
    Denuvo 反篡改(Anti-Tamper)技术
    Panameragt
        2
    Panameragt  
       2024-05-10 11:49:34 +08:00
    功能全都做到服务端上
    bomjack
        3
    bomjack  
    OP
       2024-05-10 11:53:43 +08:00
    @Panameragt 是的,客户端会上报一些重要信息到服务端,现在就是担心的点,就是破解了客户端,上报了一些虚假信息, 愁死了
    bomjack
        4
    bomjack  
    OP
       2024-05-10 11:54:00 +08:00
    @wang93wei 谢谢大佬,我研究一下
    zed1018
        5
    zed1018  
       2024-05-10 11:58:30 +08:00
    @bomjack #3 这是没有办法的,你只能尽量去识别。世界上没有万无一失的系统。
    UIXX
        6
    UIXX  
       2024-05-10 12:02:54 +08:00
    具体业务具体分析
    wang93wei
        7
    wang93wei  
       2024-05-10 12:04:37 +08:00
    @bomjack #4 还有一个 enigmaprotector ,这个加密被用在怪物猎人上
    https://enigmaprotector.com/cn
    z4zr
        8
    z4zr  
       2024-05-10 12:05:30 +08:00
    回想起很久很久以前的方式 加壳 加花 不知道现在还有什么新的玩法
    Tyrant1984
        9
    Tyrant1984  
       2024-05-10 12:21:49 +08:00   1
    #1 楼的 D 加密过分了吧/狗头
    这个我记得收费还挺贵的啊~~~
    bomjack
        10
    bomjack  
    OP
       2024-05-10 12:26:59 +08:00
    @Tyrant1984 哈哈,确实很贵,看值不值得花这个钱了
    fano
        11
    fano  
       2024-05-10 12:27:03 +08:00
    付费方案 Safenet Sentinel
    asm
        12
    asm  
       2024-05-10 12:28:23 +08:00
    别想那么多了,本地客户端就是核心算法 vmp 了,想弄的也能弄。
    NanFengxuan
        13
    NanFengxuan  
       2024-05-10 12:45:37 +08:00
    技术方案没有绝对安全的,直接律师函警告
    e3c78a97e0f8
        14
    e3c78a97e0f8  
       2024-05-10 12:46:26 08:00
    @bomjack 具体什么信息?
    jones2000
        15
    jones2000  
       2024-05-10 13:21:10 +08:00
    对客户端上报的数据,进行校验, 找个 AI , 做下用户行为数据分析下,后续不符合这个用户的数据,AI 都会报警。就跟金融 AI 风控差不多的东西, 花钱买一套。
    kokutou
        16
    kokutou  
       2024-05-10 13:34:22 +08:00 via Android
    d 加密。。。杀鸡用牛刀啊
    Glkcv
        17
    Glkcv  
       2024-05-10 13:40:19 +08:00
    给用户开远程桌面,只能远程着用
    wkla
        18
    wkla  
       2024-05-10 13:44:07 +08:00
    客户端只能说提高破解成本,不存在防止破解
    tangchi695
        19
    tangchi695  
       2024-05-10 13:44:52 +08:00
    VMP
    dearmymy
        20
    dearmymy  
       2024-05-10 14:13:26 +08:00
    买个 vmp ,关键代码加上 vmp ,还有人破解说明你们公司产品很不错了
    ThirdFlame
        21
    ThirdFlame  
       2024-05-10 14:16:12 +08:00
    当破解成本高于购买正版的成本(或者上报数据造假获得的收益) 那就没有破解的必要了

    所以对抗手段够用就行了,没有必要追求完全不被破解
    MIUIOS
        22
    MIUIOS  
       2024-05-10 14:20:17 +08:00
    攻防没有绝对,只能提高破解的成本+延迟破解时间
    lakehylia
        23
    lakehylia  
       2024-05-10 14:29:11 +08:00
    纯软件的肯定不行,除非你搞个物理硬件,所有加密的由硬件搞定。并且任何拆硬件的行为直接报废。
    SenLief
        24
    SenLief  
       2024-05-10 14:34:07 +08:00
    攻防是相对的,你无法从攻防上想办法,更多的是考虑法律。
    mumbler
        25
    mumbler  
       2024-05-10 14:34:24 +08:00
    你软件有啥了不得的,值得人家破吗
    bomjack
        26
    bomjack  
    OP
       2024-05-10 14:38:20 +08:00
    @mumbler 哈哈,没有啥了不得,只是想产品做的好一点
    xdeng
        27
    xdeng  
       2024-05-10 14:41:20 +08:00
    阿祖,收手吧,外面全是 debugger !
    R4rvZ6agNVWr56V0
        28
    R4rvZ6agNVWr56V0  
       2024-05-10 14:46:08 +08:00
    防止 Windows 客户端被破解主要涉及到两个方面:
    技术手段和法律手段:

    1.技术手段包括加密、服务端执行、本地代码化和代码混淆等。加密是指在发布应用中提供加密后的代码,运行时动态解密;服务端执行意味着将代码进行物理隔离,可以是网络服务器,也可以是独立硬件;本地代码化是针对高级编程语言程序,将代码本地化形式发布来提升反编译难度;代码混淆是最常用的手段,包括布局混淆、数据混淆、控制混淆、阻止性混淆等。

    2.法律手段则是通过版权法保护你的产品和商标。

    然而,完全防止客户端被破解是非常困难的,因为只要代码被分发到用户设备上,就存在被破解的风险。道高一尺魔高一丈。
    Vercetti
        29
    Vercetti  
       2024-05-10 14:57:36 +08:00
    VMP 或 TMD 加壳,核心代码+VM ,非核心代码+混淆,入口 VM
    还是如楼上所说,加壳是增加破解时间成本,当破解成本>破解收益时就不会闲的破解去了,勒索软件就是这个道理,RSA 算法、源码都是公开的,以普通 PC 来说可能得十几二十年才能算出解密 Key
    yidinghe
        30
    yidinghe  
       2024-05-10 15:00:03 +08:00
    @mumbler 你小看了搞破解的这一群人的主动性。
    saranz
        31
    saranz  
       2024-05-10 15:14:09 +08:00
    @mumbler 人家付费软件,防破解合情合理。
    xieren58
        32
    xieren58  
       2024-05-10 15:19:31 +08:00
    rust 写 dll , 核心东西, 服务器检验...
    YuushaTao
        33
    YuushaTao  
       2024-05-10 15:25:57 +08:00
    vmprotect
    UXha45veSNpWCwZR
        34
    UXha45veSNpWCwZR  
       2024-05-10 15:32:45 +08:00
    借楼问问,
    使用 c#和 sqlite 开发的单机 exe 软件,要怎么防止别人看到源代码呢?还有防止看到 sqlite 里面的数据?
    nxforce
        35
    nxforce  
       2024-05-10 15:49:01 +08:00
    貌似 flutter 目前好像防逆向能力强一些?
    991547436
        36
    991547436  
       2024-05-10 16:23:04 +08:00
    x64dbg:我看不行
    slowgen
        37
    slowgen  
       2024-05-10 17:04:49 +08:00
    大概是 2008 年那会,对于 VMP 和 TMD 这种搞不定的壳,等程序完全加载到内存之后动态调试 + 内存补丁就通杀了,也不算难
    duanxianze
        38
    duanxianze  
       2024-05-10 18:04:34 +08:00
    绝对的防破解目前还没有,那么多 3a 大作也没看到哪个没破解成功
    JensenQian
        39
    JensenQian  
       2024-05-10 19:49:29 +08:00
    全程联网吗
    macaodoll
        40
    macaodoll  
       2024-05-10 19:55:25 +08:00 via Android   1
    大厂做了那么多年的反外挂,不还是一样有吗?只是你这个东西值不值得那些大佬们动手而已。
    bigtear
        41
    bigtear  
       2024-05-10 20:24:12 +08:00
    用处不大吧,最简单的还是业务上云 + 套个 VMP 壳防一下脚本小子。

    或者用场外法律手段,像字节的剪映桌面端都是本地运算,VIP 功能很多大佬破的很快,但是怕律师函都很低调地不往外发。
    jeesk
        42
    jeesk  
       2024-05-10 22:46:23 +08:00
    看成本呀, 比如 windows 激活 10 块钱就搞定了, 你确定你要花钱去搞个破解?
    seedhk
        43
    seedhk  
       2024-05-11 08:21:39 +08:00
    vmp
    核心代码放在服务器上,只有输入正确的"激活码" 才能拿到核心代码

    但是这样也有个缺点,如果破解者正常激活过一次,就能拿到核心代码了
    InkStone
        44
    InkStone  
       2024-05-11 09:35:29 +08:00
    @shuimugan VMP 现在还是很常用的,破解起来没你说的那么简单。裸 native 代码一两个礼拜摸完的库,上强度合格的 VMP ,即使是熟练工也得摸个大半年。
    brando     45
    brando  
       2024-05-11 11:14:39 +08:00   1
    不如把精力更好的花在产品质量上,让客户购买。当然被破解了说明这款东西值得去用。
    SublimeW
        46
    SublimeW  
       2024-05-11 13:07:17 +08:00
    逆向世界无加密,相对安全的有:使用非对称加密,私钥放在服务器,两个通信时,使用非对称传输对称密钥,每次发起的新连接,都随机生成对称加密密钥。
    NewYear
        47
    NewYear  
       2024-05-11 17:20:20 +08:00
    把客户端的功能做到服务器上,通过服务器来运算。

    提交过来的数据自然要标记来源,什么是来源,就是用户 ID ,序列号之类的。

    然后你再通过用户 ID ,序列号判断是否合规。。。。针对异常的做封锁,通知客户换授权就行了,如果频频出问题,限制频率或者停止产品服务。
    edisonwong
        48
    edisonwong  
       2024-05-11 17:24:17 +08:00
    我第一次听到 Denuvo 的时候,还是 FIFA 16 ?足球游戏的时候,当时似乎要全程联网。不过似乎也有破解方案了
    pckillers
        49
    pckillers  
       2024-05-11 18:33:55 +08:00
    做成订阅制,不登录不能使用软件,用户配置存服务器,定期服务器心跳校验授权,软件留强制网络升级后门,软件写死一个版本只能在 202X 年 X 月 X 日以前运行,且这个时间还是从 NTP 服务器取而不是取本地时间。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2194 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:08 PVG 00:08 LAX 09:08 JFK 12:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86