The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
vus520

Golang/Rust 写的二进制程序如何做保护

  •  
  •   vus520 · 1 day ago · 1274 views
    AI 一分钟不到把 Golang + Garble 的二进制看得一清二楚的,几乎等于裸奔,各位大佬在用哪些混淆或者保护方案,包括商业,求推荐
    14 replies  •  2026-11-04 23:35:41 +08:00
    nullyouraise
    nullyouraise
    1 day ago
    1
    逻辑放在本地的加密保护已经没有任何意义了,哪怕是 VMP 在 AI 面前也只是多花点时间的问题
    x1aoYao
    x1aoYao
    17h 7m ago
    2
    我也想知道,Rust 编译二进制,要怎么混淆加壳呢,还有必要吗
    StarsunYzL
    StarsunYzL
    16h 24m ago
    3
    @nullyouraise 太扯了,现阶段被 VMP 虚拟化保护的 x86 汇编代码哪怕是默认保护强度给 AI 20x 订阅干一个月也绝对还原不出来正确的 C 代码
    nullyouraise
    nullyouraise
    15h 30m ago❤️2
    4
    @StarsunYzL 可能你用 AI 的方法不对,我测试下来,我们内部用 VMP2 Max 加密的 Unity 游戏 GameAssembly.dll 在 Astra Ultra 加上人辅助的情况下可以精准逆向出服务器通信逻辑,这已经能满足 99%的逆向需求了

    另外没有人做逆向是奔着精准还原二进制原本逻辑的目的去的,目标通常是破掉注册验证逻辑、或者找到核心算法逻辑;有了 AI 也不代表所有活都扔给 AI 做,人等着收成果就行,网上那么多逆向文章,你和 AI 一起讨论解法,效率比 AI 自己硬跑要高多了
    Atukey
    Atukey
    14h 52m ago
    5
    @nullyouraise #4 正解
    or2me
    or2me
    12h 6m ago
    6
    @StarsunYzL 为啥要还原出正确代码啊 破解出验证逻辑绕过或者破解出运行逻辑直接重写一个就行了啊
    StarsunYzL
    StarsunYzL
    11h 20m ago
    7
    @nullyouraise 或许有没有一种可能你使用 VMP 的方法不对,我说的被 VMP 虚拟化保护的代码是指用 VMP SDK(VMProtectBegin/VMProtectEnd 等)单独对某个函数或者某段代码进行虚拟化保护,而不是用 VMP 直接对 exe/dll 加壳就完事了,只是用 VMP 直接加壳对 exe/dll 里的代码逻辑几乎没有任何保护效果,稍微有逆向经验的人不借助任何 AI 都可以分析出来逻辑。

    另外我说的正确的 C 代码当然指的是还原出被 VMP 虚拟化保护的某个函数的正确逻辑,即逻辑的输入和输出和原程序一样即可,要不要还原成 C 或其他高级语言代码实现看具体的逆向需求,在逻辑都已经还原正确的情况下,精准的代码实现没有任何阻碍,只是看具体逆向需求,比如要做注册机、原程序服务器通信数据有加解密算法且需要实现自己和原服务器通信,这些肯定都需要精准还原出原程序的注册验证逻辑、通信加解密逻辑的高级代码实现,这类逆向需求很多,而不是指还原出整个 exe/dll 或者还原出和原始源代码一模一样的函数代码。

    @or2me 同上
    AV1
    AV1
    11h 11m ago
    8
    这年代难说了,就算你拦得住 AI 逆向,也拦不住 AI 复刻一个相似的替代品。
    liulihaocai
    liulihaocai
    5h 54m ago❤️1
    9
    @StarsunYzL 我用 Claude 5x 2 个周限额写了一个 VMP 3.5-3.10 自动 devirt 工具,另一个周限额给工具加上 Themida 支持,还原出 Pcode 反编译看起来没问题,不能直接出 c 代码但是可以让 AI 手动还原
    liulihaocai
    liulihaocai
    5h 53m ago
    10
    @StarsunYzL 如果不信可以丢我一个 devirt me
    nullyouraise
    nullyouraise
    4h 37m ago
    11
    @StarsunYzL #7 没用过你说的这种高级用法,但是根据我浅薄的理解,假设你的加密方式是有效的,但你的二进制绝大部分地方是明文汇编,只有少量几处使用了加密,这样和直接告诉别人“核心逻辑就在这里”有什么区别呢
    liulihaocai
    liulihaocai
    3h 39m ago via Android
    12
    @nullyouraise 首先,混淆之后还是汇编,其次不混淆更容易找到核心逻辑
    StarsunYzL
    StarsunYzL
    3h 30m ago
    13
    @nullyouraise 代码混淆、虚拟化保护防的就是即使告诉你代码在哪里你也分析不出来其中的实现逻辑呀,dll 导出函数不管怎么加壳加任何壳它的汇编代码地址都明晃晃摆在那了,就算没有导出函数,关键代码的位置大多数情况下都是很容易定位的,很难防住,要防的是代码的实现逻辑被分析出来而不是代码的位置被定位到。

    那就没必要讨论了,仅直接使用 VMP 加壳 exe/dll 约等于内部逻辑没有被保护,不用 AI 都能轻易分析出来,能用 AI 分析出来就更不奇怪了,并不等于 AI 能分析 VMP ,和使用 VMP SDK 虚拟化保护特定位置的代码逻辑不是一回事,后者只要使用得当,根据我的浅薄认知当今最强的民用 AI 也不太可能分析出来正确的逻辑,能分析也是极其困难和耗时耗成本的。
    StarsunYzL
    StarsunYzL
    3h 29m ago
    14
    @liulihaocai 好,明天整一个给你试试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1518 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.