freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

AlphaGolang:一款针对Golang源码分析的IDApython脚本
2022-01-21 01:30:23
所属地 广西

关于AlphaGolang

AlphaGolang是一款针对Golang源码分析的IDApython脚本,该脚本基于Python 3进行了重构和更新,可以帮助广大研究人员或恶意软件逆向工程师深入分析Go二进制文件。该工具的核心思想是将脚本代码分解为具体的步骤,并模仿分析人员在处理和测试Go二进制文件时可能遵循的某些方法或策略。

工具要求

IDA Pro(推荐v7.6+)

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/SentineLabs/AlphaGolang.git

AlphaGolang分析方法论

第一步:Yara规则识别Go源码(PE/ELF/MachO)

identify_go_binaries.yara:

1、简单的Header检测和针对Go构建ID字符串的正则表达式;

2、可以增加构建ID的长度范围。

第二步:重新创建pcln表

recreate_pclntab.py(兼容IDA v7.5):

1、通过启发式算法重新创建gopclntab字段

2、兼容IDA v7.5。

第三步:通过遍历pcln表发现函数,并添加名称


function_renaming.py(兼容IDA v7.5):

1、分离Golang加载器;

2、基于pcln表和暴力破解方式发现缺失的函数;

3、修复py3转换中的一些函数名清理问题;

第四步:用户生成的函数浮出水面

categorize_go_folders.py(要求IDA v7.6+):

1、自动将函数归类进目录中;

2、要求IDA v7.6+,在函数试图内启用“显示目录”功能;

第五步:修复字符串应用

fix_string_cast.py:

1、分离Golang加载器;

2、添加逻辑以实现取消对以前存在的字符串blob的定义;

3、数据净化功能提升工具执行效率;

第六步:提取类型信息

extract_types.py:

1、在newobject和makechan等调用的参数上添加注释;

2、将正确的C类型应用于这些对象并进行重命名;

3、获取人类可读的名称并将其添加为注释;

许可证协议

本项目的开发与发布遵循GPL开源许可证协议。

项目地址

AlphaGolang:GitHub传送门

参考资料

https://github.com/strazzere/golang_loader_assist

# 代码审计 # 代码分析 # 代码安全 # Golang
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录