go-strip 更新啦 v2.0
2021-12-07 09:30:00 Author: mp.weixin.qq.com(查看原文) 阅读量:58 收藏

Go-strip

  • 支持一键混淆Go编译的 Windows、Linux、MacOS(amd64、386)的二进制文件。

「功能」

  • 支持混淆

    • 函数名称

    • 函数路径

    • Go Struct

    • Type

    • Go Compiler Version

    • Go BuildID

    • Go Root

go-strip 更新啦 v2.0

修复了几个issue,将go-strip更新了。
更新支持了go版本到1.7.3,2021-11-04T13:55:24Z版,原来的源码太糟糕了,今天花了一天时间重构了一遍,顺便写了一个测试用例,一键运行即可自动化测试go从1.12到1.17所有的版本。

原理

go-strip具体原理可以参看公众号之前的文章

如何消除Go的编译特征.md

基本是调用gore的库,但是它里面没有提供读取位置的相关的变量,所以就自己写啦,本地化gore的包,在里面读取函数里面添加上位置信息或者写入随机信息的函数就行了,还要注意的是三个平台的文件格式,pe、elf、macho,都需要自己实现一次pclntab的获取,文件地址到内存地址的转换,这样才能把读取的内容重新写回去。想看懂代码的话,得自己完整看完gore的代码,再来动手做,很麻烦,不想看直接用成品就行了。

消除后的程序用ida查看,Go程序自带函数/文件/路径都被混淆

成品

下载 https://github.com/boy-hack/go-strip/releases 最新版就行了

源码和广告

安全人员可能更放心有源码的程序,go-strip也开源在了我的知识星球,,可以按需下载。

很多黑客和安全工具的构造是那么巧妙,我看了很多安全工具的代码,将它们值得学习的地方记录了下来。开发+安全的结合,Hacking自动化就是好玩,这个仓库将持续更新星球中的精华文章,源码和思路,付费加入是我更新的动力。

星球文章概览仓库: https://github.com/boy-hack/zsxq
或者在公众号回复“知识星球” 得到更多相关信息


文章来源: http://mp.weixin.qq.com/s?__biz=MzU2NzcwNTY3Mg==&mid=2247484326&idx=1&sn=5f056f0cb8e290896fbf5a5985e342b7&chksm=fc986a81cbefe3971efee496611ecec6268ff7a08a573d93020c2b79f57f416319f24e528e3a#rd
如有侵权请联系:admin#unsafe.sh