【发布时间】:2011-03-29 05:16:15
【问题描述】:
我想不出这个简单函数的原型:
在堆栈中:
函数调用:
这就是我目前得到的结果,它会导致错误。
//No idea
void CameraDeviceCreate(int one,int two,int* three);
使用了三个寄存器(R0、R1、R2),所以应该有三个参数。第三个是指堆栈变量(我仍然不明白它是如何工作的)。 #0x28 (var_28) 仅在 ADD 调用中提及,不确定它可能是什么。 我在哪里做错了?
如果我错过了一些信息,请告诉我,我会添加它。顺便说一下,这是来自 Camera.framework。
【问题讨论】:
-
这对于逆向工程来说信息太少了。我认为 Apple 可能会拒绝链接到私有界面的应用程序。
-
“它会导致错误”是什么意思?当
CameraDeviceCreate()被调用时,您是否有关于 R4 和 R5 中的内容的任何信息? R4和var_28有关系吗?看起来 R4 可能是一个指向结构的指针,而传递给函数的是一个指向该结构的字段之一的指针。 -
@Potatoswatter:别管 AppStore。 @Michael Burr 不,我没有,我无法将调试器附加到该应用程序,因为 gdb 崩溃。此外,除了基本调试之外,我不知道如何使用 GDB。
标签: iphone c objective-c reverse-engineering ida