反编译 Objective-C 库
我刚刚完成了 Objective-C 中的一个库,我将其编译为静态库以供分发。
我想知道有什么机会可以反编译这个文件。
- 你知道有什么软件可以做到这一点吗?
- 如果是的话,我该如何更好地保护自己呢?
编辑:我的静态库是为iPhone / ARM制作的,
我创建了一个算法,根据应用程序的一些参数,它可以作为演示或完整代码运行。您使用 X 变量初始化对象并解锁完整版本。我想知道他们是否能够看到这个算法,以便他们可以创建一个密钥生成器。
I've just finished a library in Objective-C that I compiled as a Static Library for distribution.
I'd wanted to know what chances to get this decompiled are out there.
- Do you know any software that can do this?
- If so, how could I protect me better?
EDIT: My static lib is made for iPhone / ARM
I created an algorithm that depending on the some parameters of the app, it can run as demo or as full code. You init the object with X variables and unlock the full version. I was wondering if they'll be able to see this algorithm so they can create a key generator.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果执行了就可以反编译了。由于其动态特性,Objective-C 特别容易反编译为可读代码。如果您想让事情变得更难一点,您可以用纯 C 语言编写大部分代码并剥离可执行文件 - 当然,这会导致您的应用程序设计更难以管理。但要对自己诚实:如果有人想破解你的代码,你将无法阻止他们。破解者实际上拥有无限量的时间和热情,并且实际上会对你为阻止他们而付出的任何新奇努力感到兴奋。目前还没有人制造出无法破解的软件,世界上最大的公司都已经尝试过。你不会比他们做得更好,尤其是当你需要在 Stack Overflow 上询问时。
花一些时间来阻止反编译,并用它来改进你的产品——这将带来更好的投资回报率。
If it executes, it can be decompiled. Objective-C is particularly easy to decompile into readable code thanks to its dynamic features. If you want to make things a little bit harder, you could write most of your code in plain C and strip the executable — which of course has the tradeoff of making your application design harder to manage. But be honest with yourself: If somebody wants to crack your code, you are not going to be able to stop them. Crackers have practically unlimited amounts of time and enthusiasm and will actually be excited by any novel efforts you put in to stop them. Nobody has yet made uncrackable software, and the biggest corporations in the world have tried. You're not going to do better than them, especially if you need to ask about it on Stack Overflow.
Take the time that you would have put into thwarting decompilation and use it to make your product better — that will have a much better ROI.
目前尚不清楚您想要保护自己免受什么侵害。。是的,它可以进行逆向工程。最简单的工具是
otool
,它是标准开发人员发行版的一部分:从那里它们可以运行诸如 IDA Pro,它支持 iPhone,非常适合此类工作。在此期间,我真的很惊讶我没有看到 iPhone 的 otx 的重做/还没有ARM。如果最终看到一个人出现,我不会感到惊讶。当然,如果您想弄清楚事物如何流动以及各个点的数据是什么,那么可以使用 gdb。
如果您更详细地了解自己想要保护自己免受什么侵害,可能会有一些有针对性的答案。除此之外,请阅读查克的评论。
It's not clear what you are trying to protect yourself from. Yes, it can be reverse engineered. The simplest tool is
otool
, part of the standard developer distribution:From that they run up to things like IDA Pro, which has iPhone support and is very nice for this kind of work. In between, I'm really surprised that I haven't seen a rework of otx for iPhone/ARM yet. I wouldn't be surprised to see one show up eventually. And of course there's gdb if you're trying to work out how things flow and what the data is at various points.
If you have more details about what you're trying to protect yourself from, there may be some targeted answers. Beyond that, read Chuck's comments.
ChanceGetsDecompiled=ExpectedGainFromBeingDecompiled/PopularityOfLibrary
好吧,如果你真的想知道我会尝试自己反编译它。你没有说这是针对 PPC、Intel 还是 ARM,这有什么不同。这是Intel的反编译器
i386 反编译器
我不知道你能做什么(我认为没有太多)来限制这一点。代码总是可以被逆向工程。庆幸的是您没有使用 java 或 .net。他们的反编译真是太好了。
ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary
Well if you REALLY want to know I would try decompiling it your self. You don't say if this is for PPC, Intel, or ARM which makes a difference. Here is a decompiler for Intel
i386 Decompiler
I don't know what you could do (I don't think there is much) to limit this. Code can always be reverse engineered. Be happy that your not using java or .net. Their decompilation is so nice.