IDA除錯之動態註冊arm程式碼解析

。text:00000E58 EXPORT Java_com_example_javandk1_MainActivity_getText。text:00000E58 Java_com_example_javandk1_MainActivity_getText。text:00000E58 ; DATA XREF: LOAD:000001C8↑o。text:00000E58 ; __unwind {。text:00000E58 STMFD SP!, {R3-R5,LR} ; 入棧。text:00000E5C MOV R5, R1 ; 沒有被靜態修飾,所以這裡是jobj。text:00000E60 LDR R3, [R0] ; *env。text:00000E64 MOV R4, R0 ; r4=r0=env。text:00000E68 LDR R1, =(aComExampleJava - 0xE78) ; 偏移。text:00000E6C LDR R3, [R3,#JNINativeInterface。FindClass]。text:00000E70 ADD R1, PC, R1 ; “com/example/javandk1/MainActivity”。text:00000E74 BLX R3 ; JNINativeInterface。FindClass(env,main)。text:00000E78 LDR R12, [R4] ; r4=env。text:00000E7C LDR R2, =(aActivity - 0xE90)。text:00000E80 LDR R3, =(aLjavaLangStrin - 0xE94)。text:00000E84 LDR R12, [R12,#JNINativeInterface。GetFieldID]。text:00000E88 ADD R2, PC, R2 ; “Activity”。text:00000E8C ADD R3, PC, R3 ; “Ljava/lang/String;”。text:00000E90 MOV R1, R0 ; r1=r0=findclass返回值。text:00000E94 MOV R0, R4 ; r0=r4=env。text:00000E98 BLX R12 ; getfieldid(env,findclass,activit,string)。text:00000E9C LDR R3, [R4] ; r3=*env。text:00000EA0 MOV R1, R5 ; jobj。text:00000EA4 LDR R3, [R3,#JNINativeInterface。GetObjectField]。text:00000EA8 MOV R2, R0 ; r2=r0=getfieldid返回值。text:00000EAC MOV R0, R4 ; r0=r4=env。text:00000EB0 BLX R3 ; GetObjectField(env,jobj,getfieldid)。text:00000EB4 LDR R3, [R4] ; r3=*env。text:00000EB8 MOV R2, #0 ; r2=0。text:00000EBC LDR R3, [R3,#JNINativeInterface。GetStringUTFChars]。text:00000EC0 MOV R1, R0 ; r1=r0=GetObjectField返回值。text:00000EC4 MOV R0, R4 ; r0=r4=env。text:00000EC8 BLX R3 ; GetStringUTFChars(env,getobjevtfield,0)。text:00000ECC LDR R3, [R4] ; r3=*env。text:00000ED0 LDR R3, [R3,#JNINativeInterface。NewStringUTF]。text:00000ED4 MOV R1, R0 ; r1=r0=GetStringUTFChars返回值。text:00000ED8 MOV R0, R4 ; r0=r4=env。text:00000EDC BLX R3 ; NewStringUTF(env,utfchars)。text:00000EE0 LDMFD SP!, {R3-R5,PC}。text:00000EE0 ; End of function Java_com_example_javandk1_MainActivity_getText

在安卓逆向的學習中,我們會經常遇到這樣的分析,要知道各個暫存器中儲存的什麼東西,還有關鍵字的各種意思,當然,這邊關鍵字不需要死記硬背,只要多看程式碼,不知道就看下筆記,自然就會記住。

該文章屬於:猴子游戲程式設計原創

轉載請註明標題:IDA除錯之動態註冊arm程式碼解析-猴子技術宅

轉載請註明出處:

https://www。ssfiction。com/andiordadb/41028。html