adroid逆向中,我们可以直接拿到源码,但是为什么ios中我们只能拿到汇编代码?以前我一直觉得这是ios系统的封闭性导致,但想到clang既然是开源的,为什么在ios逆向中拿不到源码呢?这个关键点到底在哪里?
Android是小葱拌豆腐,原材料都是成品;
iOS是可口可乐,原材料都是调味料。
源代码不一定能100%还原,但口感能还原得八九不离十
可以意会到一点,但是还是有些地方不是特别清楚,可以解释的更加细节一点吗?谢谢:loveliness:
你所说的“拿到源代码”是什么意思?
如果我源代码里的函数是
int foo(int bar, int baz)
{
return baz + bar;
}
逆向出来是
int foo(int arg1, int arg2)
{
return arg1+ arg2;
}
算不算拿到源代码?
嗯 我觉得这就算是了
如果这个就叫还原的话,那一般来说是可以还原的
安卓是Dalvik虚拟机,类似java的工作原理,app被编译成字节码. 在运行时被Dalvik载入解析执行. 可以想象成脚本语言的工作模式
ios的xcode llvm编译器是直接生成机器码,所以反编译只有汇编看 不可能拿到类似安卓的源代码
所以安卓为什么3G内存都卡 IOS 1G内存却很流畅.