反编译Objective-C库

我刚刚完成了Objective-C中的一个库,我编译为静态库进行分发。

我想知道有什么机会得到这个反编译的。

  • 你知道任何可以做到这一点的软件吗?
  • 如果是这样,我怎么能保护我更好?

编辑:我的静态库是为iPhone / ARM制作的

我创build了一个algorithm,这取决于应用程序的一些参数,它可以运行演示或完整的代码。 您用Xvariables初始化对象并解锁完整版本。 我想知道他们是否能够看到这个algorithm,所以他们可以创build一个密钥生成器。

目前还不清楚你想要保护自己。 是的,它可以被反向devise。 最简单的工具是otool ,它是标准开发人员发行版的一部分:

 otool -tV <library> 

从那里他们运行到像IDA专业版 ,它有iPhone的支持,这是非常好的工作。 在这之间,我真的很惊讶,我还没有看到iPhone / ARM otx返工。 看到一个最终出现,我不会感到惊讶。 当然还有gdb,如果你试图弄清楚事情是如何stream动的,以及数据在不同的地方。

如果你有更多关于你想要保护自己的细节,可能会有一些有针对性的答案。 除此之外,请阅读Chuck的评论。

如果它执行,它可以被反编译。 由于其dynamic特性,Objective-C特别容易反编译为可读代码。 如果你想让事情变得更加困难一些,你可以用纯C编写大部分代码,然后去除可执行文件 – 这当然会让你的应用程序devise难以pipe理。 但对自己诚实:如果有人想破解你的代码,你将无法阻止他们。 cookies实际上有无限的时间和热情,实际上会因为你阻止他们的任何新的努力而感到兴奋。 还没有人制造出不可破解的软件,世界上最大的公司都试过了。 你不会比他们做的更好,特别是如果你需要在堆栈溢出问题。

花些时间阻止反编译,并使用它来使产品更好 – 这将有更好的投资回报率。

ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary

那么如果你真的想知道我会尝试反编译你的自我。 你不会说如果这是PPC,英特尔,或ARM这是有所作为。 这里是英特尔i386反编译器的反编译器

我不知道你可以做什么(我不认为有太多)来限制这一点。 代码总是可以被反向devise的。 很高兴你不使用java或.net。 他们的反编译非常好。