在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? go语言逆向技术之---常量字符串解密》,作者:安全技术猿。 Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? 以下面go语言源代码为例: package main import “fmt” func main() { fmt.Println(“Hello, World!”) }
Go语言二进制文件中字符串是存放在哪里的呢?其实存放的位置遵循的elf格式原则,在.rodata节中(如上图所示)。
Go语言字符串按以下方法来组织:
另外Go语言字符串一般从go_string位置开始存放,如下图所示 逆向时正确切割Go语言字符串方法有两种:
基于Go语言字符串组织原则的快速切割算法:
如下图所示(长度为13个字节的字符串): 总结:go语言字符串的切割在二进制安全检测中可以真实的还原源代码中引用字符串的信息,提升检测准确率。 >>>漏洞扫描服务
点击关注,第一时间了解华为云新鲜技术~ |
请发表评论