這就是我的代碼的結尾,我包含了返回函數。彙編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}
有人可以評論它做什麼,並解釋我如何強制返回指令,我認爲這是POP總是返回TRUE!
我發佈的代碼部分是一個布爾函數,它可以進行某些操作並返回TRUE或FALSE。
感謝
這看起來像是iOS的已編譯目標C代碼塊 - 爲什麼不只是修改源代碼呢? –
是的!我可以做我想做的事,因爲這個函數是我的,它在我的一個項目中...如果我問這個問題只是爲了好奇...我已經創建了一個可以攔截該方法並替換返回值的調整與真實!現在我想了解如何通過修補可執行文件來做同樣的事情...你能幫助我嗎? –
如果您逐步完成Xcode調試器中的函數,則可以進入函數中的return語句,然後查看相應的ARM程序集。或者你可以做到這一點將gdb/lldb,無論你喜歡。還要在上面的問題中發佈函數的Objective C源代碼,也許有人可以爲此提供進一步的幫助。 –