能力值:
( LV2,RANK:10 )
8 楼
多谢回答,程序不是我写的。是分析某个apk中的so,由于本论坛有规定要隐藏相关名字只好替换一下:
以下是完整的ida pro代码:
private static native void native_get_suggestions(long arg0, String arg1, int arg2, List arg3, List
arg4, int arg5)
.text:0000B6E8 EXPORT Java_com_test_native_1get_1suggestions
.text:0000B6E8 Java_com_test_native_1get_1suggestions
.text:0000B6E8
.text:0000B6E8 var_58 = -0x58
.text:0000B6E8 var_54 = -0x54
.text:0000B6E8 var_50 = -0x50
.text:0000B6E8 var_4C = -0x4C
.text:0000B6E8 var_44 = -0x44
.text:0000B6E8 var_38 = -0x38
.text:0000B6E8 arg_0 = 0
.text:0000B6E8 arg_4 = 4
.text:0000B6E8 arg_8 = 8
.text:0000B6E8 arg_C = 0xC
.text:0000B6E8 arg_10 = 0x10
.text:0000B6E8
.text:0000B6E8 F0 B5 PUSH {R4-R7,LR}
.text:0000B6EA 5F 46 MOV R7, R11
.text:0000B6EC 56 46 MOV R6, R10
.text:0000B6EE 4D 46 MOV R5, R9
.text:0000B6F0 44 46 MOV R4, R8
.text:0000B6F2 F0 B4 PUSH {R4-R7}
.text:0000B6F4 8D B0 SUB SP, SP, #0x34
.text:0000B6F6 90 46 MOV R8, R2
.text:0000B6F8 18 9A LDR R2, [SP,#0x58+arg_8]
.text:0000B6FA 16 9E LDR R6, [SP,#0x58+arg_0]
.text:0000B6FC A9 23 MOVS R3, #0xA9
.text:0000B6FE 92 46 MOV R10, R2
.text:0000B700 02 68 LDR R2, [R0]
.text:0000B702 9B 00 LSLS R3, R3, #2
.text:0000B704 31 1C MOVS R1, R6
.text:0000B706 D3 58 LDR R3, [R2,R3]
.text:0000B708 00 22 MOVS R2, #0
.text:0000B70A 04 1C MOVS R4, R0
.text:0000B70C 98 47 BLX R3
.text:0000B70C
.text:0000B70E 05 1E SUBS R5, R0, #0
.text:0000B710 00 D1 BNE loc_B714
.text:0000B710
.text:0000B712 E8 E0 B loc_B8E6
.text:0000B712
.text:0000B714 ; ---------------------------------------------------------------------------
.text:0000B714
.text:0000B714 loc_B714 ; CODE XREF: Java_com_test_native_1get_1suggestions+28j
.text:0000B714 6B 46 MOV R3, SP
.text:0000B716 2C 33 ADDS R3, #0x2C
.text:0000B718 18 1C MOVS R0, R3
.text:0000B71A 29 1C MOVS R1, R5
.text:0000B71C 03 93 STR R3, [SP,#0x58+var_4C]
.text:0000B71E FE F7 CC EC BLX Glib::ustring::ustring(char const*)
.text:0000B71E
.text:0000B722 22 68 LDR R2, [R4]
.text:0000B724 AA 23 9B 00 MOVS R3, 0x2A8
.text:0000B728 D3 58 LDR R3, [R2,R3]
.text:0000B72A 20 1C MOVS R0, R4
.text:0000B72C 31 1C MOVS R1, R6
.text:0000B72E 2A 1C MOVS R2, R5
.text:0000B730 98 47 BLX R3
.text:0000B730
.text:0000B732 00 23 MOVS R3, #0
.text:0000B734 08 AE ADD R6, SP, #0x58+var_38
.text:0000B736 05 AF ADD R7, SP, #0x58+var_44
.text:0000B738 73 60 STR R3, [R6,#4]
.text:0000B73A B3 60 STR R3, [R6,#8]
.text:0000B73C 7B 60 STR R3, [R7,#4]
.text:0000B73E BB 60 STR R3, [R7,#8]
.text:0000B740 08 93 STR R3, [SP,#0x58+var_38]
.text:0000B742 05 93 STR R3, [SP,#0x58+var_44]
.text:0000B744 1A 9B LDR R3, [SP,#0x58+arg_10]
.text:0000B746 40 46 MOV R0, R8
.text:0000B748 03 99 LDR R1, [SP,#0x58+var_4C]
.text:0000B74A 01 93 STR R3, [SP,#0x58+var_54]
.text:0000B74C 17 9A LDR R2, [SP,#0x58+arg_4]
.text:0000B74E 33 1C MOVS R3, R6
.text:0000B750 00 97 STR R7, [SP,#0x58+var_58]
.text:0000B752 01 F0 EF F8 BL mw::SearchIndex::getSuggestions(Glib::ustring const&,uint,std::vector<Glib::ustring,std::allocator<Glib::ustring>> &,std::vector&<int,std::allocator<int>>,uint)
.text:0000B752
.text:0000B756 23 68 LDR R3, [R4]
.text:0000B758 88 49 LDR R1, =(s->JavaUtilList - 0xB762)
.text:0000B75A 20 1C MOVS R0, R4
.text:0000B75C 9B 69 LDR R3, [R3,#0x18]
.text:0000B75E 79 44 ADD R1, PC ; "java/util/List"
.text:0000B760 98 47 BLX R3
.text:0000B760
.text:0000B762 80 46 MOV R8, R0
.text:0000B764 00 28 CMP R0, #0
.text:0000B766 00 D1 BNE loc_B76A
.text:0000B766
.text:0000B768 C7 E0 B loc_B8FA
.text:0000B768
.text:0000B76A ; ---------------------------------------------------------------------------
.text:0000B76A
.text:0000B76A loc_B76A ; CODE XREF: Java_com_test_native_1get_1suggestions+7Ej
.text:0000B76A 20 68 LDR R0, [R4]
.text:0000B76C 84 4A LDR R2, =(s->Clear - 0xB778)
.text:0000B76E 85 4B LDR R3, =(s->V - 0xB77A)
.text:0000B770 84 21 MOVS R1, #0x84
.text:0000B772 45 58 LDR R5, [R0,R1]
.text:0000B774 7A 44 ADD R2, PC ; "clear"
.text:0000B776 7B 44 ADD R3, PC ; "()V"
.text:0000B778 20 1C MOVS R0, R4
.text:0000B77A 41 46 MOV R1, R8
.text:0000B77C A8 47 BLX R5
.text:0000B77C
.text:0000B77E 02 1E SUBS R2, R0, #0
.text:0000B780 00 D1 BNE loc_B784
.text:0000B780
.text:0000B782 C4 E0 B loc_B90E
.text:0000B782
.text:0000B784 ; ---------------------------------------------------------------------------
.text:0000B784
.text:0000B784 loc_B784 ; CODE XREF: Java_com_test_native_1get_1suggestions+98j
.text:0000B784 20 1C MOVS R0, R4
.text:0000B786 51 46 MOV R1, R10
.text:0000B788 FF F7 56 FD BL _JNIEnv::CallVoidMethod(_jobject *,_jmethodID *,...)
.text:0000B788
.text:0000B78C 20 68 LDR R0, [R4]
.text:0000B78E 7E 4A LDR R2, =(s->Add - 0xB79A)
.text:0000B790 7E 4B LDR R3, =(s->LjavaLangObjectZ - 0xB79C)
.text:0000B792 84 21 MOVS R1, #0x84
.text:0000B794 45 58 LDR R5, [R0,R1]
.text:0000B796 7A 44 ADD R2, PC ; "add"
.text:0000B798 7B 44 ADD R3, PC ; "(Ljava/lang/Object;)Z"
.text:0000B79A 20 1C MOVS R0, R4
.text:0000B79C 41 46 MOV R1, R8
.text:0000B79E A8 47 BLX R5
.text:0000B79E
.text:0000B7A0 81 46 MOV R9, R0
.text:0000B7A2 00 28 CMP R0, #0
.text:0000B7A4 00 D1 BNE loc_B7A8
.text:0000B7A4
.text:0000B7A6 BC E0 B loc_B922
.text:0000B7A6
.text:0000B7A8 ; ---------------------------------------------------------------------------
.text:0000B7A8
.text:0000B7A8 loc_B7A8 ; CODE XREF: Java_com_test_native_1get_1suggestions+BCj
.text:0000B7A8 A7 22 MOVS R2, #0xA7
.text:0000B7AA 93 00 LSLS R3, R2, #2
.text:0000B7AC 08 9D LDR R5, [SP,#0x58+var_38]
.text:0000B7AE 98 46 MOV R8, R3
.text:0000B7B0 11 E0 B loc_B7D6
.text:0000B7B0
.text:0000B7B2 ; ---------------------------------------------------------------------------
.text:0000B7B2
.text:0000B7B2 loc_B7B2 ; CODE XREF: Java_com_test_native_1get_1suggestions+F2j
.text:0000B7B2 28 1C MOVS R0, R5
.text:0000B7B4 FE F7 AE EE BLX Glib::ustring::c_str(void)
.text:0000B7B4
.text:0000B7B8 23 68 LDR R3, [R4]
.text:0000B7BA 42 46 MOV R2, R8
.text:0000B7BC 01 1C MOVS R1, R0
.text:0000B7BE 9B 58 LDR R3, [R3,R2]
.text:0000B7C0 20 1C MOVS R0, R4
.text:0000B7C2 98 47 BLX R3
.text:0000B7C2
.text:0000B7C4 03 1E SUBS R3, R0, #0
.text:0000B7C6 00 D1 BNE loc_B7CA
.text:0000B7C6
.text:0000B7C8 88 E0 B loc_B8DC
.text:0000B7C8
.text:0000B7CA ; ---------------------------------------------------------------------------
.text:0000B7CA
.text:0000B7CA loc_B7CA ; CODE XREF: Java_com_test_native_1get_1suggestions+DEj
.text:0000B7CA 20 1C MOVS R0, R4
.text:0000B7CC 51 46 MOV R1, R10
.text:0000B7CE 4A 46 MOV R2, R9
.text:0000B7D0 FF F7 52 FD BL _JNIEnv::CallBooleanMethod(_jobject *,_jmethodID *,...)
.text:0000B7D0
.text:0000B7D4 04 35 ADDS R5, #4
.text:0000B7D4
.text:0000B7D6
.text:0000B7D6 loc_B7D6 ; CODE XREF: Java_com_test_native_1get_1suggestions+C8j
.text:0000B7D6 73 68 LDR R3, [R6,#4]
.text:0000B7D8 AB 42 CMP R3, R5
.text:0000B7DA EA D1 BNE loc_B7B2
.text:0000B7DA
.text:0000B7DC
.text:0000B7DC loc_B7DC ; CODE XREF: Java_com_test_native_1get_1suggestions+1FCj
.text:0000B7DC ; Java_com_test_native_1get_1suggestions+21Aj
.text:0000B7DC ; Java_com_test_native_1get_1suggestions+22Ej
.text:0000B7DC ; Java_com_test_native_1get_1suggestions+242j
.text:0000B7DC 23 68 LDR R3, [R4]
.text:0000B7DE 6C 49 LDR R1, =(s->JavaUtilList - 0xB7E8)
.text:0000B7E0 20 1C MOVS R0, R4
.text:0000B7E2 9B 69 LDR R3, [R3,#0x18]
.text:0000B7E4 79 44 ADD R1, PC ; "java/util/List"
.text:0000B7E6 98 47 BLX R3
.text:0000B7E6
.text:0000B7E8 05 1E SUBS R5, R0, #0
.text:0000B7EA 00 D1 BNE loc_B7EE
.text:0000B7EA
.text:0000B7EC 80 E0 B loc_B8F0
.text:0000B7EC
.text:0000B7EE ; ---------------------------------------------------------------------------
.text:0000B7EE
.text:0000B7EE loc_B7EE ; CODE XREF: Java_com_test_native_1get_1suggestions+102j
.text:0000B7EE 20 68 LDR R0, [R4]
.text:0000B7F0 84 21 MOVS R1, #0x84
.text:0000B7F2 68 4A LDR R2, =(s->Clear - 0xB7FC)
.text:0000B7F4 41 58 LDR R1, [R0,R1]
.text:0000B7F6 68 4B LDR R3, =(s->V - 0xB800)
.text:0000B7F8 7A 44 ADD R2, PC ; "clear"
.text:0000B7FA 8C 46 MOV R12, R1
.text:0000B7FC 7B 44 ADD R3, PC ; "()V"
.text:0000B7FE 20 1C MOVS R0, R4
.text:0000B800 29 1C MOVS R1, R5
.text:0000B802 E0 47 BLX R12
.text:0000B802
.text:0000B804 02 1E SUBS R2, R0, #0
.text:0000B806 00 D1 BNE loc_B80A
.text:0000B806
.text:0000B808 7C E0 B loc_B904
.text:0000B808
.text:0000B80A ; ---------------------------------------------------------------------------
.text:0000B80A
.text:0000B80A loc_B80A ; CODE XREF: Java_com_test_native_1get_1suggestions+11Ej
.text:0000B80A 20 1C MOVS R0, R4
.text:0000B80C 19 99 LDR R1, [SP,#0x58+arg_C]
.text:0000B80E FF F7 13 FD BL _JNIEnv::CallVoidMethod(_jobject *,_jmethodID *,...)
.text:0000B80E
.text:0000B812 20 68 LDR R0, [R4]
.text:0000B814 84 21 MOVS R1, #0x84
.text:0000B816 61 4A LDR R2, =(s->Add - 0xB820)
.text:0000B818 41 58 LDR R1, [R0,R1]
.text:0000B81A 61 4B LDR R3, =(s->LjavaLangObjectZ - 0xB824)
.text:0000B81C 7A 44 ADD R2, PC ; "add"
.text:0000B81E 8C 46 MOV R12, R1
.text:0000B820 7B 44 ADD R3, PC ; "(Ljava/lang/Object;)Z"
.text:0000B822 20 1C MOVS R0, R4
.text:0000B824 29 1C MOVS R1, R5
.text:0000B826 E0 47 BLX R12
.text:0000B826
.text:0000B828 83 46 MOV R11, R0
.text:0000B82A 00 28 CMP R0, #0
.text:0000B82C 00 D1 BNE loc_B830
.text:0000B82C
.text:0000B82E 73 E0 B loc_B918
.text:0000B82E
.text:0000B830 ; ---------------------------------------------------------------------------
.text:0000B830
.text:0000B830 loc_B830 ; CODE XREF: Java_com_test_native_1get_1suggestions+144j
.text:0000B830 23 68 LDR R3, [R4]
.text:0000B832 5C 49 LDR R1, =(s->JavaLangInteger - 0xB83C)
.text:0000B834 20 1C MOVS R0, R4
.text:0000B836 9B 69 LDR R3, [R3,#0x18]
.text:0000B838 79 44 ADD R1, PC ; "java/lang/Integer"
.text:0000B83A 98 47 BLX R3
.text:0000B83A
.text:0000B83C 81 46 MOV R9, R0
.text:0000B83E 5A 4A LDR R2, =(s->Valueof - 0xB84E)
.text:0000B840 20 68 LDR R0, [R4]
.text:0000B842 5A 4B LDR R3, =(s->ILjavaLangInteger - 0xB850)
.text:0000B844 E2 21 49 00 MOVS R1, 0x1C4
.text:0000B848 45 58 LDR R5, [R0,R1]
.text:0000B84A 7A 44 ADD R2, PC ; "valueOf"
.text:0000B84C 7B 44 ADD R3, PC ; "(I)Ljava/lang/Integer;"
.text:0000B84E 20 1C MOVS R0, R4
.text:0000B850 49 46 MOV R1, R9
.text:0000B852 A8 47 BLX R5
.text:0000B852
.text:0000B854 02 90 STR R0, [SP,#0x58+var_50]
.text:0000B856 20 68 LDR R0, [R4]
.text:0000B858 55 4A LDR R2, =(s->Intvalue - 0xB864)
.text:0000B85A 56 4B LDR R3, =(s->I - 0xB866)
.text:0000B85C 84 21 MOVS R1, #0x84
.text:0000B85E 45 58 LDR R5, [R0,R1]
.text:0000B860 7A 44 ADD R2, PC ; "intValue"
.text:0000B862 7B 44 ADD R3, PC ; "()I"
.text:0000B864 20 1C MOVS R0, R4
.text:0000B866 49 46 MOV R1, R9
.text:0000B868 A8 47 BLX R5
.text:0000B868
.text:0000B86A 82 46 MOV R10, R0
.text:0000B86C 00 28 CMP R0, #0
.text:0000B86E 5D D0 BEQ loc_B92C
.text:0000B86E
.text:0000B870 05 9D LDR R5, [SP,#0x58+var_44]
.text:0000B872 11 E0 B loc_B898
.text:0000B872
.text:0000B874 ; ---------------------------------------------------------------------------
.text:0000B874
.text:0000B874 loc_B874 ; CODE XREF: Java_com_test_native_1get_1suggestions+1B4j
.text:0000B874 08 CD LDMIA R5!, {R3}
.text:0000B876 20 1C MOVS R0, R4
.text:0000B878 49 46 MOV R1, R9
.text:0000B87A 02 9A LDR R2, [SP,#0x58+var_50]
.text:0000B87C FF F7 0C FD BL _JNIEnv::CallStaticObjectMethod(_jclass *,_jmethodID *,...)
.text:0000B87C
.text:0000B880 80 46 MOV R8, R0
.text:0000B882 41 46 MOV R1, R8
.text:0000B884 20 1C MOVS R0, R4
.text:0000B886 52 46 MOV R2, R10
.text:0000B888 FF F7 16 FD BL _JNIEnv::CallIntMethod(_jobject *,_jmethodID *,...)
.text:0000B888
.text:0000B88C 20 1C MOVS R0, R4
.text:0000B88E 19 99 LDR R1, [SP,#0x58+arg_C]
.text:0000B890 5A 46 MOV R2, R11
.text:0000B892 43 46 MOV R3, R8
.text:0000B894 FF F7 F0 FC BL _JNIEnv::CallBooleanMethod(_jobject *,_jmethodID *,...)
.text:0000B894
.text:0000B898
.text:0000B898 loc_B898 ; CODE XREF: Java_com_test_native_1get_1suggestions+18Aj
.text:0000B898 7B 68 LDR R3, [R7,#4]
.text:0000B89A AB 42 CMP R3, R5
.text:0000B89C EA D1 BNE loc_B874
.text:0000B89C
.text:0000B89E
.text:0000B89E loc_B89E ; CODE XREF: Java_com_test_native_1get_1suggestions+210j
.text:0000B89E ; Java_com_test_native_1get_1suggestions+224j
.text:0000B89E ; Java_com_test_native_1get_1suggestions+238j
.text:0000B89E ; Java_com_test_native_1get_1suggestions+24Cj
.text:0000B89E 05 98 LDR R0, [SP,#0x58+var_44] ; void *
.text:0000B8A0 00 28 CMP R0, #0
.text:0000B8A2 01 D0 BEQ loc_B8A8
.text:0000B8A2
.text:0000B8A4 3E F0 32 EB BLX operator delete(void *)
.text:0000B8A4
.text:0000B8A8
.text:0000B8A8 loc_B8A8 ; CODE XREF: Java_com_test_native_1get_1suggestions+1BAj
.text:0000B8A8 08 9C LDR R4, [SP,#0x58+var_38]
.text:0000B8AA 75 68 LDR R5, [R6,#4]
.text:0000B8AC AC 42 CMP R4, R5
.text:0000B8AE 06 D0 BEQ loc_B8BE
.text:0000B8AE
.text:0000B8B0
.text:0000B8B0 loc_B8B0 ; CODE XREF: Java_com_test_native_1get_1suggestions+1D2j
.text:0000B8B0 20 1C MOVS R0, R4
.text:0000B8B2 FE F7 5C EC BLX Glib::ustring::~ustring()
.text:0000B8B2
.text:0000B8B6 04 34 ADDS R4, #4
.text:0000B8B8 A5 42 CMP R5, R4
.text:0000B8BA F9 D1 BNE loc_B8B0
.text:0000B8BA
.text:0000B8BC 08 9D LDR R5, [SP,#0x58+var_38]
.text:0000B8BC
.text:0000B8BE
.text:0000B8BE loc_B8BE ; CODE XREF: Java_com_test_native_1get_1suggestions+1C6j
.text:0000B8BE 00 2D CMP R5, #0
.text:0000B8C0 02 D0 BEQ loc_B8C8
.text:0000B8C0
.text:0000B8C2 28 1C MOVS R0, R5 ; void *
.text:0000B8C4 3E F0 22 EB BLX operator delete(void *)
.text:0000B8C4
.text:0000B8C8
.text:0000B8C8 loc_B8C8 ; CODE XREF: Java_com_test_native_1get_1suggestions+1D8j
.text:0000B8C8 03 98 LDR R0, [SP,#0x58+var_4C]
.text:0000B8CA FE F7 50 EC BLX Glib::ustring::~ustring()
.text:0000B8CA
.text:0000B8CE
.text:0000B8CE loc_B8CE ; CODE XREF: Java_com_test_native_1get_1suggestions+206j
.text:0000B8CE 0D B0 ADD SP, SP, #0x34
.text:0000B8D0 3C BC POP {R2-R5}
.text:0000B8D2 90 46 MOV R8, R2
.text:0000B8D4 99 46 MOV R9, R3
.text:0000B8D6 A2 46 MOV R10, R4
.text:0000B8D8 AB 46 MOV R11, R5
.text:0000B8DA F0 BD POP {R4-R7,PC}
.text:0000B8DA
.text:0000B8DC ; ---------------------------------------------------------------------------
.text:0000B8DC
.text:0000B8DC loc_B8DC ; CODE XREF: Java_com_test_native_1get_1suggestions+E0j
.text:0000B8DC 36 48 LDR R0, =(s->OutOfMemory - 0xB8E2)
.text:0000B8DE 78 44 ADD R0, PC ; "Out of memory"
.text:0000B8E0 00 F0 FC F9 BL mw::LOGE(char const*,...)
.text:0000B8E0
.text:0000B8E4 7A E7 B loc_B7DC
.text:0000B8E4
.text:0000B8E6 ; ---------------------------------------------------------------------------
.text:0000B8E6
.text:0000B8E6 loc_B8E6 ; CODE XREF: Java_com_test_native_1get_1suggestions+2Aj
.text:0000B8E6 35 48 LDR R0, =(s->OutOfMemory - 0xB8EC)
.text:0000B8E8 78 44 ADD R0, PC ; "Out of memory"
.text:0000B8EA 00 F0 F7 F9 BL mw::LOGE(char const*,...)
.text:0000B8EA
.text:0000B8EE EE E7 B loc_B8CE
.text:0000B8EE
.text:0000B8F0 ; ---------------------------------------------------------------------------
.text:0000B8F0
.text:0000B8F0 loc_B8F0 ; CODE XREF: Java_com_test_native_1get_1suggestions+104j
.text:0000B8F0 33 48 LDR R0, =(s->CanTFindClass - 0xB8F6)
.text:0000B8F2 78 44 ADD R0, PC ; "Can't find class"
.text:0000B8F4 00 F0 F2 F9 BL mw::LOGE(char const*,...)
.text:0000B8F4
.text:0000B8F8 D1 E7 B loc_B89E
.text:0000B8F8
.text:0000B8FA ; ---------------------------------------------------------------------------
.text:0000B8FA
.text:0000B8FA loc_B8FA ; CODE XREF: Java_com_test_native_1get_1suggestions+80j
.text:0000B8FA 32 48 LDR R0, =(s->CanTFindClass - 0xB900)
.text:0000B8FC 78 44 ADD R0, PC ; "Can't find class"
.text:0000B8FE 00 F0 ED F9 BL mw::LOGE(char const*,...)
.text:0000B8FE
.text:0000B902 6B E7 B loc_B7DC
.text:0000B902
.text:0000B904 ; ---------------------------------------------------------------------------
.text:0000B904
.text:0000B904 loc_B904 ; CODE XREF: Java_com_test_native_1get_1suggestions+120j
.text:0000B904 30 48 LDR R0, =(s->CanTFindMethodClear - 0xB90A)
.text:0000B906 78 44 ADD R0, PC ; "Can't find method clear"
.text:0000B908 00 F0 E8 F9 BL mw::LOGE(char const*,...)
.text:0000B908
.text:0000B90C C7 E7 B loc_B89E
.text:0000B90C
.text:0000B90E ; ---------------------------------------------------------------------------
.text:0000B90E
.text:0000B90E loc_B90E ; CODE XREF: Java_com_test_native_1get_1suggestions+9Aj
.text:0000B90E 2F 48 LDR R0, =(s->CanTFindMethodClear - 0xB914)
.text:0000B910 78 44 ADD R0, PC ; "Can't find method clear"
.text:0000B912 00 F0 E3 F9 BL mw::LOGE(char const*,...)
.text:0000B912
.text:0000B916 61 E7 B loc_B7DC
.text:0000B916
.text:0000B918 ; ---------------------------------------------------------------------------
.text:0000B918
.text:0000B918 loc_B918 ; CODE XREF: Java_com_test_native_1get_1suggestions+146j
.text:0000B918 2D 48 LDR R0, =(s->CanTFindMethodAdd - 0xB91E)
.text:0000B91A 78 44 ADD R0, PC ; "Can't find method add"
.text:0000B91C 00 F0 DE F9 BL mw::LOGE(char const*,...)
.text:0000B91C
.text:0000B920 BD E7 B loc_B89E
.text:0000B920
.text:0000B922 ; ---------------------------------------------------------------------------
.text:0000B922
.text:0000B922 loc_B922 ; CODE XREF: Java_com_test_native_1get_1suggestions+BEj
.text:0000B922 2C 48 LDR R0, =(s->CanTFindMethodAdd - 0xB928)
.text:0000B924 78 44 ADD R0, PC ; "Can't find method add"
.text:0000B926 00 F0 D9 F9 BL mw::LOGE(char const*,...)
.text:0000B926
.text:0000B92A 57 E7 B loc_B7DC
.text:0000B92A
.text:0000B92C ; ---------------------------------------------------------------------------
.text:0000B92C
.text:0000B92C loc_B92C ; CODE XREF: Java_com_test_native_1get_1suggestions+186j
.text:0000B92C 2A 48 LDR R0, =(s->CanTFindMethodIntvalue - 0xB932)
.text:0000B92E 78 44 ADD R0, PC ; "Can't find method intValue"
.text:0000B930 00 F0 D4 F9 BL mw::LOGE(char const*,...)
.text:0000B930
.text:0000B934 B3 E7 B loc_B89E
.text:0000B934
.text:0000B934 ; End of function Java_com_test_native_1get_1suggestions
.text:0000B934
.text:0000B936 ; ---------------------------------------------------------------------------
.text:0000B936
.text:0000B936 loc_B936 ; CODE XREF: .text:0000B970j
.text:0000B936 07 1C MOVS R7, R0
.text:0000B938 08 98 LDR R0, [SP,#0x20]
.text:0000B93A 00 28 CMP R0, #0
.text:0000B93C 01 D0 BEQ loc_B942
.text:0000B93C
.text:0000B93E
.text:0000B93E loc_B93E ; CODE XREF: .text:0000B976j
.text:0000B93E 3E F0 E6 EA BLX operator delete(void *)
.text:0000B93E
.text:0000B942
.text:0000B942 loc_B942 ; CODE XREF: .text:0000B93Cj
.text:0000B942 ; .text:0000B96Ej
.text:0000B942 ; .text:0000B978j
.text:0000B942 03 98 LDR R0, [SP,#0xC]
.text:0000B944 FE F7 12 EC BLX Glib::ustring::~ustring()
.text:0000B944
.text:0000B948 38 1C MOVS R0, R7
.text:0000B94A 3E F0 AA ED BLX __cxa_end_cleanup
.text:0000B94A
.text:0000B94E ; ---------------------------------------------------------------------------
.text:0000B94E 07 1C MOVS R7, R0
.text:0000B950 05 98 LDR R0, [SP,#0x14]
.text:0000B952 00 28 CMP R0, #0
.text:0000B954 01 D0 BEQ loc_B95A
.text:0000B954
.text:0000B956 3E F0 DA EA BLX operator delete(void *)
.text:0000B956
.text:0000B95A
.text:0000B95A loc_B95A ; CODE XREF: .text:0000B954j
.text:0000B95A 08 9C LDR R4, [SP,#0x20]
.text:0000B95C 75 68 LDR R5, [R6,#4]
.text:0000B95C
.text:0000B95E
.text:0000B95E loc_B95E ; CODE XREF: .text:0000B96Aj
.text:0000B95E A5 42 CMP R5, R4
.text:0000B960 07 D0 BEQ loc_B972
.text:0000B960
.text:0000B962 20 1C MOVS R0, R4
.text:0000B964 FE F7 02 EC BLX Glib::ustring::~ustring()
.text:0000B964
.text:0000B968 04 34 ADDS R4, #4
.text:0000B96A F8 E7 B loc_B95E
.text:0000B96A
.text:0000B96C ; ---------------------------------------------------------------------------
.text:0000B96C 07 1C MOVS R7, R0
.text:0000B96E E8 E7 B loc_B942
.text:0000B96E
.text:0000B970 ; ---------------------------------------------------------------------------
.text:0000B970 E1 E7 B loc_B936
.text:0000B970
.text:0000B972 ; ---------------------------------------------------------------------------
.text:0000B972
.text:0000B972 loc_B972 ; CODE XREF: .text:0000B960j
.text:0000B972 08 98 LDR R0, [SP,#0x20]
.text:0000B974 00 28 CMP R0, #0
.text:0000B976 E2 D1 BNE loc_B93E
.text:0000B976
.text:0000B978 E3 E7 B loc_B942
.text:0000B978
.text:0000B978 ; ---------------------------------------------------------------------------
.text:0000B97A C0 46 ALIGN 4
.text:0000B97C 8A C9 04 00 off_B97C DCD s->JavaUtilList - 0xB762
.text:0000B97C ; DATA XREF: Java_com_test_native_1get_1suggestions+70r
.text:0000B97C ; "java/util/List"
.text:0000B980 84 C9 04 00 off_B980 DCD s->Clear - 0xB778 ; DATA XREF: Java_com_test_native_1get_1suggestions+84r
.text:0000B980 ; "clear"
.text:0000B984 8A C9 04 00 off_B984 DCD s->V - 0xB77A ; DATA XREF: Java_com_test_native_1get_1suggestions+86r
.text:0000B984 ; "()V"
.text:0000B988 86 C9 04 00 off_B988 DCD s->Add - 0xB79A ; DATA XREF: Java_com_test_native_1get_1suggestions+A6r
.text:0000B988 ; "add"
.text:0000B98C 88 C9 04 00 off_B98C DCD s->LjavaLangObjectZ - 0xB79C
.text:0000B98C ; DATA XREF: Java_com_test_native_1get_1suggestions+A8r
.text:0000B98C ; "(Ljava/lang/Object;)Z"
.text:0000B990 04 C9 04 00 off_B990 DCD s->JavaUtilList - 0xB7E8
.text:0000B990 ; DATA XREF: Java_com_test_native_1get_1suggestions+F6r
.text:0000B990 ; "java/util/List"
.text:0000B994 00 C9 04 00 off_B994 DCD s->Clear - 0xB7FC ; DATA XREF: Java_com_test_native_1get_1suggestions+10Ar
.text:0000B994 ; "clear"
.text:0000B998 04 C9 04 00 off_B998 DCD s->V - 0xB800 ; DATA XREF: Java_com_test_native_1get_1suggestions+10Er
.text:0000B998 ; "()V"
.text:0000B99C 00 C9 04 00 off_B99C DCD s->Add - 0xB820 ; DATA XREF: Java_com_test_native_1get_1suggestions+12Er
.text:0000B99C ; "add"
.text:0000B9A0 00 C9 04 00 off_B9A0 DCD s->LjavaLangObjectZ - 0xB824
.text:0000B9A0 ; DATA XREF: Java_com_test_native_1get_1suggestions+132r
.text:0000B9A0 ; "(Ljava/lang/Object;)Z"
.text:0000B9A4 18 C9 04 00 off_B9A4 DCD s->JavaLangInteger - 0xB83C
.text:0000B9A4 ; DATA XREF: Java_com_test_native_1get_1suggestions+14Ar
.text:0000B9A4 ; "java/lang/Integer"
.text:0000B9A8 1A C9 04 00 off_B9A8 DCD s->Valueof - 0xB84E ; DATA XREF: Java_com_test_native_1get_1suggestions+156r
.text:0000B9A8 ; "valueOf"
.text:0000B9AC 20 C9 04 00 off_B9AC DCD s->ILjavaLangInteger - 0xB850
.text:0000B9AC ; DATA XREF: Java_com_test_native_1get_1suggestions+15Ar
.text:0000B9AC ; "(I)Ljava/lang/Integer;"
.text:0000B9B0 24 C9 04 00 off_B9B0 DCD s->Intvalue - 0xB864
.text:0000B9B0 ; DATA XREF: Java_com_test_native_1get_1suggestions+170r
.text:0000B9B0 ; "intValue"
.text:0000B9B4 2E C9 04 00 off_B9B4 DCD s->I - 0xB866 ; DATA XREF: Java_com_test_native_1get_1suggestions+172r
.text:0000B9B4 ; "()I"
.text:0000B9B8 EE C7 04 00 off_B9B8 DCD s->OutOfMemory - 0xB8E2
.text:0000B9B8 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B8DCr
.text:0000B9B8 ; "Out of memory"
.text:0000B9BC E4 C7 04 00 off_B9BC DCD s->OutOfMemory - 0xB8EC
.text:0000B9BC ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B8E6r
.text:0000B9BC ; "Out of memory"
.text:0000B9C0 42 C7 04 00 off_B9C0 DCD s->CanTFindClass - 0xB8F6
.text:0000B9C0 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B8F0r
.text:0000B9C0 ; "Can't find class"
.text:0000B9C4 38 C7 04 00 off_B9C4 DCD s->CanTFindClass - 0xB900
.text:0000B9C4 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B8FAr
.text:0000B9C4 ; "Can't find class"
.text:0000B9C8 FE C7 04 00 off_B9C8 DCD s->CanTFindMethodClear - 0xB90A
.text:0000B9C8 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B904r
.text:0000B9C8 ; "Can't find method clear"
.text:0000B9CC F4 C7 04 00 off_B9CC DCD s->CanTFindMethodClear - 0xB914
.text:0000B9CC ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B90Er
.text:0000B9CC ; "Can't find method clear"
.text:0000B9D0 1E C8 04 00 off_B9D0 DCD s->CanTFindMethodAdd - 0xB91E
.text:0000B9D0 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B918r
.text:0000B9D0 ; "Can't find method add"
.text:0000B9D4 14 C8 04 00 off_B9D4 DCD s->CanTFindMethodAdd - 0xB928
.text:0000B9D4 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B922r
.text:0000B9D4 ; "Can't find method add"
.text:0000B9D8 66 C8 04 00 off_B9D8 DCD s->CanTFindMethodIntvalue - 0xB932
.text:0000B9D8 ; DATA XREF: Java_com_test_native_1get_1suggestions:loc_B92Cr
.text:0000B9D8 ; "Can't find method intValue"
我也觉得它比较怪,以前没有遇到过所以在这里请教一下!