이것이 반환 함수가 포함 된 코드의 끝입니다.어셈블러 ARM 부울 메서드가 항상 TRUE를 반환하도록합니다.
MOVW R1, #0x7368
ADD R0, PC ;
MOVT.W R1, #0xF
ADD R1, PC ;
LDR R0, [R0] ;
LDR R1, [R1] ;
LDR R0, [R4,R0]
BLX _objc_msgSend
MOVW R1, #0x7DC4
MOV R2, R8
MOVT.W R1, #0xF
MOV R3, R6
ADD R1, PC ;
LDR R1, [R1] ; "
BLX _objc_msgSend
LDR.W R8, [SP+0x10+var_10],#4
POP {R4-R7,PC}
누군가가 할 어떻게 내가 항상 TRUE를 반환 할 수있는 POP 생각 리턴 명령을 강제로 나를 설명 할 것을 언급 할 수!
내가 게시하는 코드 일부는 ... 어떤 연산을 수행하고 TRUE 또는 FALSE를 반환하는 부울 함수입니다.
감사
iOS 용으로 컴파일 된 Objective C 코드 조각처럼 보입니다. 소스 코드를 수정하지 않는 이유는 무엇입니까? –
네 그렇습니다! 함수가 내 것이고 내 프로젝트 중 하나이기 때문에 내가 원하는 것을 할 수 있습니다 ... 질문은 호기심을위한 것입니다 ... 이미 그 메서드를 가로 채고 반환 값을 바꿀 수있는 비틀기를 만듭니다. 사실! 이제 실행 파일에 패치를 적용하여 동일한 작업을 수행 할 수있는 방법을 알고 싶습니다 ... 도와 주실 수 있습니까? –
Xcode 디버거에서 함수를 단계별로 실행하면 함수의 return 문으로 이동 한 다음 해당 ARM 어셈블리를 볼 수 있습니다. 또는 gdb/lldb 중에서 선호하는 방식으로이 작업을 수행 할 수 있습니다. 또한 위 질문에 함수에 대한 Objective C 소스 코드를 게시하십시오. 그러면 누군가가이 문제에 대한 추가 도움을 줄 수 있습니다. 귀하의 답변에 –