V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alioth0909
V2EX  ›  Android

[原创] 分享一个 Android SO 分析小工具

  •  1
     
  •   alioth0909 · 17 小时 44 分钟前 · 545 次点击

    在做 Apk 分析(竞品分析或者合规分析)的时候,相比 Java 层,Native 的扫描和分析难度更大,往往是通过 IDA 去解析,通过分析字符串,函数名,导入/导出表等,基本上就能推断出这个 so 的作用以及开发者信息(供应商等)。面对一款陌生的 App ,如果有很多陌生的 so 的话,就需要逐一分析,非常繁琐。碰到一些不理解但又觉得有意义的字符串,还得上网搜一下。对于非逆向方向的同学,可能无法独立完成这样的工作。是否有一款工具,能够帮助大家轻松地对 Apk 中的 so 做一个粗略的分析呢?

    上述这些专业、繁杂、重复的工作,是否可以通过大语言模型+搜索引擎来完成呢?

    基于这个想法,可以将上述任务拆解成几个关键步骤:

    从 Apk 中提取 so 文件,通过 web 搜索 so 文件的名字,从而确定起供应商和基本功能。比如:libBugly_Native.so ,很显然就是腾讯的 Bugly ,也就是一款收集 Crash 信息的产品。

    提取 so 中的字符串和函数名,通过 LLM 来分析这些字符串/函数名的意义,从而推断这个 so 的基本功能。(不考虑混淆的情况。换个角度,混淆的函数名也能说明这个 so 可能是某个安全模块)

    提取 so 中的 text section ,选择一部分进行反汇编,然后把汇编代码/伪代码交给 LLM 进行分析。从中也可以提取一些特征,比如是否混淆或者 hook 的特征。

    输出分析报告,说明这个 Apk 集成了哪些供应商的哪些产品。

    我开源了这个小项目,希望能对大家有帮助。https://github.com/argus-sight/refund-swatter-lite

    第 1 条附言  ·  5 小时 36 分钟前
    Github 项目地址是: https://github.com/argus-sight/BinSight ,原文中贴错了。
    10 条回复    2025-09-10 13:44:35 +08:00
    krapnik
        1
    krapnik  
       6 小时 39 分钟前
    打破零回复惨案,老铁你贴错链接了: https://github.com/argus-sight/BinSight
    ps:求一个 wasm 分析小工具
    alioth0909
        2
    alioth0909  
    OP
       5 小时 37 分钟前
    @krapnik 谢谢提醒! wasm 的,我有空研究下~
    debuggeeker
        3
    debuggeeker  
       4 小时 54 分钟前
    很强
    bl4ckoooooH4t
        4
    bl4ckoooooH4t  
       4 小时 30 分钟前
    有个项目已经有类似的功能了 https://github.com/LibChecker/LibChecker
    alioth0909
        5
    alioth0909  
    OP
       4 小时 25 分钟前
    @bl4ckoooooH4t 感谢提醒! LibChecker 做的很不错。我开源的这个项目,其实是想通过大模型+搜索引擎的思路来识别(而不是通过维护数据库/规则的方式),只是做一个思路上的探索。
    alioth0909
        6
    alioth0909  
    OP
       4 小时 11 分钟前
    @bl4ckoooooH4t 我看了下 LibChecker ,感觉跟 BinSight 的视角还是不太一样的。LibChecker 是通过查询数据库,匹配 Android 组件和 so 的名字,从而推断出一些知名的三方库/供应商。BinSight 是通过分析 so 的字符串/函数名,然后联网索索,最后给大模型分析,来推测 so 的开发商信息。我个人认为,LibChecker 会更严谨和准确,BinSight 会更包罗万象一点,可以分析海外的各种 so 和自研的 so 。仅提供一个思路来讨论,如有不足,多多包涵
    Kaisar
        7
    Kaisar  
       3 小时 31 分钟前
    @alioth0909 我觉得你这个可以作为一个 feature 跟 LibChecker 整合起来应该不错
    alioth0909
        8
    alioth0909  
    OP
       3 小时 17 分钟前
    @Kaisar 改动有点大了,可能要重写了。话说,大家都在用 LibChecker 么?
    Kaisar
        9
    Kaisar  
       2 小时 35 分钟前
    @alioth0909 好用装个 app 就能用 你这个想法是好的 但是还要配 key 什么的有一点麻烦 而且刚试了一下把仓库拉下来还没跑起来 报了个 python 的错
    alioth0909
        10
    alioth0909  
    OP
       32 分钟前
    @Kaisar 嗯嗯,我找时间先试试 LibChecker
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:17 · PVG 14:17 · LAX 23:17 · JFK 02:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.