• We've moved. Our community is now at ownd.sh — latest discussions and updates live there.

[TOOL] GHIDRA — DECOMPILE EXE FILES & REVERSE ENGINEER SOFTWARE [2026]

Kinder

Divine
Divine
Kinder Rep
0
0
0
Rep
1714
Kinder Vouches
41
0
0
Vouches
41
Posts
6,022
Likes
8,716
4 YEARS
4 YEARS OF SERVICE
Hidden Content

Ever wondered how people inspect the source logic of compiled software without having the original source code?

There's a powerful, completely free reverse-engineering framework called Ghidra.

Originally developed by the US National Security Agency (NSA), Ghidra was publicly released as an open-source project in 2019.

It allows you to analyse executable files, inspect assembly instructions, reconstruct C-like pseudocode, examine functions, and understand how applications work internally.

Unlike traditional debuggers, Ghidra is particularly useful for static analysis, meaning you can examine compiled software without executing it.

WHAT CAN GHIDRA DO?Ghidra includes:
- Executable disassembly

- C-like code decompilation

- Function identification

- Cross-reference analysis

- String searching

- Assembly inspection

- Control-flow graphs

- Memory and data inspection

- Binary comparison capabilities

- Script automation

- Support for numerous CPU architectures

It supports Windows, Linux, and macOS.

OFFICIAL LINKSOfficial Website:

https://ghidra-sre.org/

GitHub Repository:

https://github.com/NationalSecurityAgency/ghidra

Official Download:

https://github.com/NationalSecurityAgenc...a/releases

Getting Started Guide:

https://github.com/NationalSecurityAgenc...Started.md

Official Documentation:

https://github.com/NationalSecurityAgenc...GhidraDocs

Java JDK:

https://adoptium.net/

STEP 1 — DOWNLOAD GHIDRAOpen the official releases page:

https://github.com/NationalSecurityAgenc...a/releases

As of October 2026, the latest listed release is:

Ghidra 12.1.4

Download the prebuilt release ZIP from the release assets.

Do not download the automatically generated GitHub source-code archive if you want a ready-to-run application.

Extract the release ZIP into a folder.

Ghidra doesn't require a traditional Windows installer.

STEP 2 — INSTALL JAVAGhidra requires a supported Java Development Kit.

The current official installation instructions specify:

64-bit JDK 25

You can obtain a suitable JDK from:

https://adoptium.net/

After installing Java, open PowerShell and run:

 

Code:

Code:
java -version

You should see the installed Java version.

If Ghidra cannot locate Java automatically, follow the official Getting Started guide to configure your JDK location.

STEP 3 — LAUNCH GHIDRAOpen the extracted Ghidra directory.

On Windows, run:

 

Code:

Code:
ghidraRun.bat

On Linux or macOS, use:

 

Code:

Code:
./ghidraRun

The Ghidra project manager should open.

From here, you can create projects and import binary files for analysis.

STEP 4 — CREATE A PRACTICE EXECUTABLERather than downloading an unknown program, we'll compile a small executable ourselves.

Open Notepad and paste:

 

Code:

Code:
#include <stdio.h> int calculate_total(int price, int quantity) { return price * quantity; } int main(void) { int total = calculate_total(15, 3); printf("Total: %d\n", total); return 0; }

Save it as:

 

Code:

Code:
practice.c

This program multiplies a price by a quantity and prints the result.

The expected output is:

 

Code:

Code:
Total: 45

Our goal is to recover an understanding of this calculation from the compiled executable.

STEP 5 — COMPILE THE PROGRAMIf you have Visual Studio's C/C++ development tools installed, open the x64 Native Tools Command Prompt.

Official download:

https://visualstudio.microsoft.com/vs/community/

Navigate to the directory containing

Code:

Code:
practice.c

.Compile it using:

 

Code:

Code:
cl /Od /Fe:practice.exe practice.c

The

Code:

Code:
/Od

flag disables compiler optimisations.This is useful for reverse-engineering exercises because aggressive optimisation can remove or combine functions.

The output should be:

 

Code:

Code:
practice.exe

STEP 6 — CREATE A GHIDRA PROJECTLaunch Ghidra.

Choose:

File → New Project

Select:

Non-Shared Project

Choose a folder and enter a project name.

For example:

 

Code:

Code:
ReverseEngineeringLab

Click Finish.

You now have a project where you can organise executable files and analysis results.

STEP 7 — IMPORT YOUR EXECUTABLEInside your Ghidra project, choose:

File → Import File

Select:

 

Code:

Code:
practice.exe

Ghidra should detect the executable format and processor architecture.

For a normal 64-bit Windows executable, this will typically involve:

 

Code:

Code:
FORMAT: Portable Executable (PE) ARCHITECTURE: x86-64

Complete the import.

Double-click the imported executable to open it in Ghidra's CodeBrowser.

STEP 8 — RUN AUTOMATIC ANALYSISWhen the CodeBrowser opens, Ghidra normally asks whether you want to analyse the file.

Select:

Yes

Keep the default analysers enabled for this beginner exercise.

Click Analyse.

Ghidra will examine the executable and attempt to identify:
- Functions

- Code references

- Data references

- Strings

- Program entry points

- Calling conventions

- Possible function signatures

Once analysis completes, you can inspect the results.

STEP 9 — UNDERSTAND THE INTERFACEGhidra's CodeBrowser includes several important views.

Listing

Displays disassembled instructions, addresses and data.

Decompiler

Reconstructs C-like pseudocode from machine instructions.

Symbol Tree

Lists recognised functions, labels, imports and other symbols.

Data Type Manager

Helps manage structures, pointers, enums and other data types.

Function Graph

Displays a function's control flow visually.

Together, these views help explain how a compiled executable operates.

STEP 10 — FIND THE CALCULATION FUNCTIONOpen the Symbol Tree.

Expand:

 

Code:

Code:
Functions

Look for a function resembling:

 

Code:

Code:
calculate_total

Depending on the executable and available symbols, Ghidra might preserve that name or assign something resembling:

 

Code:

Code:
FUN_140001000

If the function name isn't available, identify it by examining the application's calling relationships and arithmetic instructions.

Double-click the function to navigate to its code.

STEP 11 — VIEW THE DECOMPILED CODESelect the calculation function.

The Decompiler panel may show pseudocode resembling:

 

Code:

Code:
int calculate_total(int price, int quantity) { return price * quantity; }

The exact output depends on the compiler, optimisation settings, available symbols and Ghidra's analysis.

You might instead see something resembling:

 

Code:

Code:
int FUN_140001000(int param_1, int param_2) { return param_1 * param_2; }

Notice that the original variable and function names aren't guaranteed to survive compilation.

Ghidra reconstructs an interpretation of the program's behaviour, not the exact original source code.

STEP 12 — EXAMINE THE ASSEMBLYIn the Listing view, the multiplication operation may appear as an instruction such as:

 

Code:

Code:
imul eax, edx

This is an illustrative example, not a guaranteed instruction sequence from your compiler.

The instruction performs signed integer multiplication.

By examining surrounding instructions, you can understand where the input values come from and where the result is returned.

This demonstrates how simple high-level code becomes processor instructions.

BONUS — SEARCH FOR STRINGSMany compiled programs contain readable text.

In your practice executable, you might find:

 

Code:

Code:
Total: %d

Inside Ghidra, open:

Window → Defined Strings

Look for that string.

Double-click it to navigate to its location.

You can then inspect references to find code that accesses the string.

This is particularly useful when examining error messages, logging routines, configuration labels and other application behaviour.

BONUS #2 — FOLLOW CROSS-REFERENCESGhidra can show where a function or data item is referenced.

Select a function or string and inspect its references.

For example:

 

Code:

Code:
main() | v calculate_total() | v multiplication | v return result

Cross-references are useful for answering questions such as:
- Which functions call this routine?

- Where is this string used?

- Which code reads or writes this variable?

- What happens before a particular function executes?

BONUS #3 — RENAME FUNCTIONSAutomatically generated names can be difficult to understand.

For example:

 

Code:

Code:
FUN_140001000

If you determine that the function performs multiplication, you can rename it:

 

Code:

Code:
calculate_total

To rename a symbol, select it and press:

 

Code:

Code:
L

Enter a new name.

This changes the label in your Ghidra project, not the original source code of the executable.

Clear naming makes larger reverse-engineering projects much easier to understand.

BONUS #4 — INSPECT CONTROL FLOWGhidra includes graph visualisation.

Open a function and access its Function Graph view.

For functions containing conditional branches, you may see a structure resembling:

 

Code:

Code:
FUNCTION START | v CHECK VALUE / \ YES NO | | v v PATH A PATH B \ / \ / v RETURN

This makes it easier to understand loops, conditions and branching logic.

Your simple multiplication function may have only one basic block.

BONUS #5 — ANALYSE UNKNOWN FILES SAFELYGhidra is frequently used in malware research.

Because static analysis doesn't require executing the imported program, researchers can inspect suspicious executable code without deliberately launching it.

Possible research tasks include:
- Identifying suspicious imports

- Locating embedded network addresses

- Examining file-handling behaviour

- Identifying potential persistence routines

- Analysing encryption functions

- Understanding execution flow

However, Ghidra itself isn't a complete malware sandbox.

Avoid opening untrusted files on a machine containing sensitive information, and keep Ghidra updated because malformed binaries may exploit vulnerabilities in analysis software.

Use an isolated analysis environment for suspicious samples.

BONUS #6 — GHIDRA VS X64DBGThese tools serve different purposes.

Ghidra

Best suited to static binary analysis, decompilation, program structure and cross-reference research.

x64dbg

Best suited to debugging Windows processes, inspecting runtime memory, breakpoints and step-by-step execution.

A typical authorised reverse-engineering workflow can use Ghidra to understand the overall program structure and x64dbg to observe particular functions at runtime.

Both are free.

IMPORTANT — WHAT GHIDRA CANNOT DOGhidra cannot reliably recreate the exact original source code of every executable.

Compilation removes or transforms information.

Depending on the binary, you may lose:
- Original local variable names

- Comments

- Source formatting

- Some type information

- Original function boundaries

- High-level abstractions

Packed or obfuscated software can also be substantially harder to analyse.

Decompiled pseudocode must be checked against the underlying assembly before treating it as an exact representation of program behaviour.

IMPORTANT — AUTHORISED ANALYSISUse Ghidra to examine your own applications, open-source binaries, educational challenge programs, or files you're authorised to research.

Respect applicable licences and laws.

This tutorial is about understanding compiled software, not bypassing commercial licensing or tampering with third-party protections.

IS GHIDRA STILL MAINTAINED IN 2026?Yes.

As of 12 October 2026, the official repository lists Ghidra 12.1.4, released on 21 September 2026.

The project remains open-source, with installation instructions, documentation and release updates maintained on GitHub.

SOURCEShttps://github.com/NationalSecurityAgency/ghidra

https://github.com/NationalSecurityAgenc...a/releases

https://github.com/NationalSecurityAgenc...Started.md

https://github.com/NationalSecurityAgenc...GhidraDocs

Ghidra is one of the most capable free reverse-engineering frameworks available.

It's useful for understanding compiled applications, examining machine code and learning how professional binary analysis works.

 

WANT MORE HIGH QUALITY SHIT FOR FREE?

CLICK HERE > (MY PROFILE)

Haven't made a account yet? register here (REF LINK)




 

nahlan04

Member
nahlan04 Rep
0
0
Rep
0
nahlan04 Vouches
0
0
0
Vouches
0
Posts
40
Likes
0
Bits
2 MONTHS
2 2 MONTHS OF SERVICE

gsmemkay

Well-known member
gsmemkay Rep
0
0
Rep
0
gsmemkay Vouches
0
0
0
Vouches
0
Posts
114
Likes
0
Bits
4 MONTHS
4 4 MONTHS OF SERVICE

ghoulboyy

Member
ghoulboyy Rep
0
0
Rep
0
ghoulboyy Vouches
0
0
0
Vouches
0
Posts
32
Likes
0
Bits
1 MONTH
1 1 MONTH OF SERVICE

Master15pk

Member
Rep
0
0
Rep
0
Vouches
0
0
0
Vouches
0
Posts
25
Likes
0
Bits
1 MONTH
1 1 MONTH OF SERVICE

179,161

126,023

1,405,739

Top