首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用IF语句导入模块吗?以后可以在python脚本中导入吗?

问我可以使用IF语句导入模块吗?以后可以在python脚本中导入吗?
EN

Stack Overflow用户
提问于 2018-09-15 18:56:56
回答 2查看 57关注 0票数 2

从的角度看攻击中的五酯/红队

好的,让我们假设我们正在尽力避免检测或避免Blue意识到脚本导入模块'x‘。

我们在代码中实现了一个故障安全,以检查条件是否为。如果这不是我们的目标,我们希望脚本的行为方式不会引起注意。

据我理解,Blue可以使用流程分析(这是正确的词吗?)以了解python脚本在运行时实际做了什么。

假设Blue没有查看实际的python脚本,而是查看python脚本所进行的调用,那么是否可以只在条件为时导入一个模块。这将降低检测阈值。

但是,我遇到了python文档,这些文档建议在脚本开始时保留所有导入。这样,我们就无法实现IF语句来选择是否应该导入某些内容。

伪码(Python)

代码语言:javascript
复制
import sys
# ...other functions
def check_user():
    # check user against target fingerprint
    if a is True:
        import x

TLDR:我可以使用IF/ Can语句导入模块吗?稍后我可以在python脚本中导入一个模块吗?

安全性相关的问题:在不分析实际代码的情况下,使用什么好的程序来分析python脚本及其调用/操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-15 19:02:27

您可以在Python中有条件地导入模块。

例子:

代码语言:javascript
复制
def check():
   if sys.version_info[0] == 2:
      from itertools import izip
   else:
      izip = zip

   a=[1,2,3]
   b=[4,5,6]

   print(izip)
   for c in izip(a,b):
       print(c)

这里基于Python版本的izip是有条件地导入的。

票数 0
EN

Stack Overflow用户

发布于 2018-09-15 19:04:49

您可以这样做:

代码语言:javascript
复制
import sys
if sys.version_info > (2, 7):
    import simplejson as json
else:
    import json
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52347895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档