CN112000950A - 一种防拦截的程序运行与交互控制方法及装置 - Google Patents
一种防拦截的程序运行与交互控制方法及装置 Download PDFInfo
- Publication number
- CN112000950A CN112000950A CN202010622042.4A CN202010622042A CN112000950A CN 112000950 A CN112000950 A CN 112000950A CN 202010622042 A CN202010622042 A CN 202010622042A CN 112000950 A CN112000950 A CN 112000950A
- Authority
- CN
- China
- Prior art keywords
- program
- data
- input data
- output
- interaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000003993 interaction Effects 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000001960 triggered effect Effects 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006978 adaptation Effects 0.000 claims description 8
- 230000002265 prevention Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 abstract description 5
- 230000002155 anti-virotic effect Effects 0.000 description 8
- 238000012550 audit Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种防拦截的程序运行与交互控制方法及装置,方法包括:在白名单模块中运行预先编写的python代码文件,获得python的子进程;判断程序是否需要输入,若是则停止运行子进程,接收界面终端的输入数据并根据输入数据发送相应的命令,否则判断程序是否有输出;当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端。本发明实施例直接在白名单模块中运行python代码文件获得子进程,并监听终端与操作系统之间的交互进行相应的交互操作,从根源上防止程序运行与控制台交互时被拦截,且无需用户手动将程序添加至白名单,提高了程序运行的兼容性以及用户使用的便利程度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种防拦截的程序运行与交互控制方法及装置。
背景技术
目前在python编辑器中,使用的是业内较为知名的库node-pty,其主要功能是兼容macOS、Windows、Linux的基于Unix命令的伪终端库,可以使到程序在任意操作系统下都使用Unix指令集。这个功能让开发者不需要写多余的兼容代码,无需判断平台再去选择相应指令,且其具备终端的大部分功能。但是由于编辑器的主要受众群体的操作系统是windows,而node-pty在windows的实现中需要利用到windows下的核心程序win-pty.exe,这个程序操作到了系统底层,在大多数杀毒软件中会被检测到,却无法判断他是否为合法程序,所以程序的运行会被拦截。这个核心程序被拦截意味着python集成开发环境的主要功能将无法使用。
关于这个问题现有的解决方案主要有两种,一种是给杀毒软件提交程序审核,如果通过了则不会再阻截,但是由于市面上有多款杀毒软件,需要为每款杀毒软件提交审核,且编辑器每发一版都要提一次审核,时间成本十分巨大,企业无法承受。另一种是让用户手动地把win-pty.exe程序给加入到白名单,这样就可以跳过检测,但考虑到用户年龄层与用户量,如果每次使用前没有通知到位或者被用户忽略,则会引发大量的BUG导致程序无法正常运行,这两个办法都没有从源头上解决问题。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种防拦截的程序运行与交互控制方法及装置,旨在解决现有技术中python程序运行时被拦截的问题。
本发明的技术方案如下:
一种防拦截的程序运行与交互控制方法,其包括如下步骤:
在白名单模块中运行预先编写的python代码文件,获得python的子进程;
判断程序是否需要输入,若是,则停止运行所述子进程,接收界面终端的输入数据并根据所述输入数据发送相应的命令,否则判断程序是否有输出;
当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端。
所述的防拦截的程序运行与交互控制方法中,所述在白名单模块中运行预先编写的python代码文件,获得python的子进程,包括:
声明shell类,并在构造函数中初始化终端属性以用于存放python子进程;
接受所述python代码文件的文件路径,调用白名单模块运行所述python代码文件获得python的子进程。
所述的防拦截的程序运行与交互控制方法中,所述接收界面终端的输入数据并根据所述输入数据发送相应的命令,包括:
接收用户在界面终端输入的输入数据;
对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求;
根据格式化后的输入数据发送相应的命令。
所述的防拦截的程序运行与交互控制方法中,所述对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求,具体包括:
根据预先设置的转义字符配置化接口对所述输入数据进行转义字符识别后进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求。
所述的防拦截的程序运行与交互控制方法中,所述当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端,包括:
判断当前子进程触发的事件类型;
当触发数据事件时调用数据输出处理函数,对所述输出数据进行字符适配后输出至显示终端;
当触发错误事件时调用错误处理函数,根据所述输出数据获取错误信息输出至显示终端并写入错误日志中。
所述的防拦截的程序运行与交互控制方法中,所述判断程序是否有输出之后,还包括:
当程序没有输出时判断所述子进程是否结束,若是,则将所述终端属性设置为零退出当前程序,否则继续判断程序是否需要输入。
所述的防拦截的程序运行与交互控制方法中,所述白名单模块为child_process模块。
本发明又一实施例还提供了一种防拦截的程序运行与交互控制装置,所述装置包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述防拦截的程序运行与交互控制方法。
本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的防拦截的程序运行与交互控制方法。
本发明的另一实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的防拦截的程序运行与交互控制方法。
有益效果:本发明公开了一种防拦截的程序运行与交互控制方法及装置,相比于现有技术,本发明实施例通过直接在白名单模块中运行python代码文件获得子进程,并监听终端与操作系统之间的交互进行相应的交互操作,从根源上防止程序运行与控制台交互时被拦截,且无需用户手动将程序添加至白名单,提高了程序运行的兼容性以及用户使用的便利程度。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明提供的防拦截的程序运行与交互控制方法较佳实施例的流程图;
图2为本发明提供的防拦截的程序运行与交互控制方法具体实施例的流程图;
图3为本发明提供的防拦截的程序运行与交互控制装置较佳实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
请参阅图1,图1为本发明提供的防拦截的程序运行与交互控制方法较佳实施例的流程图。如图1所示,其包括如下步骤:
S100、在白名单模块中运行预先编写的python代码文件,获得python的子进程;
S200、判断程序是否需要输入,若是,则停止运行所述子进程,接收界面终端的输入数据并根据所述输入数据发送相应的命令,否则判断程序是否有输出;
S300、当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端。
本实施例中,直接选用操作系统的白名单模块,该白名单模块可以操作到系统底层但是不会被杀毒软件拦截,在该白名单模块中运行预先编写的python代码文件进而获得python的子进程,之后判断程序是否需要输入,若是,则停止运行所述子进程等待用户的输入,接收用户在界面终端的输入数据并根据所述输入数据发送相应的命令与操作系统交互,否则判断程序是否有输出;当程序有输出时则更加当前子进程触发的事件类型调用相应的处理函数,对输出输出进行数据处理后将响应反馈至界面终端,因此本实施例中基于直接在操作系统的白名单模块中运行python代码文件,使得程序运行不受杀毒软件的拦截限制,可实现程序运行以及控制终端输出输入等交互动作,例如输入字符、换行、回退字符、发送命定与操作系统交互等等,无需用户手动将核心程序加入系统白名单也无需开发者向每款杀毒软件提交审核,从源头上解决python程序运行被拦截的问题,提供了高效的防拦截程勋运行解决方案。
进一步地,所述在白名单模块中运行预先编写的python代码文件,获得python的子进程,包括:
声明shell类,并在构造函数中初始化终端属性以用于存放python子进程;
接受所述python代码文件的文件路径,调用白名单模块运行所述python代码文件获得python的子进程。
具体实施时,由开发者先声明shell类,并在构造函数中初始化terminal终端属性为零(null),该属性用来存放python子进程,具体来说这个属性类型为SubProcess,其具备了write方法和input_data属性,分别用来写入数据和缓存输入数据,之后在编写的核心方法中接受所述python代码文件的文件路径,调用系统白名单模块运行所述python代码文件获得python的子进程,本发明实施例中,所述白名单模块为nodejs的child_process模块,具体为child_process下的spawn子模块来实现程序的防拦截运行,nodejs的模块是兼容多平台的,在windows下,虽然可以操作到底层,但杀毒软件不会拦截nodejs的相应模块,因为进程间有父子关系且nodejs的模块是安全合法的,进而通过操作系统的白名单模块实现代码运行,从源头上防止程序被拦截,提高了程序运行的兼容性和可靠程度。
进一步地,所述接收界面终端的输入数据并根据所述输入数据发送相应的命令,包括:
接收用户在界面终端输入的输入数据;
对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求;
根据格式化后的输入数据发送相应的命令。
具体实施时,对于控制台的交互包括两部分,分别为真实的控制终端和界面终端,通过控制终端发送命令与操作系统交互,而通过界面终端体提供UI界面以及提供对控制终端的输入逻辑,例如输入字符、换行、回退字符和快捷键等等,因此在程序需要输入时,用户在界面终端进行数据输入,控制终端监听并接收界面终端发送的输入数据,之后对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求,这是由于用户在界面终端输入的数据或者操作字符有些并不符合python进程格式,因此需要做一次内部数据转换,对输入数据进行格式化,使其符合当前控制终端的数据格式要求,确保能正确接收用户通过界面终端发送的数据,根据格式化后的输入数据发送相应的命令,从而实现了标准输入的交互功能,确保能对用户的输入数据进行正确的响应。
更进一步地,所述对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求,具体包括:
根据预先设置的转义字符配置化接口对所述输入数据进行转义字符识别后进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求。
即具体实施时,在进行数据格式化处理时,需要对转移字符进行识别判断,根据预先设置的转义字符配置化接口对输入数据中的转移字符进行识别,然后进一步格式化实现内部数据转换,使得格式化后的输入数据即能成功识别转义字符也符合了当前控制终端的数据格式要求。
具体来说,关于转义字符配置化主要是运用了设计模式中的“策略模式”,去掉不方便扩展和高耦合性的“if else”逻辑,将内部逻辑抽出写入到一个json对象中形成配置化,通过开放配置化接口,在后续有新的字符加入时可直接将处理逻辑添加到字符处理器charProcessor中,在进行转移字符的识别时直接调用即可,通过预先设置的转义字符配置化接口实现转义字符的识别判断,提高了识别的可维护性,后续如果有新增加的字符,可以在不修改原逻辑代码的情况下自己加入,提高识别的准确率。
进一步地,所述当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端,包括:
判断当前子进程触发的事件类型;
当触发数据事件时调用数据输出处理函数,对所述输出数据进行字符适配后输出至显示终端;
当触发错误事件时调用错误处理函数,根据所述输出数据获取错误信息输出至显示终端并写入错误日志中。
具体实施时,若当前程序没有输入则判断其是否有输出,当有输出时则先判断当前子进程触发的事件类型,若触发data事件即数据事件则调用数据输出处理函数,对所述输出数据进行字符适配后输出至显示终端进行显示,之所以需要进行字符适配是因为在python中有标准输出的默认字符编码,若不指定编码格式则默认编码与操作系统类型和操作系统的版本都有关系,此时会发现输出的中文是乱码,因此需要根据当前操作系统的默认编码进行编码格式的指定实现字符适配,例如在windows7中的默认编码是gbk,在macOS中的默认编码是UTF-8,以macOS为例,需要指定编码格式为UTF-8,可以在生成子进程的选项中设置环境变量“PYTHONIOENCODING”和“PYTHONLEGACYWINDOWSIOENCODING”为“UTF-8”实现字符适配,确保输出数据可以在界面终端正常显示;若触发error事件即错误事件,则调用错误处理函数,根据所述输出数据获取错误信息,并将该错误信息输出至显示终端进行显示,同时也将错误一并写入错误日志中,以便开发者能更好地进行调试优化程序。
进一步地,所述判断程序是否有输出之后,还包括:
当程序没有输出时判断所述子进程是否结束,若是,则将所述终端属性设置为零退出当前程序,否则继续判断程序是否需要输入。
本发明实施例中,当前程序没有输入则判断其是否有输出,若程序没有输出时则判断所述子进程是否已经结束,若是,则将所述终端属性设置为零(null)来释放内存进而退出当前程序,否则继续判断程序是否需要输入,进而实现了完整的防拦截程序运行与控制台交互的过程。
优选地,本发明实施例在程序中断上也做了特殊处理,当触发中断时,由于运行的python代码里可能会执行生成子进程的语句,而子进程里可能又会生成新的子进程,通过普通的中断命令是无法中断整个进程树的,即不能中断衍生的子进程的,只能中断python主进程,如果想中断一系列具有联系的进程,只能通过中断进程组来完成,此时会导致一个问题,由于IDE(集成开发环境)和python进程时处于同一个进程组的,因此中断该进程组则会中断整个应用,为了避免这种情况,本实施例通过维护一个数组来记录生成的子进程的id,进而在中断进程时通过循环遍历子进程id并调用中断方法将其中断,进一步地,在另一个实施例中,还可通过设置spwan方法选项中“detached”的属性,其指的是“是否独立于父进程”,通过设置其为true,使得父进程和子进程的进程id处于不同的进程组,避免出现程序中断是导致整个应用中断的现象。
为更好地理解本发明实施例中程序运行和控制台交互过程,以下结合图2对本发明提供的防拦截的程序运行与交互控制方法流程进行介绍,如图2所示,,该方法包括如下步骤:
S1、在child_process.spawn中运行预先编写的python代码文件,获得python的子进程;
S2、判断程序是否需要输入,若是,则执行步骤S3,否则执行步骤S4;
S3、停止运行子进程,接收输入数据并根据所述输入数据发送相应的命令;
S4、判断程序是否有输出,若是,则执行步骤S5,否则执行步骤S6;
S5、根据子进程触发的事件类型调用数据输出处理函数或错误处理函数,反馈相应结果只界面终端;
S6、判断程序是否结束,若是,则程序退出,否则返回步骤S2。
本发明另一实施例提供一种防拦截的程序运行与交互控制装置,如图3所示,装置10包括:
一个或多个处理器110以及存储器120,图3中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图3中以通过总线连接为例。
处理器110用于完成装置10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的防拦截的程序运行与交互控制方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行装置10的各种功能应用以及数据处理,即实现上述方法实施例中的防拦截的程序运行与交互控制方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据装置10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至装置10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的防拦截的程序运行与交互控制方法,例如,执行以上描述的图1中的方法步骤S100至步骤S300。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S300。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明丽非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的防拦截的程序运行与交互控制方法。例如,执行以上描述的图1中的方法步骤S100至步骤S300。
综上所述,本发明公开的防拦截的程序运行与交互控制方法及装置中,所述方法包括:在白名单模块中运行预先编写的python代码文件,获得python的子进程;判断程序是否需要输入,若是则停止运行子进程,接收界面终端的输入数据并根据输入数据发送相应的命令,否则判断程序是否有输出;当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端。本发明实施例通过直接在白名单模块中运行python代码文件获得子进程,并监听终端与操作系统之间的交互进行相应的交互操作,从根源上防止程序运行与控制台交互时被拦截,且无需用户手动将程序添加至白名单,提高了程序运行的兼容性以及用户使用的便利程度。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供防拦截的程序运行与交互控制方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。
Claims (10)
1.一种防拦截的程序运行与交互控制方法,其特征在于,包括如下步骤:
在白名单模块中运行预先编写的python代码文件,获得python的子进程;
判断程序是否需要输入,若是,则停止运行所述子进程,接收界面终端的输入数据并根据所述输入数据发送相应的命令,否则判断程序是否有输出;
当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端。
2.根据权利要求1所述的防拦截的程序运行与交互控制方法,其特征在于,所述在白名单模块中运行预先编写的python代码文件,获得python的子进程,包括:
声明shell类,并在构造函数中初始化终端属性以用于存放python子进程;
接受所述python代码文件的文件路径,调用白名单模块运行所述python代码文件获得python的子进程。
3.根据权利要求1所述防拦截的程序运行与交互控制方法,其特征在于,所述接收界面终端的输入数据并根据所述输入数据发送相应的命令,包括:
接收用户在界面终端输入的输入数据;
对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求;
根据格式化后的输入数据发送相应的命令。
4.根据权利要求3所述的防拦截的程序运行与交互控制方法,其特征在于,所述对所述输入数据进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求,具体包括:
根据预先设置的转义字符配置化接口对所述输入数据进行转义字符识别后进行格式化,使格式化后的输入数据符合当前控制终端的数据格式要求。
5.根据权利要求1所述的防拦截的程序运行与交互控制方法,其特征在于,所述当程序有输出时根据当前子进程触发的事件类型调用相应的处理函数,对输出数据进行数据处理后反馈至界面终端,包括:
判断当前子进程触发的事件类型;
当触发数据事件时调用数据输出处理函数,对所述输出数据进行字符适配后输出至显示终端;
当触发错误事件时调用错误处理函数,根据所述输出数据获取错误信息输出至显示终端并写入错误日志中。
6.根据权利要求2所述的防拦截的程序运行与交互控制方法,其特征在于,所述判断程序是否有输出之后,还包括:
当程序没有输出时判断所述子进程是否结束,若是,则将所述终端属性设置为零退出当前程序,否则继续判断程序是否需要输入。
7.根据权利要求1至6任意一项所述的防拦截的程序运行与交互控制方法,其特征在于,所述白名单模块为child_process模块。
8.一种防拦截的程序运行与交互控制装置,其特征在于,所述装置包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的防拦截的程序运行与交互控制方法。
9.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的防拦截的程序运行与交互控制方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行权利要求1-7任一项所述的防拦截的程序运行与交互控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622042.4A CN112000950B (zh) | 2020-06-30 | 一种防拦截的程序运行与交互控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622042.4A CN112000950B (zh) | 2020-06-30 | 一种防拦截的程序运行与交互控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000950A true CN112000950A (zh) | 2020-11-27 |
CN112000950B CN112000950B (zh) | 2024-10-29 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114828076A (zh) * | 2022-04-19 | 2022-07-29 | 成都极米科技股份有限公司 | 无线感知测量进程管理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080295114A1 (en) * | 2007-05-07 | 2008-11-27 | Pramod Vasant Argade | Method and apparatus for execution control of computer programs |
CN108572866A (zh) * | 2018-04-23 | 2018-09-25 | Oppo广东移动通信有限公司 | 一种应用程序管理方法、应用程序管理装置及移动终端 |
CN109800576A (zh) * | 2018-12-29 | 2019-05-24 | 360企业安全技术(珠海)有限公司 | 未知程序异常请求的监控方法、装置、及电子装置 |
CN110188543A (zh) * | 2019-05-21 | 2019-08-30 | 北京威努特技术有限公司 | 白名单库、白名单程序库更新方法及工控系统 |
CN110750463A (zh) * | 2019-10-29 | 2020-02-04 | 百度在线网络技术(北京)有限公司 | 一种小程序测试方法、装置、系统、设备及介质 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080295114A1 (en) * | 2007-05-07 | 2008-11-27 | Pramod Vasant Argade | Method and apparatus for execution control of computer programs |
CN108572866A (zh) * | 2018-04-23 | 2018-09-25 | Oppo广东移动通信有限公司 | 一种应用程序管理方法、应用程序管理装置及移动终端 |
CN109800576A (zh) * | 2018-12-29 | 2019-05-24 | 360企业安全技术(珠海)有限公司 | 未知程序异常请求的监控方法、装置、及电子装置 |
CN110188543A (zh) * | 2019-05-21 | 2019-08-30 | 北京威努特技术有限公司 | 白名单库、白名单程序库更新方法及工控系统 |
CN110750463A (zh) * | 2019-10-29 | 2020-02-04 | 百度在线网络技术(北京)有限公司 | 一种小程序测试方法、装置、系统、设备及介质 |
Non-Patent Citations (1)
Title |
---|
FENERCHEN: "在node中执行python脚本", pages 1 - 5, Retrieved from the Internet <URL:https://www.jianshu.com/p/b1dc42c152ab> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114828076A (zh) * | 2022-04-19 | 2022-07-29 | 成都极米科技股份有限公司 | 无线感知测量进程管理方法、装置、设备及存储介质 |
CN114828076B (zh) * | 2022-04-19 | 2023-05-02 | 极米科技股份有限公司 | 无线感知测量进程管理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360879B2 (en) | Script debugging method, device, and computer storage medium | |
CN109669873B (zh) | 用户界面自动测试方法及装置、电子设备及存储介质 | |
US8839201B2 (en) | Capturing test data associated with error conditions in software item testing | |
US10067858B2 (en) | Cloud-based software testing | |
US8839202B2 (en) | Test environment managed within tests | |
AU2021206497B2 (en) | Method and apparatus for authority control, computer device and storage medium | |
US8949794B2 (en) | Binding a software item to a plain english control name | |
CN104809045B (zh) | 监控脚本的运行方法及装置 | |
JP5052799B2 (ja) | セマンティクスドリブンダイアログとステートドリブンダイアログとを混在させる開発フレームワーク | |
CN111176629A (zh) | 一种应用开发的方法和装置 | |
US20130067439A1 (en) | Injecting faults into program for testing | |
US10387294B2 (en) | Altering a test | |
CN109857642B (zh) | 一种ui自动化脚本的阻塞式调试方法及调试工具 | |
US9292422B2 (en) | Scheduled software item testing | |
US11687326B2 (en) | Method and apparatus for data interaction | |
CN116627850B (zh) | 函数调试方法、装置、存储介质以及电子设备 | |
CN113127329A (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN112000950A (zh) | 一种防拦截的程序运行与交互控制方法及装置 | |
CN112000950B (zh) | 一种防拦截的程序运行与交互控制方法及装置 | |
CN110134376A (zh) | Html5界面与app界面切换方法、装置、介质和电子设备 | |
US11256479B2 (en) | Dynamic updates in an interactive programming environment | |
US20130117728A1 (en) | Computer program interface | |
CN113778853A (zh) | 应用程序的开发调试方法、装置、电子设备及存储介质 | |
CN113986744A (zh) | 一种分库分表组件的测试方法、装置及存储介质 | |
WO2019134286A1 (zh) | 一种路径检测方法、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |