使用 Google Native Client,可以保护源代码,使其与 JavaScript 不同,在客户端中不可见吗?
如果是这样,怎么做?谢谢!
顾名思义,Google Native Client 使用本机代码。这意味着,您的代码已被编译,就像桌面上的普通可执行二进制文件一样。可以反汇编,但无法恢复源代码。
Native Client 对实现可靠反汇编的结构要求使其能够执行静态分析,这可能会使一些代码混淆技术无法使用。这些通常是恶意软件用来使恶意软件分析变得困难的相同技术,即,如果通过不同的偏移量解码,则对指令流有两种有效的解释。然而,Native Client 确实允许某种形式的自修改代码,因为它支持 JIT。例如,Mono 使用即时代码生成,并且可以使用相同的接口来创建混淆代码,只要 JIT 代码继续符合 NaCl 安全要求。
使用 JIT 接口当然会使您的代码无法移植到其他 CPU 架构。
本机客户端意味着您在客户端上运行本机代码。在大多数情况下,您将在客户端上运行 i386 或 amd64 机器语言。如果您使用的是编译语言,那么您的用户无法直接恢复它。用户可以反汇编您的软件以恢复有关您的代码的一些信息,但他们无法恢复原始源代码(除非它是汇编语言)。从反汇编的二进制文件中重写一个软件很困难,但只要有足够的时间,通常可以完成。这实际上取决于您对使用您的代码的人的偏执程度。