iOS位码-安全问题

iOS位码-安全问题,ios,xcode,llvm,bitcode,Ios,Xcode,Llvm,Bitcode,我们正在为iOS在线发布软件模块。从那时起,苹果就开始提倡比特码,甚至强制某些设备(watchOS/tvOS)上的应用程序使用比特码——这迫使我们交付带有比特码的软件模块(静态库) 人们关心的是,反向工程和反编译(如java字节码)对任何人来说,比特码的安全程度如何,以及如何防范它?任何人都可以轻松地从网站下载库,并从中提取位码(IR)并进行反编译。这里有一些有价值的信息 比特码可能不会引起应用程序的关注,因为苹果将剥离它,但它显然会引起静态库的关注 有什么见解吗 正如链接所指出的,“罪犯可以

我们正在为iOS在线发布软件模块。从那时起,苹果就开始提倡比特码,甚至强制某些设备(watchOS/tvOS)上的应用程序使用比特码——这迫使我们交付带有比特码的软件模块(静态库)

人们关心的是,反向工程和反编译(如java字节码)对任何人来说,比特码的安全程度如何,以及如何防范它?任何人都可以轻松地从网站下载库,并从中提取位码(IR)并进行反编译。这里有一些有价值的信息

比特码可能不会引起应用程序的关注,因为苹果将剥离它,但它显然会引起静态库的关注

有什么见解吗

正如链接所指出的,“罪犯可以获得你的应用程序或库,从中检索[代码]并窃取你的'秘密算法'。”是的。完全正确

此外,如果您提供非比特码库,“犯罪分子可以获取您的应用程序或库,从中检索[代码]并窃取您的'秘密算法'。”

此外,如果您发送非位码应用程序,则“犯罪分子可以获取您的应用程序或库,从中检索[代码]并窃取您的'秘密算法'。”

在任何情况下,这都是事实。尽可能便宜的工具(我选择的工具,但也有一些更便宜的解决方案)和精心设计的工具可以将您的函数反编译成可通过的C代码

如果您使用的是Cocoa(ObjC或Swift),则可以更轻松地进行反向工程,因为动态反思Cocoa非常容易

这不是一个可以解决的问题。应用程序和库都可以尝试使用模糊处理技术,但它们复杂、脆弱,通常需要大量的费用或专业知识(通常两者都需要)。在任何情况下,你都需要在人们打破困惑时不断改进你的困惑。对于一个库来说,这是毫无意义的,因为一旦它泄漏,您几乎无法重新保护它,但您可以尝试一下

它会漏的。这是无法解决的。比特码在这方面没有太大变化。读IR可能比读ARM汇编要简单一些,但不会太多,而且如果要保护的东西很小(比如一个小算法或一个密钥),当然也不会

有一些模糊处理供应商在那里。对于堆栈溢出(因为它们会吸引垃圾邮件),产品推荐是离题的,但搜索“ios模糊处理”,您会找到它们。在这个空间里,因为它只是“狡猾的隐藏”(不是安全或加密),你通常会得到你所付出的。开源解决方案没有什么意义,因为关键是要巧妙地隐藏你是如何做到的。我曾经使用过一些开源模糊处理库,这些库可以更容易地从代码中提取机密(因为它们很容易反转,并且它们的使用会标记代码中隐藏内容的部分)

如果这对你的商业计划很重要,那么就为它做预算,预计它会引入一些具有挑战性的bug,并预计它会被破解(但可能需要更长的时间)。

正如链接所指出的“罪犯可以获取你的应用程序或库,从中检索[代码]并窃取你的“秘密算法”。”是的。完全正确

此外,如果您提供非比特码库,“犯罪分子可以获取您的应用程序或库,从中检索[代码]并窃取您的'秘密算法'。”

此外,如果您发送非位码应用程序,则“犯罪分子可以获取您的应用程序或库,从中检索[代码]并窃取您的'秘密算法'。”

在任何情况下,这都是事实。尽可能便宜的工具(我选择的工具,但也有一些更便宜的解决方案)和精心设计的工具可以将您的函数反编译成可通过的C代码

如果您使用的是Cocoa(ObjC或Swift),则可以更轻松地进行反向工程,因为动态反思Cocoa非常容易

这不是一个可以解决的问题。应用程序和库都可以尝试使用模糊处理技术,但它们复杂、脆弱,通常需要大量的费用或专业知识(通常两者都需要)。在任何情况下,你都需要在人们打破困惑时不断改进你的困惑。对于一个库来说,这是毫无意义的,因为一旦它泄漏,您几乎无法重新保护它,但您可以尝试一下

它会漏的。这是无法解决的。比特码在这方面没有太大变化。读IR可能比读ARM汇编要简单一些,但不会太多,而且如果要保护的东西很小(比如一个小算法或一个密钥),当然也不会

有一些模糊处理供应商在那里。对于堆栈溢出(因为它们会吸引垃圾邮件),产品推荐是离题的,但搜索“ios模糊处理”,您会找到它们。在这个空间里,因为它只是“狡猾的隐藏”(不是安全或加密),你通常会得到你所付出的。开源解决方案没有什么意义,因为关键是要巧妙地隐藏你是如何做到的。我曾经使用过一些开源模糊处理库,这些库可以更容易地从代码中提取机密(因为它们很容易反转,并且它们的使用会标记代码中隐藏内容的部分)


如果这对你的商业计划很重要,那么就为它制定预算,预计它会引入一些具有挑战性的错误,并预计它会被打破(但可能需要更长的时间)。

@Rob Napier,你把orange比作苹果是错误的。与读取由反编译中间代码生成的代码相比,使用IDA读取汇编代码或反汇编代码是天壤之别。比特码完全是个讨厌的东西

@Rob Napier,你把orange比作苹果是错误的。与读取由反编译中间代码生成的代码相比,使用IDA读取汇编代码或反汇编代码是天壤之别。比特码完全是一个讨厌的东西

所以你担心向其提供静态库的客户机,他们可能会对你的代码进行反向工程并窃取你的IP?所以你担心向其提供静态库的客户机