Skip to content

Latest commit

 

History

History
78 lines (48 loc) · 1.93 KB

README.md

File metadata and controls

78 lines (48 loc) · 1.93 KB

有关 dll 转发的 golang windows 恶意代码示例

以下均以x64作为示例,如果需要x86,将x64替换为x86即可

本人测试环境/依赖

为了一些后续的工作开展,我选择了linux来进行开发,而不是windows

  • Ubuntu
  • mingw-w64
  • gcc

使用/尝试

首先下载项目

git clone https://github.com/akkuman/go-dll-evil
cd go-dll-evil

golang dll 转发

原始程序编译

  1. main.cpp 生成主程序 main.exe,该程序调用 add.dll 进行加法运算
make build-main-x64
  1. add.cpp 生成原始的 add.dll_add.dll,这两个dll完全一样,_add.dll 主要是为了后面进行 dll 转发使用
make build-dll-x64
  1. 将 main.exe 与刚才生成的 add.dll 拷到windows,命令行执行 main.exe,可以看到正确输出了 result: 300

编译转发 dll

  1. 将 evil.cpp 与 functions.def 一起编译,生成转发 dll(转发至 _add.dll)
make build-build-evil-x64
  1. 将 _add.dll 与刚才生成的 add.dll 拷入刚才的windows目录下,执行 main.exe,可以看到正确输出了 result: 300,转发成功

借助 Golang 编译转发 dll

  1. 将 def 与 go 一起编译,生成转发 dll(转发至 _add.dll)
make build-goevil-x64
  1. 将 _add.dll 与刚才生成的 add.dll 拷入刚才的windows目录下,执行 main.exe,可以看到正确输出了 result: 300,转发成功

golang dll 转发 + 恶意 dllmain

  1. 进入目录 dllmain
cd dllmain
  1. 将 c 和 go 一起编译,链接时带上 def,生成恶意转发 dll(转发至 _add.dll)
make build-evil-x64
  1. 将 _add.dll 与刚才生成的 add.dll 拷入刚才的windows目录下,执行 main.exe,可以看到正确输出了 result: 300,转发成功,同时出现了我们插入的恶意对话框示例

参考资料