我用 Rust 编译到WebAssembly后,看了一下WebAssembly的文本格式
发现里面能看到我定义的全局变量的值和函数名称,还有使用的库和库的路径。
想问一下各位大佬有没有什么办法能够去掉这些,或者让其不明文显示。

我用 Rust 编译到WebAssembly后,看了一下WebAssembly的文本格式
发现里面能看到我定义的全局变量的值和函数名称,还有使用的库和库的路径。
想问一下各位大佬有没有什么办法能够去掉这些,或者让其不明文显示。

|
0o0O0o0O0oNov 21, 2022 via iPhone
1
strip
|
|
2
@0o0O0o0O0o 试过了,没用呃
|
|
dianqkNov 21, 2022 via Android
3
看起来是 panic 之类会记录当前的一些信息,不知道转成 abort 有没有帮助?
|
|
GeruzoniAnsasuNov 21, 2022
4
rust 我不懂
但 c/c++上,想要去掉一切可能暴露本地环境的字符串的方法是,覆盖掉 __file__ __func__ 之类的宏 |
|
araaaaNov 22, 2022 via iPhone
5
开启 lto 试试
|
|
GuuJiangNov 22, 2022
6
--remap-path-prefix
|
|
9
@GuuJiang 我是用的 wasm-pack 编译的,这个参数该怎么加上去呀,我用 RUSTFLAGS="--remap-path-prefix=" 这种方式加上,没得效果
|
|
10
@horou RUSTFLAGS="--remap-path-prefix=C:\Users\XXX\.cargo=CARGO_HOME"
注意只能替换一部分,没法完全去除 |
|
11
@lisxour 谢谢,这种方式可以把用户名的路径隐藏掉, 字符串常量我也用编译混淆的工具解决了,目前就只有这些使用的库的路径还有自己定义的模块名和函数名称还是没办法去掉。
|
|
whoami9894Nov 23, 2022
14
cargo -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort build
|
|
15
@whoami9894 感谢,虽然还是没有效果,但是这个 FLAGS 让我编译出来的 wasm 文件大小减少了很多,哈哈
|
|
ginjedoadJan 16, 2023
16
试试 obfstr
|