init: fork GFW
This commit is contained in:
@@ -10,7 +10,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris"
|
"git.difuse.io/Difuse/Mellaris"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TLS record types.
|
// TLS record types.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package tcp
|
package tcp
|
||||||
|
|
||||||
import "github.com/DifuseHQ/Mellaris/analyzer"
|
import "git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
|
|
||||||
var _ analyzer.TCPAnalyzer = (*FETAnalyzer)(nil)
|
var _ analyzer.TCPAnalyzer = (*FETAnalyzer)(nil)
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ analyzer.TCPAnalyzer = (*HTTPAnalyzer)(nil)
|
var _ analyzer.TCPAnalyzer = (*HTTPAnalyzer)(nil)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestHTTPParsing_Request(t *testing.T) {
|
func TestHTTPParsing_Request(t *testing.T) {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package tcp
|
|||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package tcp
|
|||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ analyzer.TCPAnalyzer = (*SSHAnalyzer)(nil)
|
var _ analyzer.TCPAnalyzer = (*SSHAnalyzer)(nil)
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package tcp
|
package tcp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/internal"
|
"git.difuse.io/Difuse/Mellaris/analyzer/internal"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ analyzer.TCPAnalyzer = (*TLSAnalyzer)(nil)
|
var _ analyzer.TCPAnalyzer = (*TLSAnalyzer)(nil)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTlsStreamParsing_ClientHello(t *testing.T) {
|
func TestTlsStreamParsing_ClientHello(t *testing.T) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package tcp
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ analyzer.TCPAnalyzer = (*TrojanAnalyzer)(nil)
|
var _ analyzer.TCPAnalyzer = (*TrojanAnalyzer)(nil)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package udp
|
package udp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
|
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
"github.com/google/gopacket/layers"
|
"github.com/google/gopacket/layers"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package udp
|
package udp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package udp
|
package udp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/internal"
|
"git.difuse.io/Difuse/Mellaris/analyzer/internal"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/udp/internal/quic"
|
"git.difuse.io/Difuse/Mellaris/analyzer/udp/internal/quic"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/utils"
|
"git.difuse.io/Difuse/Mellaris/analyzer/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestQuicStreamParsing_ClientHello(t *testing.T) {
|
func TestQuicStreamParsing_ClientHello(t *testing.T) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
10
app.go
10
app.go
@@ -5,11 +5,11 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/engine"
|
"git.difuse.io/Difuse/Mellaris/engine"
|
||||||
gfwio "github.com/DifuseHQ/Mellaris/io"
|
gfwio "git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
)
|
)
|
||||||
|
|
||||||
// App owns the Mellaris engine and ruleset lifecycle.
|
// App owns the Mellaris engine and ruleset lifecycle.
|
||||||
|
|||||||
10
config.go
10
config.go
@@ -1,11 +1,11 @@
|
|||||||
package mellaris
|
package mellaris
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/engine"
|
"git.difuse.io/Difuse/Mellaris/engine"
|
||||||
gfwio "github.com/DifuseHQ/Mellaris/io"
|
gfwio "git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config defines IO, worker, and ruleset settings for the engine.
|
// Config defines IO, worker, and ruleset settings for the engine.
|
||||||
|
|||||||
10
defaults.go
10
defaults.go
@@ -1,11 +1,11 @@
|
|||||||
package mellaris
|
package mellaris
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/tcp"
|
"git.difuse.io/Difuse/Mellaris/analyzer/tcp"
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer/udp"
|
"git.difuse.io/Difuse/Mellaris/analyzer/udp"
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
modUDP "github.com/DifuseHQ/Mellaris/modifier/udp"
|
modUDP "git.difuse.io/Difuse/Mellaris/modifier/udp"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultAnalyzers returns the built-in analyzer set.
|
// DefaultAnalyzers returns the built-in analyzer set.
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/io"
|
"git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
|
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
"github.com/google/gopacket/layers"
|
"github.com/google/gopacket/layers"
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package engine
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/io"
|
"git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Engine is the main engine for Mellaris.
|
// Engine is the main engine for Mellaris.
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/io"
|
"git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
|
|
||||||
"github.com/bwmarrin/snowflake"
|
"github.com/bwmarrin/snowflake"
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/io"
|
"git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
|
|
||||||
"github.com/bwmarrin/snowflake"
|
"github.com/bwmarrin/snowflake"
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package engine
|
package engine
|
||||||
|
|
||||||
import "github.com/DifuseHQ/Mellaris/analyzer"
|
import "git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
|
|
||||||
var _ analyzer.Logger = (*analyzerLogger)(nil)
|
var _ analyzer.Logger = (*analyzerLogger)(nil)
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package engine
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/io"
|
"git.difuse.io/Difuse/Mellaris/io"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset"
|
"git.difuse.io/Difuse/Mellaris/ruleset"
|
||||||
|
|
||||||
"github.com/bwmarrin/snowflake"
|
"github.com/bwmarrin/snowflake"
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
|||||||
module github.com/DifuseHQ/Mellaris
|
module git.difuse.io/Difuse/Mellaris
|
||||||
|
|
||||||
go 1.21
|
go 1.21
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
|
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
"github.com/google/gopacket/layers"
|
"github.com/google/gopacket/layers"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset/builtins/geo/v2geo"
|
"git.difuse.io/Difuse/Mellaris/ruleset/builtins/geo/v2geo"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset/builtins/geo/v2geo"
|
"git.difuse.io/Difuse/Mellaris/ruleset/builtins/geo/v2geo"
|
||||||
)
|
)
|
||||||
|
|
||||||
type HostInfo struct {
|
type HostInfo struct {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset/builtins/geo/v2geo"
|
"git.difuse.io/Difuse/Mellaris/ruleset/builtins/geo/v2geo"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ hostMatcher = (*geoipMatcher)(nil)
|
var _ hostMatcher = (*geoipMatcher)(nil)
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ import (
|
|||||||
"github.com/expr-lang/expr/vm"
|
"github.com/expr-lang/expr/vm"
|
||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset/builtins"
|
"git.difuse.io/Difuse/Mellaris/ruleset/builtins"
|
||||||
"github.com/DifuseHQ/Mellaris/ruleset/builtins/geo"
|
"git.difuse.io/Difuse/Mellaris/ruleset/builtins/geo"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExprRule is the external representation of an expression rule.
|
// ExprRule is the external representation of an expression rule.
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/DifuseHQ/Mellaris/analyzer"
|
"git.difuse.io/Difuse/Mellaris/analyzer"
|
||||||
"github.com/DifuseHQ/Mellaris/modifier"
|
"git.difuse.io/Difuse/Mellaris/modifier"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Action int
|
type Action int
|
||||||
|
|||||||
Reference in New Issue
Block a user