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

Rust 编译 Wasm 文本格式的问题

  •  
  •   horou · 2022-11-21 22:39:24 +08:00 · 2390 次点击
    这是一个创建于 764 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 Rust 编译到WebAssembly后,看了一下WebAssembly的文本格式

    发现里面能看到我定义的全局变量的值和函数名称,还有使用的库和库的路径。

    想问一下各位大佬有没有什么办法能够去掉这些,或者让其不明文显示。

    screenshot

    16 条回复    2023-01-16 15:56:20 +08:00
    0o0O0o0O0o
        1
    0o0O0o0O0o  
       2022-11-21 22:43:29 +08:00 via iPhone
    strip
    horou
        2
    horou  
    OP
       2022-11-21 22:53:59 +08:00
    @0o0O0o0O0o 试过了,没用呃
    DianQK
        3
    DianQK  
       2022-11-21 22:56:34 +08:00 via Android
    看起来是 panic 之类会记录当前的一些信息,不知道转成 abort 有没有帮助?
    GeruzoniAnsasu
        4
    GeruzoniAnsasu  
       2022-11-21 23:45:25 +08:00
    rust 我不懂

    但 c/c++上,想要去掉一切可能暴露本地环境的字符串的方法是,覆盖掉 __file__ __func__ 之类的宏
    araaaa
        5
    araaaa  
       2022-11-22 08:01:58 +08:00 via iPhone
    开启 lto 试试
    GuuJiang
        6
    GuuJiang  
       2022-11-22 08:46:06 +08:00
    --remap-path-prefix
    horou
        7
    horou  
    OP
       2022-11-22 09:38:35 +08:00
    @DianQK 感觉有点像这个问题,但是我加了 panic = "abort" 还是没效果
    horou
        8
    horou  
    OP
       2022-11-22 09:38:52 +08:00
    @araaaa 开启了,没得效果
    horou
        9
    horou  
    OP
       2022-11-22 09:39:47 +08:00
    @GuuJiang 我是用的 wasm-pack 编译的,这个参数该怎么加上去呀,我用 RUSTFLAGS="--remap-path-prefix=" 这种方式加上,没得效果
    lisxour
        10
    lisxour  
       2022-11-22 17:40:20 +08:00   ❤️ 1
    @horou RUSTFLAGS="--remap-path-prefix=C:\Users\XXX\.cargo=CARGO_HOME"
    注意只能替换一部分,没法完全去除
    horou
        11
    horou  
    OP
       2022-11-22 18:10:57 +08:00
    @lisxour 谢谢,这种方式可以把用户名的路径隐藏掉, 字符串常量我也用编译混淆的工具解决了,目前就只有这些使用的库的路径还有自己定义的模块名和函数名称还是没办法去掉。
    lisxour
        12
    lisxour  
       2022-11-23 08:58:23 +08:00
    @horou 这个问题 Rust 社区已经反馈很久了,目前来说,后面的部分是无法隐藏的,且没有工具能去除。
    horou
        13
    horou  
    OP
       2022-11-23 09:27:04 +08:00
    @lisxour 可执行的二进制文件倒是可以用 upx 压缩解决,但是不适用 wasm 。
    whoami9894
        14
    whoami9894  
       2022-11-23 16:33:06 +08:00
    cargo -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort build
    horou
        15
    horou  
    OP
       2022-11-23 22:38:22 +08:00
    @whoami9894 感谢,虽然还是没有效果,但是这个 FLAGS 让我编译出来的 wasm 文件大小减少了很多,哈哈
    ginjedoad
        16
    ginjedoad  
       2023-01-16 15:56:20 +08:00
    试试 obfstr
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:34 · PVG 00:34 · LAX 08:34 · JFK 11:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.