1. 黑客安全网-互联网安全媒体信息综合平台首页
  2. 分类工具
  3. 神兵利器

Go编译EXE增加完善应用信息及管理员权限启动

Go编译EXE增加完善应用信息及管理员权限启动本文是为了解决Go编译EXE文件后,如何将应用程序”完(wei)善(zhuang)”的更好,也是书接上回的一个完善;

注:本文是一篇站在巨人肩膀上的实践记录

成功尝试有效的方法有《GoVersionInfo》《windres.exe》

一、完善应用详细信息图标及版本信息—-GoVersionInfo

1.将git文件下载到任意目录;将下载后的《resource》目录全部复制到本项目根目录;
Go编译EXE增加完善应用信息及管理员权限启动
2.在被编译go文件头部增加

//go:generate goversioninfo -icon=resource/icon.ico -manifest=resource/goversioninfo.exe.manifest

Go编译EXE增加完善应用信息及管理员权限启动3.根据自己需要完善修改《versioninfo.json》版本信息文件

Go编译EXE增加完善应用信息及管理员权限启动

4.“初始化”生成.syso文件,编译exe

#go generate          // 会在项目文件目录生成resource.syso文件


#CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -H=windowsgui" client.go  //编译exe会自动把syso文件链接到程序中
注:生成exe时文件夹下面不要用其他.go文件;否则编译失败;

5.查看程序文件信息

Go编译EXE增加完善应用信息及管理员权限启动

二、完善应用详细信息图标及版本信息—-windres

核心:通过windres生成一个中间文件 ***.syso,然后通过go编译exe;(我们需要使用MinGW安装windres编译所需的组件)

1.安装windres工具

网上搜索windres.exe进行下载,放入下面mingw安装后的bin目录“C:MinGWbin”

2.下载mingw并安装,然后安装gcc、g++等组件
Go编译EXE增加完善应用信息及管理员权限启动Go编译EXE增加完善应用信息及管理员权限启动Go编译EXE增加完善应用信息及管理员权限启动Go编译EXE增加完善应用信息及管理员权限启动

3.增加环境变量到path
Go编译EXE增加完善应用信息及管理员权限启动4.检查gcc、g++、windres
Go编译EXE增加完善应用信息及管理员权限启动5.准备一个demo.dc文件

1 VERSIONINFO
FILEVERSION 2,4,1109,2
PRODUCTVERSION 2,4,1109,2
FILEOS 0x40004
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
    BLOCK "040904B0"
    {
        VALUE "CompanyName", "Amazon GNU Internal Tools"
        VALUE "FileDescription", "Amazon GNU Internal Tools"
        VALUE "FileVersion", "2,4,1109,2"
        VALUE "InternalName", "Amazon GNU Internal Tools"
        VALUE "LegalCopyright", "Copyright (C)2019 Amazon. All rights reserved."
        VALUE "OriginalFilename", "CofoxAmazonBestSellersHold.exe"
        VALUE "ProductName", "CofoxHoldAmazonTop100"
        VALUE "ProductVersion", "2,4,1109,2"
    }
}




BLOCK "VarFileInfo"
{
    VALUE "Translation", 0X0409, 0X04B0
}
}



IDI_ICON1 ICON "network.ico"
1 VERSIONINFO
FILEVERSION 2,4,1109,2
PRODUCTVERSION 2,4,1109,2
FILEOS 0x40004
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
    BLOCK "040904B0"
    {
        VALUE "CompanyName", "Amazon GNU Internal Tools"
        VALUE "FileDescription", "Amazon GNU Internal Tools"
        VALUE "FileVersion", "2,4,1109,2"
        VALUE "InternalName", "Amazon GNU Internal Tools"
        VALUE "LegalCopyright", "Copyright (C)2019 Amazon. All rights reserved."
        VALUE "OriginalFilename", "CofoxAmazonBestSellersHold.exe"
        VALUE "ProductName", "CofoxHoldAmazonTop100"
        VALUE "ProductVersion", "2,4,1109,2"
    }
}




BLOCK "VarFileInfo"
{
    VALUE "Translation", 0X0409, 0X04B0
}
}



IDI_ICON1 ICON "network.ico"

6.编译生成*.syso

windres -i demo.rc -o demo.syso


Go编译EXE增加完善应用信息及管理员权限启动7.将syso文件复制到go项目目录,编译exe

#CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -H=windowsgui" -o GNUTools.exe

8.查看程序文件信息
Go编译EXE增加完善应用信息及管理员权限启动

三、请求管理员权限启动应用

如果程序启动时,默认请求管理员权限,是否就方便了很多?

1.思路非常简单,无论是上面那两种方法,只要修改*.manifest文件即可


  
 
   
     
      
      
   
 

如果使用上面第一种方法《GoVersionInfo》,则直接修改*.manifest文件;
如果使用上线第二种方法《windres》,则需要修改一下demo.rc文件,在最下面加一行;并创建demo.manifest(文件内容参考上面*.manifest)

IDI_MANIFEST1 RT_MANIFEST "demo.manifest"

Go编译EXE增加完善应用信息及管理员权限启动2.编译程序,查看程序;

Go编译EXE增加完善应用信息及管理员权限启动搞定!

美中不足,文件信息需要解决文件签名问题!这样”完(wei)善(zhuang)”的会更好!
下一篇,尝试程序签名!

相关推荐: 哥斯拉Godzilla Shell管理工具

**期间,各大厂商的waf不断,在静态查杀、流量通信等方面对webshell进行拦截,众红队急需一款优秀的权限管理工具,冰蝎3.0的发布可能缓解了流量加密的困境,但是冰蝎3.0的bug众多,很多朋友甚至连不上冰蝎的shell,于是@BeichenDream决定…

本文为转载文章,源自互联网,由网络整理整理编辑,转载请注明出处:https://www.hacksafe.net/tool/hacktool/4008.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注