Documentation
¶
Index ¶
- Constants
- Variables
- func BindYakitPluginContextToEngine(nIns *antlr4yak.Engine, pluginContext *YakitPluginContext)
- func CallYakitPluginFunc(scriptName string, hookName string) (interface{}, error)
- func ClearHelper(helper *yakdoc.DocumentHelper)
- func DefaultAfterRequestCallArgumentHook(name string, numIn int, args []any) []any
- func DefaultBeforeRequestCallArgumentHook(name string, numIn int, args []any) []any
- func DocumentHelperWithVerboseInfo(funcMap map[string]any) *yakdoc.DocumentHelper
- func EngineToDocumentHelperWithVerboseInfo(engine *antlr4yak.Engine) *yakdoc.DocumentHelper
- func EngineToLibDocuments(engine *antlr4yak.Engine) []yakdocument.LibDoc
- func Execute(code string, params ...map[string]any) (*antlr4yak.Engine, error)
- func FeedbackFactory(db *gorm.DB, caller func(result *ypb.ExecResult) error, saveToDb bool, ...) func(i interface{}, items ...interface{})
- func Fuzz_WithHotPatch(ctx context.Context, code string) mutate.FuzzConfigOpt
- func GetDeprecatedFunctionDecls(helper *yakdoc.DocumentHelper) []*yakdoc.DeprecateFunction
- func GetHookCliApp(tempArg []string) *cli.CliApp
- func GetInterfaceDocumentFromAST(pkg *ast.Package, interfaceName string) map[string]string
- func GetMethodFuncDeclFromAST(pkg *ast.Package, libName, structName, methodName, yakFuncName string, ...) *yakdoc.FuncDecl
- func ImportVarFromFile(file string, exportsName string) (interface{}, error)
- func ImportVarFromScript(engine *antlr4yak.Engine, script string, exportsName string) (interface{}, error)
- func ImportVarFromYakFile(path string, exportsName string) (interface{}, error)
- func InitYaklangLib()
- func IsSameTypeName(typName1, typName2 string) bool
- func LoadingVariableFrom(path string, exportsName string, opts ...yakEvalConfigOpt) ([]*yakVariable, error)
- func MutateHookCaller(ctx context.Context, raw string, caller YakitCallerIf, ...) (func(https bool, originReq []byte, req []byte) []byte, ...)
- func MutateWithParamsGetter(raw string) func() *mutate.RegexpMutateCondition
- func MutateWithYaklang(raw string) *mutate.RegexpMutateCondition
- func NewFetchFuncFromSrcCodeConfig() *fetchFuncFromSrcCodeConfig
- func NewYakitFetchFuncFromSrcCodeConfig() *fetchFuncFromSrcCodeConfig
- func QuickEvalWithoutContext(i interface{}) error
- func SetNaslExports(lib map[string]interface{})
- func StaticAnalyze(code string, opts ...StaticAnalyzeOption) []*result.StaticAnalyzeResult
- func WithFetchCallArgumentHook(name string, hook callArgumentHookFunc) fetchFuncFromSrcCodeOptions
- func WithFetchCode(code string) fetchFuncFromSrcCodeOptions
- func WithFetchEngineHook(hook func(e *antlr4yak.Engine) error) fetchFuncFromSrcCodeOptions
- func WithFetchFunctionNames(names ...string) fetchFuncFromSrcCodeOptions
- func WithFetchScript(script *schema.YakScript) fetchFuncFromSrcCodeOptions
- type CallConfig
- type CallOpt
- func WithCallConfigCallback(callback func()) CallOpt
- func WithCallConfigForceSync(forceSync bool) CallOpt
- func WithCallConfigItemFuncs(itemFuncs ...func() interface{}) CallOpt
- func WithCallConfigItems(items ...interface{}) CallOpt
- func WithCallConfigPluginId(pluginId string) CallOpt
- func WithCallConfigRuntimeCtx(ctx context.Context) CallOpt
- type Caller
- type CallerHookDescription
- type CallerHooks
- type EmbedFieldTypeAndMethod
- type InstanceMethodHandler
- type LibFuncWithFrameType
- type MixPluginCaller
- func (m *MixPluginCaller) CallAfterRequestWithCtx(runtimeCtx context.Context, isHttps bool, u string, originReq, req []byte, ...) []byte
- func (m *MixPluginCaller) CallBeforeRequestWithCtx(runtimeCtx context.Context, isHttps bool, u string, originReq, req []byte) []byte
- func (m *MixPluginCaller) CallHijackRequest(isHttps bool, u string, getRequest func() interface{}, ...)
- func (m *MixPluginCaller) CallHijackRequestWithCtx(runtimeCtx context.Context, isHttps bool, u string, ...)
- func (m *MixPluginCaller) CallHijackResponse(isHttps bool, u string, getResponse, reject, drop func() interface{})
- func (m *MixPluginCaller) CallHijackResponseEx(isHttps bool, u string, ...)
- func (m *MixPluginCaller) CallHijackResponseExWithCtx(runtimeCtx context.Context, isHttps bool, u string, ...)
- func (m *MixPluginCaller) CallHijackResponseWithCtx(runtimeCtx context.Context, isHttps bool, u string, ...)
- func (c *MixPluginCaller) FeedbackOrdinary(i interface{})
- func (m *MixPluginCaller) GetFingerprintMatcher() *fp.Matcher
- func (m *MixPluginCaller) GetNativeCaller() *YakToCallerManager
- func (m *MixPluginCaller) HandleServiceScanResult(r *fp.MatchResult)
- func (m *MixPluginCaller) HijackSaveHTTPFlow(flow *schema.HTTPFlow, reject func(httpFlow *schema.HTTPFlow), drop func())
- func (m *MixPluginCaller) HijackSaveHTTPFlowEx(runtimeCtx context.Context, flow *schema.HTTPFlow, callback func(), ...)
- func (c *MixPluginCaller) IsPassed(target string) bool
- func (m *MixPluginCaller) LastErr() error
- func (c *MixPluginCaller) LoadHotPatch(ctx context.Context, params []*ypb.ExecParamItem, code string) error
- func (m *MixPluginCaller) LoadPlugin(scriptName string, params ...*ypb.ExecParamItem) error
- func (m *MixPluginCaller) LoadPluginByName(ctx context.Context, name string, params []*ypb.ExecParamItem, codes ...string) error
- func (m *MixPluginCaller) LoadPluginEx(ctx context.Context, script *schema.YakScript, params ...*ypb.ExecParamItem) error
- func (m *MixPluginCaller) MirrorHTTPFlow(isHttps bool, u string, req, rsp, body []byte, filters ...bool)
- func (m *MixPluginCaller) MirrorHTTPFlowEx(scanPort bool, isHttps bool, u string, req, rsp, body []byte, filters ...bool)
- func (m *MixPluginCaller) MirrorHTTPFlowExSync(scanPort bool, isHttps bool, u string, req, rsp, body []byte, filters ...bool)
- func (m *MixPluginCaller) MirrorHTTPFlowWithCtx(runtimeCtx context.Context, isHttps bool, u string, req, rsp, body []byte, ...)
- func (c *MixPluginCaller) ResetFilter()
- func (m *MixPluginCaller) SetCache(b bool)
- func (c *MixPluginCaller) SetCallPluginTimeout(i float64)
- func (c *MixPluginCaller) SetConcurrent(i int) error
- func (m *MixPluginCaller) SetCtx(ctx context.Context)
- func (m *MixPluginCaller) SetDividedContext(b bool)
- func (m *MixPluginCaller) SetFeedback(i func(i *ypb.ExecResult) error)
- func (c *MixPluginCaller) SetLoadPluginTimeout(i float64)
- func (m *MixPluginCaller) SetProxy(s string)
- func (m *MixPluginCaller) SetRuntimeId(s string)
- func (c *MixPluginCaller) Wait()
- type PalmScriptEngineHelper
- type PalmScriptLib
- type PalmScriptLibFunc
- type PalmScriptLibInstance
- type Sandbox
- type SandboxConfig
- type SandboxOption
- type ScriptEngine
- func (e *ScriptEngine) Compile(code string) ([]byte, error)
- func (e *ScriptEngine) Execute(code string) error
- func (e *ScriptEngine) ExecuteEx(code string, params map[string]interface{}) (*antlr4yak.Engine, error)
- func (e *ScriptEngine) ExecuteExWithContext(ctx context.Context, code string, params map[string]interface{}) (_ *antlr4yak.Engine, fErr error)
- func (e *ScriptEngine) ExecuteMain(code string, AbsFile string) error
- func (e *ScriptEngine) ExecuteMainWithContext(ctx context.Context, code string, AbsFile string) error
- func (e *ScriptEngine) ExecuteWithContext(ctx context.Context, code string) error
- func (e *ScriptEngine) ExecuteWithTaskID(taskId, code string) error
- func (e *ScriptEngine) ExecuteWithTaskIDAndContext(ctx context.Context, taskId, code string) error
- func (e *ScriptEngine) ExecuteWithTaskIDAndParams(ctx context.Context, taskId, code string, params map[string]interface{}) error
- func (e *ScriptEngine) ExecuteWithTemplate(codeTmp string, i map[string][]string) error
- func (e *ScriptEngine) ExecuteWithoutCache(code string, params map[string]interface{}) (*antlr4yak.Engine, error)
- func (s *ScriptEngine) GetTaskByTaskID(id string) (*Task, error)
- func (e *ScriptEngine) HookOsExit()
- func (e *ScriptEngine) RegisterEngineHooks(f func(engine *antlr4yak.Engine) error)
- func (s *ScriptEngine) SaveTask(task *Task) error
- func (s *ScriptEngine) SetCryptoKey(key []byte) error
- func (s *ScriptEngine) SetDebug(debug bool)
- func (s *ScriptEngine) SetDebugCallback(callback func(*yakvm.Debugger))
- func (s *ScriptEngine) SetDebugInit(callback func(*yakvm.Debugger))
- func (e *ScriptEngine) SetYakitClient(client *yaklib.YakitClient)
- func (s *ScriptEngine) Status() map[string]*Task
- type StaticAnalyzeConfig
- type StaticAnalyzeOption
- type Task
- type TextHandlingScript
- type TextParser
- type YakFunctionCaller
- type YakToCallerManager
- func (y *YakToCallerManager) Add(ctx context.Context, script *schema.YakScript, paramMap map[string]any, ...) (retError error)
- func (y *YakToCallerManager) AddForYakit(ctx context.Context, script *schema.YakScript, paramMap map[string]any, ...) error
- func (y *YakToCallerManager) AddGoNative(id string, name string, cb func(...interface{}))
- func (y *YakToCallerManager) Call(name string, opts ...CallOpt) (results []any)
- func (y *YakToCallerManager) CallByName(name string, items ...interface{})
- func (y *YakToCallerManager) CallByNameExSync(name string, items ...func() interface{})
- func (y *YakToCallerManager) CallByNameSync(name string, items ...interface{})
- func (y *YakToCallerManager) CallByNameWithCallback(name string, callback func(), items ...interface{})
- func (y *YakToCallerManager) CallPluginKeyByName(pluginId string, name string, items ...interface{})
- func (y *YakToCallerManager) CallPluginKeyByNameEx(pluginId string, name string, callback func(), ...)
- func (y *YakToCallerManager) CallPluginKeyByNameExWithAsync(runtimeCtx context.Context, forceSync bool, pluginId string, name string, ...)
- func (y *YakToCallerManager) CallPluginKeyByNameSyncWithCallback(pluginId string, name string, callback func(), items ...interface{})
- func (y *YakToCallerManager) CallPluginKeyByNameWithCallback(pluginId string, name string, callback func(), items ...interface{})
- func (y *YakToCallerManager) GetCurrentHooks() []*CallerHooks
- func (y *YakToCallerManager) GetCurrentHooksGRPCModel() []*ypb.YakScriptHooks
- func (c *YakToCallerManager) GetWaitingEventCount() int
- func (y *YakToCallerManager) LoadPlugin(t string, hooks ...string) error
- func (y *YakToCallerManager) LoadPluginContext(ctx context.Context, t string, hooks ...string) error
- func (y *YakToCallerManager) Remove(params *ypb.RemoveHookParams)
- func (y *YakToCallerManager) Set(ctx context.Context, code string, paramMap map[string]any, ...) (retError error)
- func (c *YakToCallerManager) SetCallPluginTimeout(i float64)
- func (m *YakToCallerManager) SetConcurrent(i int) error
- func (y *YakToCallerManager) SetDividedContext(b bool)
- func (y *YakToCallerManager) SetForYakit(ctx context.Context, code string, paramMap map[string]any, ...) error
- func (c *YakToCallerManager) SetLoadPluginTimeout(i float64)
- func (y *YakToCallerManager) ShouldCallByName(name string, callbacks ...func()) (ret bool)
- func (y *YakToCallerManager) SyncCallPluginKeyByNameEx(pluginId string, name string, callback func(), ...)
- func (y *YakToCallerManager) Wait()
- func (y *YakToCallerManager) WithVulFilter(filter filter.Filterable) *YakToCallerManager
- type YakitCallerIf
- type YakitPluginContext
- func (y *YakitPluginContext) WithCliApp(cliApp *cli.CliApp) *YakitPluginContext
- func (y *YakitPluginContext) WithContext(ctx context.Context) *YakitPluginContext
- func (y *YakitPluginContext) WithContextCancel(cancel context.CancelFunc) *YakitPluginContext
- func (y *YakitPluginContext) WithPluginName(id string) *YakitPluginContext
- func (y *YakitPluginContext) WithPluginUUID(uuid string) *YakitPluginContext
- func (y *YakitPluginContext) WithProxy(proxy string) *YakitPluginContext
- func (y *YakitPluginContext) WithVulFilter(filter filter.Filterable) *YakitPluginContext
- func (y *YakitPluginContext) WithYakitClient(yakitClient *yaklib.YakitClient) *YakitPluginContext
Constants ¶
View Source
const ( // func mirrorHTTPFlow(isHttps, url, request, response, body) // mirror hijacked by filtered http flows HOOK_MirrorFilteredHTTPFlow = "mirrorFilteredHTTPFlow" // func mirrorHTTPFlow(isHttps, url, request, response, body) // mirror hijacked all HOOK_MirrorHTTPFlow = "mirrorHTTPFlow" // func mirrorNewWebsite(isHttps, url, request, response, body) HOOK_MirrorNewWebsite = "mirrorNewWebsite" // schema + addr // func mirrorNewWebsitePath(isHttps, url, request, response, body) HOOK_MirrorNewWebsitePath = "mirrorNewWebsitePath" // schema + addr + path (remove params) // func mirrorNewWebsitePathParams(isHttps, url, request, response, body) HOOK_MirrorNewWebsitePathParams = "mirrorNewWebsitePathParams" // schema + addr + path + param_names // func hijackHTTPRequest(isHttps, url, request, forward/*func(modified []byte)*/, drop /*func()*/) HOOK_HijackHTTPRequest = "hijackHTTPRequest" // func hijackHTTPRequest(isHttps, url, response, forward/*func(modified []byte)*/, drop /*func()*/) HOOK_HijackHTTPResponse = "hijackHTTPResponse" // func hijackHTTPRequest(isHttps, url, request, response, forward/*func(modified []byte)*/, drop /*func()*/) HOOK_HijackHTTPResponseEx = "hijackHTTPResponseEx" // func hijackSaveHTTPFlow(record *httpFlow, forward func(*httpFlow), drop func()) return (*httpFlow) HOOK_hijackSaveHTTPFlow = "hijackSaveHTTPFlow" // func handle(r *fp.MatchResult) HOOK_PortScanHandle = "handle" // func execNuclei(target) HOOK_NucleiScanHandle = "execNuclei" HOOK_NaslScanHandle = "execNasl" HOOK_LoadNaslScriptByNameFunc = "loadNaslScriptByNameFunc" // beforeRequest, afterRequest HOOK_BeforeRequest = "beforeRequest" HOOK_AfterRequest = "afterRequest" HOOK_CLAER = "clear" )
Variables ¶
View Source
var ( MITMAndPortScanHooks = []string{ HOOK_MirrorFilteredHTTPFlow, HOOK_MirrorHTTPFlow, HOOK_MirrorNewWebsite, HOOK_MirrorNewWebsitePath, HOOK_MirrorNewWebsitePathParams, HOOK_CLAER, HOOK_HijackHTTPRequest, HOOK_HijackHTTPResponse, HOOK_HijackHTTPResponseEx, HOOK_hijackSaveHTTPFlow, HOOK_PortScanHandle, HOOK_BeforeRequest, HOOK_AfterRequest, } HotPatchScriptName = "@HotPatchCode" )
View Source
var (
CRYPTO_KEY_SIZE = 16
)
View Source
var EvalExports = map[string]interface{}{ "Eval": QuickEvalWithoutContext, "LoadVarFromFile": LoadingVariableFrom, "Import": ImportVarFromFile, "IsYakFunc": yaklib.IsYakFunction, "params": setYakEvalParams, "recursive": setYakBatchImportRecursiveParams, }
View Source
var GlobalEvalExports = map[string]interface{}{ "import": ImportVarFromFile, }
View Source
var HooksExports = map[string]interface{}{ "NewManager": NewYakToCallerManager, "NewMixPluginCaller": NewMixPluginCaller, "NewMixPluginCallerWithFilter": NewMixPluginCallerWithFilter, "RemoveYakitPluginByName": removeScriptByNameCtx, "LoadYakitPluginContext": loadScriptCtx, "LoadYakitPlugin": loadScript, "LoadYakitPluginByName": loadScriptByName, "CallYakitPluginFunc": CallYakitPluginFunc, }
View Source
var SandboxExports = map[string]any{ "Create": NewSandbox, "library": WithSandbox_ExternalLib, }
View Source
var YAK_TEMPLATE_NUCLEI_EXECUTOR string
Functions ¶
func BindYakitPluginContextToEngine ¶
func BindYakitPluginContextToEngine(nIns *antlr4yak.Engine, pluginContext *YakitPluginContext)
func CallYakitPluginFunc ¶
func ClearHelper ¶
func ClearHelper(helper *yakdoc.DocumentHelper)
func DocumentHelperWithVerboseInfo ¶
func DocumentHelperWithVerboseInfo(funcMap map[string]any) *yakdoc.DocumentHelper
func EngineToDocumentHelperWithVerboseInfo ¶
func EngineToDocumentHelperWithVerboseInfo(engine *antlr4yak.Engine) *yakdoc.DocumentHelper
func EngineToLibDocuments ¶
func EngineToLibDocuments(engine *antlr4yak.Engine) []yakdocument.LibDoc
! 老接口
func FeedbackFactory ¶
func Fuzz_WithHotPatch ¶
func Fuzz_WithHotPatch(ctx context.Context, code string) mutate.FuzzConfigOpt
func GetDeprecatedFunctionDecls ¶
func GetDeprecatedFunctionDecls(helper *yakdoc.DocumentHelper) []*yakdoc.DeprecateFunction
func GetHookCliApp ¶
func ImportVarFromFile ¶
func ImportVarFromScript ¶
func ImportVarFromYakFile ¶
func InitYaklangLib ¶
func InitYaklangLib()
func IsSameTypeName ¶
func LoadingVariableFrom ¶
func MutateHookCaller ¶
func MutateHookCaller(ctx context.Context, raw string, caller YakitCallerIf, params ...*ypb.ExecParamItem) (func(https bool, originReq []byte, req []byte) []byte, func(https bool, originReq []byte, req []byte, originRsp []byte, rsp []byte) []byte, func([]byte, []byte, map[string]string) map[string]string)
func MutateWithParamsGetter ¶
func MutateWithParamsGetter(raw string) func() *mutate.RegexpMutateCondition
func MutateWithYaklang ¶
func MutateWithYaklang(raw string) *mutate.RegexpMutateCondition
func NewFetchFuncFromSrcCodeConfig ¶
func NewFetchFuncFromSrcCodeConfig() *fetchFuncFromSrcCodeConfig
func NewYakitFetchFuncFromSrcCodeConfig ¶
func NewYakitFetchFuncFromSrcCodeConfig() *fetchFuncFromSrcCodeConfig
func QuickEvalWithoutContext ¶
func QuickEvalWithoutContext(i interface{}) error
func SetNaslExports ¶
func SetNaslExports(lib map[string]interface{})
func StaticAnalyze ¶
func StaticAnalyze(code string, opts ...StaticAnalyzeOption) []*result.StaticAnalyzeResult
func WithFetchCallArgumentHook ¶
func WithFetchCallArgumentHook(name string, hook callArgumentHookFunc) fetchFuncFromSrcCodeOptions
func WithFetchCode ¶
func WithFetchCode(code string) fetchFuncFromSrcCodeOptions
func WithFetchEngineHook ¶
func WithFetchFunctionNames ¶
func WithFetchFunctionNames(names ...string) fetchFuncFromSrcCodeOptions
func WithFetchScript ¶
Types ¶
type CallConfig ¶
type CallConfig struct {
// contains filtered or unexported fields
}
func NewCallConfig ¶
func NewCallConfig() *CallConfig
type CallOpt ¶
type CallOpt func(*CallConfig)
func WithCallConfigCallback ¶
func WithCallConfigCallback(callback func()) CallOpt
func WithCallConfigForceSync ¶
func WithCallConfigItemFuncs ¶
func WithCallConfigItemFuncs(itemFuncs ...func() interface{}) CallOpt
func WithCallConfigItems ¶
func WithCallConfigItems(items ...interface{}) CallOpt
func WithCallConfigPluginId ¶
type CallerHookDescription ¶
type CallerHooks ¶
type CallerHooks struct {
HookName string
Hooks []*CallerHookDescription
}
type EmbedFieldTypeAndMethod ¶
type InstanceMethodHandler ¶
type InstanceMethodHandler struct {
// contains filtered or unexported fields
}
type LibFuncWithFrameType ¶
type MixPluginCaller ¶
type MixPluginCaller struct {
// contains filtered or unexported fields
}
func NewMixPluginCaller ¶
func NewMixPluginCaller() (*MixPluginCaller, error)
func NewMixPluginCallerWithFilter ¶
func NewMixPluginCallerWithFilter(webFilter filter.Filterable) (*MixPluginCaller, error)
func (*MixPluginCaller) CallAfterRequestWithCtx ¶
func (*MixPluginCaller) CallBeforeRequestWithCtx ¶
func (*MixPluginCaller) CallHijackRequest ¶
func (m *MixPluginCaller) CallHijackRequest( isHttps bool, u string, getRequest func() interface{}, reject func() interface{}, drop func() interface{}, )
func (*MixPluginCaller) CallHijackRequestWithCtx ¶
func (m *MixPluginCaller) CallHijackRequestWithCtx( runtimeCtx context.Context, isHttps bool, u string, getRequest func() interface{}, reject func() interface{}, drop func() interface{}, )
func (*MixPluginCaller) CallHijackResponse ¶
func (m *MixPluginCaller) CallHijackResponse( isHttps bool, u string, getResponse, reject, drop func() interface{}, )
func (*MixPluginCaller) CallHijackResponseEx ¶
func (m *MixPluginCaller) CallHijackResponseEx( isHttps bool, u string, getRequest, getResponse, reject, drop func() interface{}, )
func (*MixPluginCaller) CallHijackResponseExWithCtx ¶
func (m *MixPluginCaller) CallHijackResponseExWithCtx( runtimeCtx context.Context, isHttps bool, u string, getRequest, getResponse, reject, drop func() interface{}, )
func (*MixPluginCaller) CallHijackResponseWithCtx ¶
func (m *MixPluginCaller) CallHijackResponseWithCtx( runtimeCtx context.Context, isHttps bool, u string, getResponse, reject, drop func() interface{}, )
func (*MixPluginCaller) FeedbackOrdinary ¶
func (c *MixPluginCaller) FeedbackOrdinary(i interface{})
func (*MixPluginCaller) GetFingerprintMatcher ¶
func (m *MixPluginCaller) GetFingerprintMatcher() *fp.Matcher
func (*MixPluginCaller) GetNativeCaller ¶
func (m *MixPluginCaller) GetNativeCaller() *YakToCallerManager
func (*MixPluginCaller) HandleServiceScanResult ¶
func (m *MixPluginCaller) HandleServiceScanResult(r *fp.MatchResult)
func (*MixPluginCaller) HijackSaveHTTPFlow ¶
func (m *MixPluginCaller) HijackSaveHTTPFlow(flow *schema.HTTPFlow, reject func(httpFlow *schema.HTTPFlow), drop func())
func (*MixPluginCaller) HijackSaveHTTPFlowEx ¶
func (*MixPluginCaller) IsPassed ¶
func (c *MixPluginCaller) IsPassed(target string) bool
func (*MixPluginCaller) LastErr ¶
func (m *MixPluginCaller) LastErr() error
func (*MixPluginCaller) LoadHotPatch ¶
func (c *MixPluginCaller) LoadHotPatch(ctx context.Context, params []*ypb.ExecParamItem, code string) error
func (*MixPluginCaller) LoadPlugin ¶
func (m *MixPluginCaller) LoadPlugin(scriptName string, params ...*ypb.ExecParamItem) error
func (*MixPluginCaller) LoadPluginByName ¶
func (m *MixPluginCaller) LoadPluginByName(ctx context.Context, name string, params []*ypb.ExecParamItem, codes ...string) error
LoadPluginByName 基于脚本名加载插件,如果没有指定代码,则从数据库中加载,如果指定了代码,则默认视为mitm插件执行
func (*MixPluginCaller) LoadPluginEx ¶
func (m *MixPluginCaller) LoadPluginEx(ctx context.Context, script *schema.YakScript, params ...*ypb.ExecParamItem) error
func (*MixPluginCaller) MirrorHTTPFlow ¶
func (m *MixPluginCaller) MirrorHTTPFlow( isHttps bool, u string, req, rsp, body []byte, filters ...bool, )
func (*MixPluginCaller) MirrorHTTPFlowEx ¶
func (*MixPluginCaller) MirrorHTTPFlowExSync ¶
func (*MixPluginCaller) MirrorHTTPFlowWithCtx ¶
func (*MixPluginCaller) ResetFilter ¶
func (c *MixPluginCaller) ResetFilter()
func (*MixPluginCaller) SetCache ¶
func (m *MixPluginCaller) SetCache(b bool)
func (*MixPluginCaller) SetCallPluginTimeout ¶
func (c *MixPluginCaller) SetCallPluginTimeout(i float64)
func (*MixPluginCaller) SetConcurrent ¶
func (c *MixPluginCaller) SetConcurrent(i int) error
func (*MixPluginCaller) SetCtx ¶
func (m *MixPluginCaller) SetCtx(ctx context.Context)
func (*MixPluginCaller) SetDividedContext ¶
func (m *MixPluginCaller) SetDividedContext(b bool)
func (*MixPluginCaller) SetFeedback ¶
func (m *MixPluginCaller) SetFeedback(i func(i *ypb.ExecResult) error)
func (*MixPluginCaller) SetLoadPluginTimeout ¶
func (c *MixPluginCaller) SetLoadPluginTimeout(i float64)
func (*MixPluginCaller) SetProxy ¶
func (m *MixPluginCaller) SetProxy(s string)
func (*MixPluginCaller) SetRuntimeId ¶
func (m *MixPluginCaller) SetRuntimeId(s string)
func (*MixPluginCaller) Wait ¶
func (c *MixPluginCaller) Wait()
type PalmScriptEngineHelper ¶
type PalmScriptEngineHelper struct {
Libs map[string]*PalmScriptLib
BuildInFunctions map[string]*PalmScriptLibFunc
UserFunctions map[string]*PalmScriptLibFunc
Instances map[string]*PalmScriptLibInstance
}
func EngineToHelper ¶
func EngineToHelper(engine *antlr4yak.Engine) *PalmScriptEngineHelper
func (*PalmScriptEngineHelper) GetAllLibs ¶
func (p *PalmScriptEngineHelper) GetAllLibs() []string
func (*PalmScriptEngineHelper) HelpInfo ¶
func (p *PalmScriptEngineHelper) HelpInfo() string
func (*PalmScriptEngineHelper) LibHelpInfo ¶
func (p *PalmScriptEngineHelper) LibHelpInfo(name string) string
func (*PalmScriptEngineHelper) ShowHelpInfo ¶
func (p *PalmScriptEngineHelper) ShowHelpInfo()
func (*PalmScriptEngineHelper) ShowLibHelpInfo ¶
func (p *PalmScriptEngineHelper) ShowLibHelpInfo(name string)
type PalmScriptLib ¶
type PalmScriptLib struct {
Name string
Values map[string]interface{}
ElementDocs []string
FuncElements []*PalmScriptLibFunc
InstanceElements []*PalmScriptLibInstance
}
func (*PalmScriptLib) String ¶
func (p *PalmScriptLib) String() string
type PalmScriptLibFunc ¶
func (*PalmScriptLibFunc) String ¶
func (p *PalmScriptLibFunc) String() string
type PalmScriptLibInstance ¶
type PalmScriptLibInstance struct {
LibName string
InstanceName string
Type string
Value interface{}
}
func (*PalmScriptLibInstance) String ¶
func (p *PalmScriptLibInstance) String() string
type Sandbox ¶
type Sandbox struct {
// contains filtered or unexported fields
}
func NewSandbox ¶
func NewSandbox(opts ...SandboxOption) *Sandbox
func (*Sandbox) ExecuteAsBoolean ¶
func (*Sandbox) ExecuteAsExpression ¶
type SandboxConfig ¶
type SandboxConfig struct {
// contains filtered or unexported fields
}
type SandboxOption ¶
type SandboxOption func(*SandboxConfig)
func WithSandbox_ExternalLib ¶
func WithSandbox_ExternalLib(lib map[string]any) SandboxOption
func WithYaklang_Libs ¶
func WithYaklang_Libs(b bool) SandboxOption
type ScriptEngine ¶
type ScriptEngine struct {
// 设定几个 hook
RegisterLogHook yaklib.RegisterOutputFuncType
UnregisterLogHook yaklib.UnregisterOutputFuncType
RegisterLogConsoleHook yaklib.RegisterOutputFuncType
UnregisterLogConsoleHook yaklib.UnregisterOutputFuncType
RegisterOutputHook yaklib.RegisterOutputFuncType
UnregisterOutputHook yaklib.UnregisterOutputFuncType
RegisterFailedHook yaklib.RegisterOutputFuncType
UnregisterFailedHook yaklib.UnregisterOutputFuncType
RegisterFinishHook yaklib.RegisterOutputFuncType
UnregisterFinishHook yaklib.UnregisterOutputFuncType
RegisterAlertHook yaklib.RegisterOutputFuncType
UnregisterAlertHook yaklib.UnregisterOutputFuncType
// contains filtered or unexported fields
}
func NewScriptEngine ¶
func NewScriptEngine(maxConcurrent int) *ScriptEngine
func NewYakitVirtualClientScriptEngine ¶
func NewYakitVirtualClientScriptEngine(client *yaklib.YakitClient) *ScriptEngine
func (*ScriptEngine) Execute ¶
func (e *ScriptEngine) Execute(code string) error
func (*ScriptEngine) ExecuteExWithContext ¶
func (*ScriptEngine) ExecuteMain ¶
func (e *ScriptEngine) ExecuteMain(code string, AbsFile string) error
func (*ScriptEngine) ExecuteMainWithContext ¶
func (*ScriptEngine) ExecuteWithContext ¶
func (e *ScriptEngine) ExecuteWithContext(ctx context.Context, code string) error
func (*ScriptEngine) ExecuteWithTaskID ¶
func (e *ScriptEngine) ExecuteWithTaskID(taskId, code string) error
func (*ScriptEngine) ExecuteWithTaskIDAndContext ¶
func (e *ScriptEngine) ExecuteWithTaskIDAndContext(ctx context.Context, taskId, code string) error
func (*ScriptEngine) ExecuteWithTaskIDAndParams ¶
func (*ScriptEngine) ExecuteWithTemplate ¶
func (e *ScriptEngine) ExecuteWithTemplate(codeTmp string, i map[string][]string) error
func (*ScriptEngine) ExecuteWithoutCache ¶
func (*ScriptEngine) GetTaskByTaskID ¶
func (s *ScriptEngine) GetTaskByTaskID(id string) (*Task, error)
func (*ScriptEngine) HookOsExit ¶
func (e *ScriptEngine) HookOsExit()
func (*ScriptEngine) RegisterEngineHooks ¶
func (e *ScriptEngine) RegisterEngineHooks(f func(engine *antlr4yak.Engine) error)
func (*ScriptEngine) SaveTask ¶
func (s *ScriptEngine) SaveTask(task *Task) error
func (*ScriptEngine) SetCryptoKey ¶
func (s *ScriptEngine) SetCryptoKey(key []byte) error
func (*ScriptEngine) SetDebug ¶
func (s *ScriptEngine) SetDebug(debug bool)
func (*ScriptEngine) SetDebugCallback ¶
func (s *ScriptEngine) SetDebugCallback(callback func(*yakvm.Debugger))
func (*ScriptEngine) SetDebugInit ¶
func (s *ScriptEngine) SetDebugInit(callback func(*yakvm.Debugger))
func (*ScriptEngine) SetYakitClient ¶
func (e *ScriptEngine) SetYakitClient(client *yaklib.YakitClient)
func (*ScriptEngine) Status ¶
func (s *ScriptEngine) Status() map[string]*Task
type StaticAnalyzeConfig ¶
type StaticAnalyzeConfig struct {
// contains filtered or unexported fields
}
func NewStaticAnalyzeConfig ¶
func NewStaticAnalyzeConfig() *StaticAnalyzeConfig
type StaticAnalyzeOption ¶
type StaticAnalyzeOption func(*StaticAnalyzeConfig)
func WithStaticAnalyzeKindAnalyze ¶
func WithStaticAnalyzeKindAnalyze() StaticAnalyzeOption
func WithStaticAnalyzeKindScore ¶
func WithStaticAnalyzeKindScore() StaticAnalyzeOption
func WithStaticAnalyzePluginType ¶
func WithStaticAnalyzePluginType(typ string) StaticAnalyzeOption
type Task ¶
type Task struct {
TaskID string
Code string
Output []string
Log []string
Alert []string
Finished []string
Failed []string
// contains filtered or unexported fields
}
func (*Task) IsFinished ¶
type TextHandlingScript ¶
type TextParser ¶
type TextParser struct {
Scripts map[string]*TextHandlingScript
// contains filtered or unexported fields
}
type YakFunctionCaller ¶
type YakToCallerManager ¶
type YakToCallerManager struct {
ContextCancelFuncs *sync.Map
Err error
// contains filtered or unexported fields
}
func NewYakToCallerManager ¶
func NewYakToCallerManager() *YakToCallerManager
func (*YakToCallerManager) AddForYakit ¶
func (*YakToCallerManager) AddGoNative ¶
func (y *YakToCallerManager) AddGoNative(id string, name string, cb func(...interface{}))
deprecated
func (*YakToCallerManager) Call ¶
func (y *YakToCallerManager) Call(name string, opts ...CallOpt) (results []any)
only forceSync can get results
func (*YakToCallerManager) CallByName ¶
func (y *YakToCallerManager) CallByName(name string, items ...interface{})
func (*YakToCallerManager) CallByNameExSync ¶
func (y *YakToCallerManager) CallByNameExSync(name string, items ...func() interface{})
func (*YakToCallerManager) CallByNameSync ¶
func (y *YakToCallerManager) CallByNameSync(name string, items ...interface{})
func (*YakToCallerManager) CallByNameWithCallback ¶
func (y *YakToCallerManager) CallByNameWithCallback(name string, callback func(), items ...interface{})
func (*YakToCallerManager) CallPluginKeyByName ¶
func (y *YakToCallerManager) CallPluginKeyByName(pluginId string, name string, items ...interface{})
func (*YakToCallerManager) CallPluginKeyByNameEx ¶
func (y *YakToCallerManager) CallPluginKeyByNameEx(pluginId string, name string, callback func(), itemsFuncs ...func() interface{})
func (*YakToCallerManager) CallPluginKeyByNameExWithAsync ¶
func (*YakToCallerManager) CallPluginKeyByNameSyncWithCallback ¶
func (y *YakToCallerManager) CallPluginKeyByNameSyncWithCallback(pluginId string, name string, callback func(), items ...interface{})
func (*YakToCallerManager) CallPluginKeyByNameWithCallback ¶
func (y *YakToCallerManager) CallPluginKeyByNameWithCallback(pluginId string, name string, callback func(), items ...interface{})
func (*YakToCallerManager) GetCurrentHooks ¶
func (y *YakToCallerManager) GetCurrentHooks() []*CallerHooks
func (*YakToCallerManager) GetCurrentHooksGRPCModel ¶
func (y *YakToCallerManager) GetCurrentHooksGRPCModel() []*ypb.YakScriptHooks
func (*YakToCallerManager) GetWaitingEventCount ¶
func (c *YakToCallerManager) GetWaitingEventCount() int
func (*YakToCallerManager) LoadPlugin ¶
func (y *YakToCallerManager) LoadPlugin(t string, hooks ...string) error
func (*YakToCallerManager) LoadPluginContext ¶
func (*YakToCallerManager) Remove ¶
func (y *YakToCallerManager) Remove(params *ypb.RemoveHookParams)
func (*YakToCallerManager) SetCallPluginTimeout ¶
func (c *YakToCallerManager) SetCallPluginTimeout(i float64)
func (*YakToCallerManager) SetConcurrent ¶
func (m *YakToCallerManager) SetConcurrent(i int) error
func (*YakToCallerManager) SetDividedContext ¶
func (y *YakToCallerManager) SetDividedContext(b bool)
func (*YakToCallerManager) SetForYakit ¶
func (*YakToCallerManager) SetLoadPluginTimeout ¶
func (c *YakToCallerManager) SetLoadPluginTimeout(i float64)
func (*YakToCallerManager) ShouldCallByName ¶
func (y *YakToCallerManager) ShouldCallByName(name string, callbacks ...func()) (ret bool)
func (*YakToCallerManager) SyncCallPluginKeyByNameEx ¶
func (y *YakToCallerManager) SyncCallPluginKeyByNameEx(pluginId string, name string, callback func(), itemsFuncs ...func() interface{})
func (*YakToCallerManager) Wait ¶
func (y *YakToCallerManager) Wait()
func (*YakToCallerManager) WithVulFilter ¶
func (y *YakToCallerManager) WithVulFilter(filter filter.Filterable) *YakToCallerManager
type YakitCallerIf ¶
type YakitCallerIf func(result *ypb.ExecResult) error
func (YakitCallerIf) Send ¶
func (y YakitCallerIf) Send(i *ypb.ExecResult) error
type YakitPluginContext ¶
type YakitPluginContext struct {
yakit.YakitPluginInfo
Proxy string
Ctx context.Context
CliApp *cli.CliApp
Cancel context.CancelFunc
YakitClient *yaklib.YakitClient
// contains filtered or unexported fields
}
func CreateYakitPluginContext ¶
func CreateYakitPluginContext(runtimeId string) *YakitPluginContext
func (*YakitPluginContext) WithCliApp ¶
func (y *YakitPluginContext) WithCliApp(cliApp *cli.CliApp) *YakitPluginContext
func (*YakitPluginContext) WithContext ¶
func (y *YakitPluginContext) WithContext(ctx context.Context) *YakitPluginContext
func (*YakitPluginContext) WithContextCancel ¶
func (y *YakitPluginContext) WithContextCancel(cancel context.CancelFunc) *YakitPluginContext
func (*YakitPluginContext) WithPluginName ¶
func (y *YakitPluginContext) WithPluginName(id string) *YakitPluginContext
func (*YakitPluginContext) WithPluginUUID ¶
func (y *YakitPluginContext) WithPluginUUID(uuid string) *YakitPluginContext
func (*YakitPluginContext) WithProxy ¶
func (y *YakitPluginContext) WithProxy(proxy string) *YakitPluginContext
func (*YakitPluginContext) WithVulFilter ¶
func (y *YakitPluginContext) WithVulFilter(filter filter.Filterable) *YakitPluginContext
func (*YakitPluginContext) WithYakitClient ¶
func (y *YakitPluginContext) WithYakitClient(yakitClient *yaklib.YakitClient) *YakitPluginContext
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
antlr4JS
|
|
|
antlr4go
|
|
|
cmd
command
|
|
|
yakcmds
Package yakcmds @Author bcy2007 2024/3/12 16:06
|
Package yakcmds @Author bcy2007 2024/3/12 16:06 |
|
java
|
|
|
php
|
|
|
generate_doc
command
|
|
|
generate_web_doc
command
|
|
|
codec/codegrpc/doc
command
|
|
Click to show internal directories.
Click to hide internal directories.