.版本 2
.支持库 spec
.程序集 类_微步云沙箱, , 公开
.程序集变量 m_apikey, 文本型, , , API秘钥
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
.子程序 初始化, , 公开
.参数 apikey, 文本型, , 用于标识 API 调用者身份
m_apikey = apikey
.子程序 提交文件, 整数型, 公开, 成功返回 0 必须初始化加入apikey
.参数 文件路径, 文本型
.参数 运行环境, 文本型, 可空, 可空 #运行环境_开头常量 默认win7_sp1_enx86_office2013
.参数 运行时间, 整数型, 可空, 可空 默认120
.参数 返回sha256, 文本型, 参考 可空
.参数 返回报告url, 文本型, 参考 可空
.局部变量 文件名, 文本型
.局部变量 文件, 字节集
.局部变量 url, 文本型
.局部变量 post, 文本型
.局部变量 html, 文本型
.局部变量 JSON, 类_json
.如果真 (是否为空 (运行环境))
运行环境 = #运行环境_win7_sp1_enx86_office2013
.如果真结束
.如果真 (是否为空 (运行时间))
运行时间 = 120
.如果真结束
url = “https://s.threatbook.cn/api/v2/file/upload”
文件名 = 取文本右边 (文件路径, 取文本长度 (文件路径) - 倒找文本 (文件路径, “\”, , 假))
文件 = 读入文件 (文件路径)
post = 子文本替换 (#上传协议, “{文件名}”, 文件名, , , 真)
post = 子文本替换 (post, “{文件}”, 到文本 (文件), , , 真)
post = 子文本替换 (post, “{API秘钥}”, m_apikey, , , 真)
post = 子文本替换 (post, “{运行环境}”, 运行环境, , , 真)
post = 子文本替换 (post, “{运行时间}”, 到文本 (运行时间), , , 真)
html = 到文本 (网页_访问 (url, 1, post, , , #协议头, , , , , , , ))
.如果真 (html = “”)
返回 (-1)
.如果真结束
' 调试输出 (html)
.如果真 (JSON.解析 (html) = 假)
返回 (-2)
.如果真结束
.如果 (JSON.取通用属性 (“response_code”, ) = “0”)
返回sha256 = JSON.取通用属性 (“sha256”, )
返回报告url = JSON.取通用属性 (“permalink”, )
.否则
调试输出 (JSON.取通用属性 (“status”, ), JSON.取通用属性 (“error”, ), JSON.取通用属性 (“message”, )) ' 输出错误代码,错误消息
返回 (-3)
.如果结束
返回 (0)
.子程序 提交文件_备用, 整数型, 公开, 备用方案 无需初始化加入apikey
.参数 文件路径, 文本型
.参数 运行环境, 文本型, 可空, 可空 #运行环境_开头常量 默认win7_sp1_enx86_office2013
.参数 运行时间, 整数型, 可空, 可空 默认120
.参数 返回sha256, 文本型, 参考 可空
.参数 返回报告url, 文本型, 参考 可空
.局部变量 文件名, 文本型
.局部变量 文件, 字节集
.局部变量 url, 文本型
.局部变量 post, 文本型
.局部变量 html, 文本型
.局部变量 JSON, 类_json
.如果真 (是否为空 (运行环境))
运行环境 = #运行环境_win7_sp1_enx86_office2013
.如果真结束
.如果真 (是否为空 (运行时间))
运行时间 = 120
.如果真结束
url = “https://s.threatbook.cn/api/v3/webpage/submit_file”
文件名 = 取文本右边 (文件路径, 取文本长度 (文件路径) - 倒找文本 (文件路径, “\”, , 假))
文件 = 读入文件 (文件路径)
post = 子文本替换 (#上传协议2, “{文件名}”, 文件名, , , 真)
post = 子文本替换 (post, “{文件}”, 到文本 (文件), , , 真)
post = 子文本替换 (post, “{运行环境}”, 运行环境, , , 真)
post = 子文本替换 (post, “{运行时间}”, 到文本 (运行时间), , , 真)
html = 到文本 (网页_访问 (url, 1, post, , , #协议头2, , , , , , , ))
.如果真 (html = “”)
返回 (-1)
.如果真结束
调试输出 (html)
.如果真 (JSON.解析 (html) = 假)
返回 (-2)
.如果真结束
.如果 (JSON.取通用属性 (“response_code”, ) = “0”)
返回sha256 = JSON.取通用属性 (“sha256”, )
返回报告url = JSON.取通用属性 (“permalink”, )
.否则
调试输出 (JSON.取通用属性 (“status”, ), JSON.取通用属性 (“error”, ), JSON.取通用属性 (“message”, )) ' 输出错误代码,错误消息
返回 (-3)
.如果结束
返回 (0)
.子程序 获取分析报告, 文本型, 公开, 成功返回报告文本
.参数 sha256, 文本型
.参数 运行环境, 文本型, 可空, 可空 #运行环境_开头常量 获取指定运行环境报告,默认win7_sp1_enx86_office2013
.参数 报告内容, 文本型, 可空, 可空 #报告内容_开头常量 获取指定报告内容,默认获取全部报告(网站API不完善,无法单独获取相关报告,留空)
.局部变量 url, 文本型
.局部变量 get, 文本型
.局部变量 html, 文本型
.局部变量 JSON, 类_json
.如果真 (是否为空 (运行环境))
运行环境 = #运行环境_win7_sp1_enx86_office2013
.如果真结束
.判断开始 (报告内容 = “”)
url = “https://s.threatbook.cn/api/v2/file/report?”
.判断 (报告内容 = #报告内容_基本信息)
url = “https://s.threatbook.cn/api/v2/file/report/summary?”
.判断 (报告内容 = #报告内容_网络行为)
url = “https://s.threatbook.cn/api/v2/file/report/network?”
.判断 (报告内容 = #报告内容_行为签名)
url = “https://s.threatbook.cn/api/v2/file/report/signature?”
.判断 (报告内容 = #报告内容_静态信息)
url = “https://s.threatbook.cn/api/v2/file/report/static?”
.判断 (报告内容 = #报告内容_释放文件)
url = “https://s.threatbook.cn/api/v2/file/report/dropped?”
.判断 (报告内容 = #报告内容_进程详情)
url = “https://s.threatbook.cn/api/v2/file/report/pstree?”
.判断 (报告内容 = #报告内容_多引擎检查)
url = “https://s.threatbook.cn/api/v3/file/report/multiengines?”
.默认
url = “https://s.threatbook.cn/api/v2/file/report?”
.判断结束
get = “apikey=” + m_apikey + “&sha256=” + sha256 + “&sandbox_type=” + 运行环境
html = 到文本 (网页_访问 (url + get))
.如果真 (html = “”)
返回 (“”)
.如果真结束
' 调试输出 (html)
.如果真 (JSON.解析 (html) = 假)
返回 (“”)
.如果真结束
.如果 (JSON.取通用属性 (“response_code”, ) = “0”)
返回 (JSON.取通用属性 (“data”, 真))
.否则
调试输出 (“错误信息:” + JSON.取通用属性 (“msg”, )) ' 输出错误消息
' IN_PROGRESS = 文件分析中..
' NO_REPORT_FOUND = 找不到报告
' NO_MULTI_ENGINES_DATA = 无多引擎数据
' X_VERIFY_FAILED = API Key 验证失败
' API_KEY_ERROR = API KEY 错误
' NO_MULTI_ENGINES_DATA = 没有反病毒扫描引擎检测数据
' PARAM_ERROR = 参数错误
' NO_REPORT_FOUND = 未发现报告
' SYSTEM_ERROR = 系统错误
' FREQUENT_OPERATION = 超出请求频率
' BEYOND_ACCESS_LIMITATION = 超出请求限制
返回 (“”)
.如果结束
微步云沙箱
微步云沙箱怎么使用
微步云沙箱文件下载