binutils

Guide GNU Binutils operations for binary manipulation and analysis.

159|20|Updated Feb 20, 2026
One-click install
npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill binutils
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: binutils
Source: https://github.com/mohitmishra786/low-level-dev-skills/tree/main/skills/binaries/binutils
Command: npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill binutils

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides comprehensive guidance on using the GNU Binutils suite to manipulate, analyze, and understand binary files, streamlining tasks like library management, debugging, and binary optimization.

Core Features & Use Cases

  • Static Library Management: Create, list, and extract object files from static archives using ar.
  • Binary Stripping: Reduce executable size by removing debug information or unneeded symbols using strip.
  • Address to Source Mapping: Convert memory addresses from crash dumps or logs to source code lines and function names using addr2line.
  • Symbol Demangling: Decode C++ mangled symbols back into human-readable names with c++filt.
  • String Extraction: Find printable character sequences within binary files using strings.
  • Binary Transformation: Modify sections, convert formats, and embed data with objcopy.

Quick Start

Use the binutils skill to find the source code location for the address 0x400a12 in the executable 'my_program'.

Frequently Asked Questions about binutils

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I map a memory address from a crash dump to a specific source code line?

To map a memory address to a source code line, use the addr2line utility with your executable and the specific memory address. It converts crash dump addresses into corresponding function names and line numbers for debugging.

How do I decode mangled C++ symbols into human-readable names?

To decode mangled C++ symbols, pass the compiled binary or symbol output through the c++filt utility. It translates compiler-generated names back into readable C++ function signatures for easier analysis.

What is the best way to extract readable text strings from an executable file?

To extract readable text from an executable file, use the strings utility. It locates and prints printable character sequences within binary files, helping identify embedded data and dependencies.

How do I reduce executable size by stripping symbols from an ELF binary?

To reduce executable size by stripping symbols, use the strip utility on your ELF binary. It removes debug information and unneeded symbols, optimizing the final file structure for deployment.

Can I create and extract object files from a static library archive?

Yes, you can create, list, and extract object files from a static library archive using the ar utility. It manages static archives by grouping multiple object files into a single library file.

How do I modify sections or convert formats within an ELF binary?

To modify sections or convert formats within an ELF binary, use the objcopy utility. It performs binary transformations by altering sections, converting object formats, and embedding data into executables.