Reversing Native Libraries

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

WhiteIntel 是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件侵害

WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:


更多信息请查看: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Android应用程序可以使用本地库,通常用C或C++编写,用于性能关键任务。恶意软件创建者也使用这些库,因为它们比DEX字节码更难逆向工程。本节强调针对Android定制的逆向工程技能,而不是教授汇编语言。提供了ARM和x86版本的库以确保兼容性。

关键要点:

  • Android应用程序中的本地库:

  • 用于性能密集型任务。

  • 用C或C++编写,使逆向工程具有挑战性。

  • .so(共享对象)格式找到,类似于Linux二进制文件。

  • 恶意软件创建者更喜欢本地代码以增加分析难度。

  • Java本机接口(JNI)和Android NDK:

  • JNI允许在本地代码中实现Java方法。

  • NDK是用于编写本地代码的Android特定工具集。

  • JNI和NDK将Java(或Kotlin)代码与本地库连接起来。

  • 库加载和执行:

  • 使用System.loadLibrarySystem.load将库加载到内存中。

  • 在加载库时执行JNI_OnLoad。

  • Java声明的本机方法链接到本机函数,实现执行。

  • 将Java方法链接到本机函数:

  • **动态链接:**本地库中的函数名称与特定模式匹配,允许自动链接。

  • **静态链接:**使用RegisterNatives进行链接,提供函数命名和结构的灵活性。

  • 逆向工程工具和技术:

  • 工具如Ghidra和IDA Pro有助于分析本地库。

  • JNIEnv对于理解JNI函数和交互至关重要。

  • 提供练习以实践加载库、链接方法和识别本机函数。

资源:

WhiteIntel 是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件侵害

WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

最后更新于