【问题标题】:Is it possible to analyze dex file directly with mobsf?可以直接用mobsf分析dex文件吗?
【发布时间】:2021-01-08 03:52:43
【问题描述】:

我有几个dex文件需要mobsf在解压apk文件后进行静态分析,因为解压前核心代码无法访问。

我尝试过的: 添加第 3 行并将第 4 行从 glob_pattern = app_dir + *.dex' 更改为 glob_pattern = ddex_dir

def get_dex_files(app_dir):
    """Get all Dex Files for analysis."""
    ddex_dir = "C:/path/Sample/dexfilepath/"
    glob_pattern = app_dir + '*.dex'
    return glob.glob(glob_pattern)

我知道这是幼稚的方法,但我对渗透测试真的很陌生。

部分错误代码:

[INFO] 08/Jan/2021 11:49:08 - Decompiling to Java with jadx
[INFO] 08/Jan/2021 11:49:30 - DEX -> SMALI
[INFO] 08/Jan/2021 11:49:30 - Converting 10046944_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 10152568_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 10247328_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 10286360_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 10453796_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 1272952_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 1349780_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 13539468_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:30 - Converting 3046356_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:31 - Converting 3261832_dexfile.dex to Smali Code
[INFO] 08/Jan/2021 11:49:31 - Converting 3261832_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:31 - Converting 359592_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:31 - Converting 5068284_dexfile_execute.dex to Smali Code
[INFO] 08/Jan/2021 11:49:31 - Converting 8294920_dexfile.dex to Smali Code
Lcom/qinggan/ftp/library/ftp/QGFTPServer$MyFtplet;->onConnect(Lorg/apache/ftpserver/ftplet/FtpSession;)Lorg/apache/ftpserver/ftplet/FtpletResult;: Invalid debug offset
Lcom/qinggan/ftp/library/socket/message/QGP2PMessageBase;->obtainHead(I)Ljava/lang/String;: Invalid debug offset
Lcom/qinggan/ftp/library/socket/message/QGP2PMessageServer$1;->run()V: Invalid debug offset
Lcom/qinggan/ftp/library/socket/message/QGP2PMessageClient$1;->run()V: Invalid debug offset
Lcom/qinggan/keepalive/GuardService;->getServiceIntent()Landroid/content/Intent;: Invalid debug offset
Lcom/qinggan/ftp/library/socket/message/QGP2PMessageClient;->closeSelf()V: Invalid debug offset
[INFO] 08/Jan/2021 11:49:32 - Converting 8294920_dexfile_execute.dex to Smali CodeLcom/qinggan/app/arielapp/ArielApplication$16;->insert(Ljava/util/List;)V: Invalid debug offset
Lcom/qinggan/ftp/library/ftp/QGFTPClient$2;->run()V: Invalid debug offset
Lcom/qinggan/app/arielapp/ArielApplication$11;->clearUserCache()V: Invalid debug offset
Lcom/qinggan/ftp/library/socket/message/QGP2PMessageServer;->dispatchMessage(Lcom/qinggan/ftp/library/socket/message/QGP2PMessage;)V: Invalid debug offset

Lcom/hp/hpl/sparta/DefaultLog;->error(Ljava/lang/String;Ljava/lang/String;I)V: Invalid debug offset
Lcom/qinggan/app/arielapp/ArielApplication$17;->onConnectStatusChange(Z)V: Invalid debug offset

【问题讨论】:

    标签: python android security static-analysis penetration-testing


    【解决方案1】:

    为此,我会尝试使用dex2jar 工具。将您的 apk 转换为 jar,然后使用 MobSF 对其进行分析。 MobSF 应该使用 jar 文件,因为这是一个存档。我不确定它是否会表现出稳定的行为,但它可以作为一种选择。

    据我所知,MobSF 的源代码中也有这个包,那么您是否尝试过不做任何更改就直接将这个 APK 加载到 MobSF 中?我认为它可能会起作用。

    您也可以使用 JADX 工具进行手动源代码分析。它应该从 DEX 二进制文件中恢复源代码。

    还要注意this 问题。 MobSF 开发人员建议使用 enjarify 而不是 dex2jar(第二个答案)并发送 link 来解释如何做到这一点。

    【讨论】:

    • 使用 JADX 和手动反编译是要走的路。澄清一下,apk 被混淆了,需要通过 dex 手动反编译才能访问核心代码;因此,纯粹通过自己上传 apk 来分析 apk 中的所有方面是不可能的。
    • 所以最后你使用 JADX 反编译了它并能够将它加载到 MobSF 中?
    • 这是我的工作流程: .dex =dex2jar=> jar =jadx=> .java 然后可以复制粘贴到 mobsf 生成目录下的 JAVA_Source 中。我能够通过使用 modified 版本的 dex2jar 将 dex 反编译为 jar,然后使用 JADX 读取用 d2j 反编译的 jar,从而生成功能性 .java 源代码。
    【解决方案2】:

    这是我挖掘后工作流程的更精细版本:.dex =dex2jar=> .jar =jadx=> .java 然后可以复制粘贴到 mobsf 生成目录下的 JAVA_Source 中。

    我能够通过使用 modified 版本的 dex2jar 将 dex 反编译为 jar,然后使用 JADX 读取用 d2j 反编译的 jar,从而生成功能性 .java 源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-21
      • 2019-09-04
      • 2020-01-06
      • 2014-05-11
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 2020-04-24
      相关资源
      最近更新 更多