1 教程
wingsummer edited this page 2022-10-19 10:11:17 +08:00
This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

内容贡献者: 寂静的羽夏


简介

WingToolPy是一个强大的羽云十六进制编辑器插件,它具有对 Python3 脚本的支持,拥有即时交互控制台,使用脚本分析二进制有了可能。本插件支持所有的原生IWingToolPlg的所有接口,于此同时也拥有自己独特的接口以供与插件进行交互。

WingToolPy

WingToolPy

作者 开源协议

协议

  本插件遵守AGPL-3.0,不得用于该协议之外的用途。

使用环境

  本插件首先要正确安装WingTool这个软件。如果通过安装我的发行的包,就不需要继续操作。本插件依赖python3这个包,如果没有安装,你需要在终端输入以下命令进行安装:

sudo apt install python3

开发框架

QT 5.15.3 、 DTK 和 python3

如何编译

  首先你需要安装 DTK ,具体可以参考WingToolWIKI。然后我们需要安装python3的开发包,需要输入以下命令进行安装:

sudo apt install python3-dev

  然后我们就可以正常编译该软件了。

功能介绍

  本插件给脚本支持除插件信息相关的所有原生插件接口,也就是说,除了插件信息相关的API没有提供,其它的均提供了对应的python接口。

API 接口

  与插件接口开发的相关知识请到该页面进行学习 插件开发教程 。与插件API均可以通过service变量进行使用。

控制台

  控制台和Python自带的Shell是一样的,不过它有智能填充的功能,只需要输入几个字符,然后按键盘上的Ctrl + 空格即可显示(截屏截不到示意图)。

脚本编辑器

  该插件业提供了脚本编辑器,它具有语法高亮和智能填充的功能。

  风格图标样式和羽云十六进制编辑器完全一致,深度文本编辑器和羽云十六进制编辑器怎么用,这个就怎么用。下面仅介绍运行脚本的功能。

  • ①:执行该编辑器的输入的脚本,输出会在控制台。
  • ②:从文件外部执行脚本,输出会在控制台。

脚本中心

  本插件提供了脚本中心。编写完脚本,需要编写一个注册文件并用文件夹封装一个包,才可以被该插件识别,就可以在宿主软件托盘中的“脚本中心”中包含,下面我们来介绍如何注册以及相关细节。

注册文件

  注册文件是一个json文件,只要保证脚本名称和该文件的文件名保持一致且都是合法正确的即可正常使用。但是,该插件注册脚本信息时不会检查对应的脚本是否真正存在,这会导致无法找到脚本的执行错误。比如如果注册hello.py,就必须有对应的hello.json文件,里面所有的成员都是可选的。

{
  "author": "wingsummer", 
  "license": "GPL", 
  "commnet": "A useful script!", 
  "version": 1
}

  下面我们来介绍相关成员:

  • author :作者名称,默认为空。
  • license :脚本遵守协议,默认Unlicense
  • commnet :脚本说明,默认为空。
  • version :脚本版本号,默认为0

  脚本和注册文件都准备好了,我们如何注册呢?

  我们需要在脚本文件夹下,即软件安装目录下的plugin下新建一个PyScript文件夹,如果有保留。如果没有类别,我们还需要新建一个文件夹,文件夹的名称就是该脚本的类别。然后我们把这两个文件拷贝到里面,之后下次启动程序,插件被加载成功就会检测并注册。

  举个例子,比如我想注册hello.py,也写好hello.json文件。发现软件安装目录下的plugin没有PyScript文件夹,于是我新建了它;我想把我的脚本放到World类别,我继续在PyScript文件夹下新建名字为World的文件夹。由于脚本是通过所谓的包,也就是文件夹管理,继续新建一个hello文件夹,最后把文件放到里面。这样注册流程就结束了。注:每个脚本注册时必须有对应的包和类别,否则不予识别注册!


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。