2010-08-12 7 views
0

나는이 간단한 함수의 프로토 타입을 알아낼 수 없습니다 : stack screenshot해체에서 간단한 ARM 함수 프로토 타입을 디코딩 할 수 없습니까?

함수 호출 : 스택에서

내가 지금까지 가지고 무엇

function call screenshot

, 오류가 발생합니다.

//No idea 
void CameraDeviceCreate(int one,int two,int* three); 

세 개의 인수가 있어야하므로 (R0, R1, R2) 세 개의 레지스터가 사용됩니다. 세 번째 변수는 스택 변수를 참조합니다 (아직 어떻게 작동하는지 알 수 없습니다). # 0x28 (var_28)은 ADD 통화에서만 언급되며 그 내용이 확실하지 않습니다. 어디서 실수 했습니까?

일부 정보를 놓친 경우 알려 주시면 추가하겠습니다. 이것은 카메라입니다. 프레임 워크 bye.

+0

리버스 엔지니어링을위한 정보가 너무 적습니다. 필자는 애플이 개인 인터페이스에 링크 된 앱을 거부 할 가능성이 있다고 생각한다. – Potatoswatter

+0

"오류가 발생 했음"이란 무엇을 의미합니까? 'CameraDeviceCreate()'가 호출 될 때 R4와 R5의 내용에 대한 정보가 있습니까? R4는'var_28'과 관련이 있습니까? R4는 구조체에 대한 포인터 일 수 있으며 함수에 전달되는 것은 구조체 필드 중 하나에 대한 포인터입니다. –

+0

@Potatoswatter : 결코 AppStore를 신경 쓰지 마라. @Michael Burr 아니요. gdb가 충돌하기 때문에 해당 응용 프로그램에 디버거를 연결할 수 없습니다. 게다가 기본적인 디버깅을 넘어서는 GDB 사용법을 모른다. –

답변

0

왜 잘못 생각하십니까?

세 번째 매개 변수가 'int *'라는 보장이 없다는 것을 알 수 있습니다.이 점에서 R4가 무엇인지 살펴볼 필요가 있습니다. 실제로는 구조체가 가리키는 구조가 int .

+0

함수가 호출 될 때 내 응용 프로그램이 충돌하기 때문에 그렇게 생각합니다. –

+0

적어도 포인터라고 생각했습니다. ( –

관련 문제