V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bomjack
V2EX  ›  程序员

怎么防止 windows 客户端 被破解

  •  1
     
  •   bomjack · 10 天前 · 4550 次点击

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

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

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

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

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

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

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

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

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

    然后你再通过用户 ID ,序列号判断是否合规。。。。针对异常的做封锁,通知客户换授权就行了,如果频频出问题,限制频率或者停止产品服务。
    edisonwong
        48
    edisonwong  
       9 天前
    我第一次听到 Denuvo 的时候,还是 FIFA 16 ?足球游戏的时候,当时似乎要全程联网。不过似乎也有破解方案了
    pckillers
        49
    pckillers  
       9 天前
    做成订阅制,不登录不能使用软件,用户配置存服务器,定期服务器心跳校验授权,软件留强制网络升级后门,软件写死一个版本只能在 202X 年 X 月 X 日以前运行,且这个时间还是从 NTP 服务器取而不是取本地时间。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:17 · PVG 21:17 · LAX 06:17 · JFK 09:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.