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