Skip to content

Commit 5b818a6

Browse files
committed
[+]优化代码逻辑,使其更容易读懂
1 parent 7308577 commit 5b818a6

File tree

5 files changed

+61
-41
lines changed

5 files changed

+61
-41
lines changed

lib/params/type-osArgs.go app/type-args.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package params
1+
package app
22

33
import (
44
"fmt"

app/type-config.go

+7-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"kscan/lib/chinese"
66
"kscan/lib/hydra"
77
"kscan/lib/misc"
8-
"kscan/lib/params"
98
"kscan/lib/slog"
109
"kscan/lib/urlparse"
1110
"os"
@@ -42,7 +41,7 @@ type Config struct {
4241
var Setting = New()
4342

4443
func ConfigInit() {
45-
args := params.Args
44+
args := Args
4645

4746
Setting.Touch = args.Touch
4847
Setting.Spy = args.Spy
@@ -126,19 +125,19 @@ func (c *Config) loadTarget(expr string, recursion bool) {
126125
}
127126

128127
func (c *Config) loadPort() {
129-
if params.Args.Port != "" {
130-
c.Port = append(c.Port, intParam2IntArr(params.Args.Port)...)
128+
if Args.Port != "" {
129+
c.Port = append(c.Port, intParam2IntArr(Args.Port)...)
131130
}
132-
if params.Args.Top != 400 {
133-
c.Port = append(c.Port, TOP_1000[:params.Args.Top]...)
131+
if Args.Top != 400 {
132+
c.Port = append(c.Port, TOP_1000[:Args.Top]...)
134133
}
135134
if len(c.Port) == 0 {
136135
c.Port = TOP_1000[:400]
137136
}
138137
}
139138

140139
func (c *Config) loadOutput() {
141-
expr := params.Args.Output
140+
expr := Args.Output
142141
if expr == "" {
143142
return
144143
}
@@ -154,7 +153,7 @@ func (c *Config) loadScanPing() {
154153
if len(c.Port) < 10 {
155154
c.ClosePing = true
156155
} else {
157-
c.ClosePing = params.Args.ClosePing
156+
c.ClosePing = Args.ClosePing
158157
}
159158
}
160159

kscan.go

+20-16
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"kscan/lib/fofa"
77
"kscan/lib/gonmap"
88
"kscan/lib/httpfinger"
9-
"kscan/lib/params"
109
"kscan/lib/slog"
1110
"kscan/lib/spy"
1211
"kscan/lib/touch"
@@ -125,16 +124,20 @@ func main() {
125124
//校验升级情况
126125
//app.CheckUpdate()
127126
if app.Setting.Spy != "None" {
127+
InitSpy()
128128
spy.Start()
129+
if spy.Scan {
130+
app.Setting.HostTarget = spy.Target
131+
}
129132
}
130133
//fofa模块初始化
131134
if len(app.Setting.Fofa) > 0 {
132-
FofaInit()
135+
InitFofa()
133136
}
134137
//kscan模块启动
135138
if len(app.Setting.UrlTarget) > 0 || len(app.Setting.HostTarget) > 0 {
136139
//扫描模块初始化
137-
KscanInit()
140+
InitKscan()
138141
//开始扫描
139142
run.Start(app.Setting)
140143
}
@@ -154,19 +157,15 @@ func main() {
154157
}
155158

156159
func Init() {
157-
params.Args.SetLogo(logo)
158-
params.Args.SetUsage(usage)
159-
params.Args.SetHelp(help)
160-
params.Args.SetSyntax(syntax)
160+
app.Args.SetLogo(logo)
161+
app.Args.SetUsage(usage)
162+
app.Args.SetHelp(help)
163+
app.Args.SetSyntax(syntax)
161164
//参数初始化
162-
params.Args.Parse()
165+
app.Args.Parse()
163166
//日志初始化
164-
slog.SetLogger(func() slog.LEVEL {
165-
if params.Args.Debug {
166-
return slog.DEBUG
167-
}
168-
return slog.INFO
169-
}(), params.Args.Encoding)
167+
slog.SetEncoding(app.Args.Encoding)
168+
slog.SetPrintDebug(app.Args.Debug)
170169
//配置文件初始化
171170
app.ConfigInit()
172171
//color包初始化
@@ -177,7 +176,7 @@ func Init() {
177176
}
178177
}
179178

180-
func KscanInit() {
179+
func InitKscan() {
181180
//slog.Warning("开始读取扫描对象...")
182181
slog.Infof("成功读取URL地址:[%d]个", len(app.Setting.UrlTarget))
183182
if app.Setting.Check == false {
@@ -193,7 +192,7 @@ func KscanInit() {
193192
gonmap.InitAppBannerDiscernConfig(app.Setting.Host, app.Setting.Path, app.Setting.Proxy, app.Setting.Timeout)
194193
}
195194

196-
func FofaInit() {
195+
func InitFofa() {
197196
email := os.Getenv("FOFA_EMAIL")
198197
key := os.Getenv("FOFA_KEY")
199198
if email == "" || key == "" {
@@ -215,3 +214,8 @@ func FofaInit() {
215214
f.Scan()
216215
}
217216
}
217+
218+
func InitSpy() {
219+
spy.Keyword = app.Setting.Spy
220+
spy.Scan = app.Setting.Scan
221+
}

lib/slog/slog.go

+14-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,20 @@ func init() {
4444
this.data = log.New(os.Stdout, "\r", 0)
4545
}
4646

47-
func SetLogger(level LEVEL, encoding string) {
47+
func SetEncoding(encoding string) {
48+
this.encoding = encoding
49+
50+
}
51+
52+
func SetPrintDebug(PrintDebug bool) {
53+
if PrintDebug {
54+
SetLogger(DEBUG)
55+
} else {
56+
SetLogger(INFO)
57+
}
58+
}
59+
60+
func SetLogger(level LEVEL) {
4861
if level <= ERROR {
4962
this.error = log.New(io.MultiWriter(os.Stderr), "\rError:", 0)
5063
}
@@ -60,7 +73,6 @@ func SetLogger(level LEVEL, encoding string) {
6073
if level <= NONE {
6174
//nothing
6275
}
63-
this.encoding = encoding
6476
}
6577

6678
func (t *logger) Data(s string) {

lib/spy/spy.go

+19-14
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package spy
22

33
import (
44
"fmt"
5-
"kscan/app"
65
"kscan/lib/IP"
76
"kscan/lib/gonmap"
87
"kscan/lib/misc"
@@ -12,23 +11,29 @@ import (
1211
"strings"
1312
)
1413

14+
var (
15+
Keyword = ""
16+
Scan = false
17+
Target []string
18+
)
19+
1520
func Start() {
1621
slog.Info("将开始自动化存活网段探测,请注意,该模式会发送大量数据包,极易被风控感知,请慎用")
1722
slog.Info("现在开始进行自动网络环境探测")
1823
internet := internetTesting()
1924
_ = dnsTesting()
2025
var gatewayArr, All []string
2126
//若spy参数格式为IP地址,则将对指定的IP地址进行B段存活网关探测
22-
if IP.FormatCheck(app.Setting.Spy) {
23-
slog.Infof("现在开始指定网段:%s,B段存活网关探测", app.Setting.Spy)
24-
gatewayArr = IP.GetGatewayList(app.Setting.Spy, "b")
27+
if IP.FormatCheck(Keyword) {
28+
slog.Infof("现在开始指定网段:%s,B段存活网关探测", Keyword)
29+
gatewayArr = IP.GetGatewayList(Keyword, "b")
2530
HostDiscoveryIcmpPool(gatewayArr)
2631
return
2732
}
2833
//依据情况判断是否进行172B段存活网关探测
29-
if app.Setting.Spy == "all" || app.Setting.Spy == "172" {
34+
if Keyword == "all" || Keyword == "172" {
3035
//探测172段,B段存活网关
31-
slog.Infof("当前spy参数值为%s,将开始172段,大B段存活网关探测,此探测时间较长,请耐心等待", app.Setting.Spy)
36+
slog.Infof("当前spy参数值为%s,将开始172段,大B段存活网关探测,此探测时间较长,请耐心等待", Keyword)
3237
gatewayArr = []string{}
3338
for i := 16; i <= 31; i++ {
3439
slog.Infof("现在开始枚举常见网段172.%d.0.0", i)
@@ -43,15 +48,15 @@ func Start() {
4348
}
4449
}
4550
//依据情况判断是否进行10A段存活网关探测
46-
if app.Setting.Spy == "all" || app.Setting.Spy == "10" {
51+
if Keyword == "all" || Keyword == "10" {
4752
//探测10段,A段存活网关
48-
slog.Infof("当前spy参数值为%s,将开始10段,A段存活网关探测,此探测时间较长,请耐心等待", app.Setting.Spy)
53+
slog.Infof("当前spy参数值为%s,将开始10段,A段存活网关探测,此探测时间较长,请耐心等待", Keyword)
4954
slog.Info("现在开始枚举常见网段10.0.0.0")
5055
gatewayArr = IP.GetGatewayList("10.0.0.1", "a")
5156
HostDiscoveryIcmpPool(gatewayArr)
5257
}
5358
//依据情况判断是否进行常规探测
54-
if app.Setting.Spy == "all" || app.Setting.Spy == "" {
59+
if Keyword == "all" || Keyword == "" {
5560
//探测网卡所在网段
5661
slog.Info("现在开始当前所在网段的B段网关存活性探测")
5762
gatewayArr = makeInterfaceGatwayList()
@@ -73,7 +78,7 @@ func Start() {
7378
}
7479

7580
//依据情况判断是否进行192B段存活网关探测
76-
if app.Setting.Spy == "all" || app.Setting.Spy == "" || app.Setting.Spy == "192" {
81+
if Keyword == "all" || Keyword == "" || Keyword == "192" {
7782
//探测常见网段192段,B段存活网关
7883
slog.Info("现在开始枚举常见网段192.168.0.0")
7984
gatewayArr = IP.GetGatewayList("192.168.0.1", "b")
@@ -176,14 +181,14 @@ func HostDiscoveryIcmpPool(gatewayArr []string) {
176181
}
177182
ip := out.(string)
178183
slog.Data(ip)
179-
if app.Setting.Scan == false {
184+
if Scan == false {
180185
continue
181186
}
182187
ipArr := IP.ExprToList(fmt.Sprintf("%s/24", ip))
183-
app.Setting.HostTarget = append(app.Setting.HostTarget, ipArr...)
188+
Target = append(Target, ipArr...)
184189
}
185-
if app.Setting.Scan == true {
186-
misc.RemoveDuplicateElement(app.Setting.HostTarget)
190+
if Scan == true {
191+
Target = misc.RemoveDuplicateElement(Target)
187192
}
188193

189194
}

0 commit comments

Comments
 (0)