V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
bomjack
V2EX  ›  程序员

怎么防止 windows 客户端 被破解

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

    最近在研发一款 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 加密。。。杀鸡用牛刀啊
    Lexgni
        17
    Lexgni  
       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
    当破解成本高于购买正版的成本(或者上报数据造假获得的收益) 那就没有破解的必要了

    所以对抗手段够用就行了,没有必要追求完全不被破解
    totoro52
        22
    totoro52  
       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 里面的数据?
    joyhub2140
        35
    joyhub2140  
       2024-05-10 15:49:01 +08:00
    貌似 flutter 目前好像防逆向能力强一些?
    991547436
        36
    991547436  
       2024-05-10 16:23:04 +08:00
    x64dbg:我看不行
    shuimugan
        37
    shuimugan  
       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   ·   实用小工具   ·   2650 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:04 · PVG 18:04 · LAX 03:04 · JFK 06:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.