Skip to content
Skillpedia
General coding42k · #4767

go-rust-reverse

Lets your agent analyze programs made in Go and Rust, even if they are simplified. It recovers important information from the code. Useful for understanding programs written in these languages.

What it does

This tool helps analyze Go and Rust programs that have had important information removed. It tries to recover function names and understand how the program works, even without the original details.

When to use it

  • ✓When you have a Go/Rust program with no identifying information.
  • ✓To analyze malicious programs written in Go/Rust.
  • ✓To better understand the internal structure of Go/Rust programs.

Example of what to ask your AI

“Analyze this Go/Rust program and try to recover function names.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/go-rust-reverse/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/go-rust-reverse/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It examines specific characteristics of Go and Rust languages, like 'panic' information and data structures, to reconstruct parts of the original code. It uses specialized tools to aid in this process.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add zhaoxuya520/reverse-skill --skill go-rust-reverse

Or download just the file:

curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/go-rust-reverse/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Go / Rust Binary Reverse Engineering

ACTION REQUIRED(读完后立刻执行)

  1. NOW: 读取 ../field-journal/precedent-reverse.md
  2. NOW: 确认样本为 Go/Rust 编译产物(file/字符串/运行时特征)
  3. NEXT: GoReSym / 相关插件是否可用
  4. ACT: 运行时识别 → 符号/元数据恢复 → 业务逻辑

适用场景

  • 剥离符号的 Go 恶意软件/工具
  • Rust 发行二进制、panic 字符串驱动分析
  • 与通用 ida/ghidra 互补的语言专用方法

工作流

Go

□ 识别 go.buildid、runtime 符号残留、pclntab
□ GoReSym / redress / IDA Go 插件恢复函数名
□ 注意 interface、slice、string 结构在反编译中的形态
□ 网络/加密库路径:crypto/* net/http

Rust

□ panic 字符串、rust_begin_unwind、crate 路径暗示
□ 范型实例化导致的代码膨胀;先定位字符串 xref
□ 异步/tokio 状态机需结合交叉引用

动态

□ 仍可用 Frida;注意 Go 栈与调度
□ 优先日志与配置字符串驱动断点

工具链

工具 用途
GoReSym Go 元数据
IDA/Ghidra + Go/Rust 插件 反编译
radare2 快速字符串
strings / rabin2 分诊

参考

  • references/go-rust-notes.md
  • ../reverse-engineering/go-reverse.md ../ida-reverse/ ../ghidra-reverse/
  • seed: field-journal/seed-002_go-malware-stripped.md

路由上下文

上游: MASTER R33
下游: 恶意样本流程 malware-analysis;通用 RE reverse-engineering

任务完成自检

  • 是否恢复关键函数名或等价映射?
  • 是否标注语言运行时证据?
  • Checklist?
FAQ

What does 'stripped' mean?

It means that information that helps understand the code, like function and variable names, has been removed from the final program.

What are 'panic strings'?

These are error messages that appear when a Go/Rust program encounters a severe issue and stops working abruptly.

Does this tool recreate the original source code?

No, it helps understand the existing code by recovering useful information, but it does not recreate the exact source code that was written.

Details

Original description by the author

Use for reverse engineering stripped Go and Rust binaries including runtime recognition, pclntab/moduel data recovery, panic strings, and idiomatic decompilation recovery.

repo: zhaoxuya520/reverse-skill

Popularity

GitHub stars
42k
Ranking position
#4767
License
MIT
Updated
9/22/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills