代码之家  ›  专栏  ›  技术社区  ›  xsveda

我们可以使用Renderscript实现代码中面向安全的部分吗?

  •  0
  • xsveda  · 技术社区  · 11 年前

    建议使用NDK在C语言中实现Android应用程序代码的敏感或面向安全的部分,因为它不能像Java代码那样容易反编译,您可以更好地控制内存分配等。

    但现在我们也有了Renderscript,代码也是用C编写的,在设备上后台编译后,它直接在CPU/GPU上运行。

    Renderscript有类似的优点吗?
    在Renderscript中实现代码的敏感部分是好主意吗? 是否可以反编译放在“raw”文件夹中的Renderscript字节码?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Kietz    11 年前

    RenderScript内核可能不难反编译,因为它们被编译为LLVM中间表示,以便与应用程序打包(作为资源)。只有在运行时,字节码才能再次编译为本机代码。LLVM-IR很容易反编译,事实上它是一个反编译器(称为 CBackend )用于与LLVM一起装运。

    此外,用于与内核交互的粘合类是Java反编译。反编译将显示签名、索引,甚至(某些)函数和变量的名称。这可能通过切换到NDK RenderScript API来阻止。

    更新: NDK Renderscript似乎将IR嵌入到生成的粘合类中 static const unsigned char __txt[] ,这可能使它 非常 很难从二进制文件中提取字节码。然而,当字节码被缓存/传递到libbcc以供执行时,它仍然可以访问。