Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可以直接用mobsf分析dex文件吗?_Python_Android_Security_Static Analysis_Penetration Testing - Fatal编程技术网

Python 可以直接用mobsf分析dex文件吗?

Python 可以直接用mobsf分析dex文件吗?,python,android,security,static-analysis,penetration-testing,Python,Android,Security,Static Analysis,Penetration Testing,我有几个dex文件需要在解包apk文件后由管理员进行静态分析,因为解包之前无法访问核心代码 我所尝试的: 添加第3行并将第4行从glob\u pattern=app\u dir+*.dex'更改为glob\u pattern=ddex\u dir def get_dex_files(app_dir): """Get all Dex Files for analysis.""" ddex_dir = "C:/pa

我有几个dex文件需要在解包apk文件后由管理员进行静态分析,因为解包之前无法访问核心代码

我所尝试的: 添加第3行并将第4行从
glob\u pattern=app\u dir+*.dex'
更改为
glob\u pattern=ddex\u 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
我会尝试使用这个工具来达到这个目的。将apk转换为jar,然后使用MobSF进行分析。MobSF应该使用jar文件,因为这是一个归档文件。我不确定它是否会表现出稳定的行为,但它可以是一种选择

据我所知,MobSF的源代码中也有这个包,所以您是否尝试过直接将这个APK加载到MobSF而不做任何更改?我想这可能有用

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


请注意这个问题。MobSF developer建议使用enjarify而不是dex2jar(第二个答案),并发送解释如何使用的消息。

在挖掘之后,这里是我的工作流的一个更完善的版本:.dex=dex2jar=>.jar=jadx=>.java,然后可以复制粘贴到MobSF生成的目录下的java_源代码中


我能够通过使用修改后的版本的dex2jar将dexes反编译到jar,然后使用JADX读取用d2j反编译的jar,从而生成functional.java源代码。

使用JADX和手动反编译是一种方法。只是澄清一下,apk被混淆了,需要通过dex手动反编译才能访问核心代码;因此,仅仅通过apk自身上传apk是不可能分析apk中的所有方面的。因此,最终您使用JADX对其进行了反编译,并能够将其加载到MobSF?以下是我的工作流程:.dex=dex2jar=>jar=JADX=>.java,然后可以将其复制粘贴到MobSF生成目录下的java_源代码中。我能够通过使用修改后的dex2jar版本将dexes反编译到jar,然后使用JADX读取用d2j反编译的jar,生成functional.java源代码。