看了老外的一个帖子 e39K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3y4S2L8r3g2T1k6X3g2F1N6r3!0F1i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5J5x3o6p5%4i4K6u0r3x3o6c8Q4x3V1j5H3y4g2)9J5c8X3y4J5k6h3q4@1K9h3&6Y4i4K6g2X3K9X3q4$3j5g2)9#2k6Y4k6E0i4K6g2X3k6Y4u0G2L8g2)9#2k6X3q4F1k6s2u0G2K9h3c8Q4y4h3k6F1j5i4c8A6N6X3g2Q4y4h3k6U0L8$3c8W2i4K6u0r3 ,动手试了下遇到了一个问题,不知道有没有老司机能解惑。
环境是android7.1.1 ,然后代码是
if (!libart_dso || !libandroid_runtime_dso) { if (libandroid_runtime_dso) { dlclose(libandroid_runtime_dso); }if (libart_dso) { dlclose(libart_dso) } return -1; } registerNatives_t registerNatives; registerNatives = (registerNatives_t) dlsym(libandroid_runtime_dso, "Java_com_android_internal_util_WithFramework_registerNatives"); if (!registerNatives) { printf("[!] %s\n", dlerror()); return -3; }
结果发现一直报错,undefined symbol: Java_com_android_internal_util_WithFramework_registerNatives,导出libandroid_runtime.so查看符号表里也没有这个方法,但是android源码a62K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3M7r3I4S2N6r3k6G2M7X3#2Q4x3V1k6X3M7X3q4E0k6i4N6G2M7X3E0K6i4K6u0r3L8X3q4@1K9i4k6W2i4K6u0r3i4K6u0n7i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5k6o6N6Q4x3X3f1I4i4K6u0W2x3g2)9#2k6Y4t1K6y4g2)9J5c8Y4y4W2M7Y4k6A6j5$3g2K6i4K6u0r3M7%4g2J5k6X3q4U0k6h3k6D9K9h3&6Y4k6i4u0Q4x3V1k6p5k6r3#2o6L8$3&6F1k6h3y4@1K9h3!0F1i4K6u0W2j5%4m8H3里也是这么用的,求老司机解惑
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
一步步来 你这段代码的意思是不是:加载一个so文件,并获取Java_com_android_internal_util_WithFramework_registerNatives这个函数的句柄? 提供一点思路 ...
lglwl android 4.4测试成功[em_1]