ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全安全文章 → CVE-2018-6574 Go语言任意代码执行漏洞

CVE-2018-6574 Go语言任意代码执行漏洞

时间:2018-05-03 14:39:43人气:作者:本站作者我要评论

什么是Go语言?

Go 是一个Google推出的开源编程语言,它能让构造简单、可靠且高效的软件变得更容易,且有着更高的开发效率和运行性能,因此受到了许多开发者的欢迎。

CVE-2018-6574 Go语言任意代码执行漏洞

Go 程序源码 以 *.go 结尾,通过 go build 编译成native代码。

以最简单的hello world程序为例:hello.go

  1. //  hello.go
  2. package main
  3. import "fmt"
  4. func main() {
  5.     fmt.Println("Hello, World!")
  6. }

通过go build编译出可执行程序,再运行 ./hello 。也可以直接通过 go run ./hello.go 直接在/tmp目录下编译生成可执行文件,并运行。

同时Go语言允许与C语言的互操作,即在Go语言中直接使用C代码,因为本身Go在语法等方面和C就很像,其设计者以及其设计目标都与C语言有着千丝万缕的联系。

例如下面的代码,我们可直接在Go源码文件中嵌入了C代码,并用注释包裹起来

  1. package main
  2. /*
  3. #include
  4. #include
  5. void my_print(char *str){
  6.     printf("%s\n",str);
  7. }
  8. */
  9. import "C"
  10. import "unsafe"
  11. import "fmt"
  12. func main() {
  13.     fmt.Println("Hello, World!")
  14.     s:="hello cgo"
  15.     cs:=C.CString(s)
  16.     C.my_print(cs)
  17.     C.free(unsafe.Pointer(cs))
  18. }

我们依然可以直接通过go build或go run来编译和执行,但实际编译过程中,go调用了名为cgo的工具,cgo会识别和读取Go源文件中的C元素,并将其提取后交给C编译器编译,最后与Go源码编译后的目标文件链接成一个可执行程序。

相关文章

猜你喜欢

  • 深入解析浅谈《快3单双准确率方法》成功方案

    2022-09-28 /

  • 全网首发《快3单双大小必中方法技巧》思路汇总

    2022-09-28 /

  • 资深攻略《快3大小必中技巧》上岸方法

    2022-09-28 /

  • 【最准确的玩法】《回血上岸计划导师QQ》操作系列

    2022-09-28 /

  • 经验教程《导师一分快三计划》最新窍门

    2022-09-28 /

  • 高手教你《大小单双最安全的打法》三期必中

    2022-09-28 /

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

本类推荐

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 琼ICP备2021004244号-1| 琼ICP备2021004244号-1

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网