• # 【Android】逆向自动化


    【Android】逆向自动化

    前言

    安卓APK自动反编译,自动分析组件导出与非导出,自动解析组件中可能存在攻击点的关键词,自动收集所有APK中的URL,自动上传解析结果到飞书文档。
    代码:https://github.com/hwhxy/AndroidForLark

    自动反编译

    python3执行命令即可

    cmd = f"{self.jadx_dir}/bin/jadx -e {self.apk_dir} -d {self.re_apk_dir}"
    print(f"开始逆向,请等待!cmd:{cmd}")
    pipe = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print(pipe.stdout.read().decode())
    print(f"逆向结束,文件输出为:{self.re_apk_dir}")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    jadx下载放在project文件路径下面就行
    download from : https://github.com/skylot/jadx

    自动分析组件导出与非导出

    直接解析AndroidManifest.xml

    • 情况1:android:exported=“true” – 可导出
    • 情况2:android:exported=“falsee” – 不可导出
    • 情况3:没直接显式exported,有intent-filter – 可导出
    • 情况4:没直接显式exported,无intent-filter – 默认不可导出

    自动解析组件中可能存在攻击点的关键词

    self.sensitive_keys = [
    "onHandleIntent(", 
    "getIntent(", 
    "getStringExtra(",
    "getExtras(", 
    "startService(", 
    "startActivity("
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这个可以是可以增加的list,主要看我们对于组件的审计喜欢看什么函数或关键词。

    自动收集所有APK中的URL

    match_url = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', file_content)
    
    • 1

    自动上传飞书文档

    def create_sheet(self, sheet_title)
    def add_spreadsheet(self, spreadsheet_token, title)
    def write_sheet(self, data, spreadsheet_token, sheet_id)
    
    • 1
    • 2
    • 3

    后记

    都有mobsf了,还要啥自行车?

  • 相关阅读:
    【Qt】常见控件
    HTML+CSS美食静态网页设计——简单牛排美食餐饮(9个页面)公司网站模板企业网站实现
    day58 单调栈.p1
    【Linux_TODO】
    运维开发详解:从入门到精通
    linux搭建docker镜像服务
    前端每日小计
    什么是低代码开发平台?有什么优势?
    HTML小游戏15 —— 网页版3D反恐英雄(附完整源码)
    005. 组合总和 II
  • 原文地址:https://blog.csdn.net/xiru9972/article/details/126532196