🎯 Lab Objectives
- Install the main tools
- Get familiar with the interfaces
- First analysis of an EXE file
📥 Part 1: Tool Installation
Task 1.1 - Install Ghidra
- Make sure Java JDK 17+ is installed:
java -version
- Download Ghidra from:
https://ghidra-sre.org/ - Extract the file to a folder (e.g.,
C:\Tools\Ghidra) - Run
ghidraRun.bat - Create a new Project: File → New Project → Non-Shared Project
Task 1.2 - Install x64dbg
- Download from:
https://x64dbg.com/ - Extract the file
- Run
x96dbg.exe(will automatically choose 32/64-bit) - Or run directly
x32dbg.exe/x64dbg.exe
Task 1.3 - Install Helper Tools
- PE-bear:
https://github.com/hasherezade/pe-bear - Detect It Easy (DIE):
https://github.com/horsicq/Detect-It-Easy - HxD (Hex Editor):
https://mh-nexus.de/en/hxd/
🔬 Part 2: First Analysis with Ghidra
We'll use calc.exe or notepad.exe as a safe example.
Task 2.1 - Open a File in Ghidra
- File → Import File
- Navigate to
C:\Windows\System32\calc.exe - Click OK on the default settings
- When asked about Analysis, click Yes
- Wait for the Analysis to finish (check status bar)
Task 2.2 - Explore the Interface
- Find the Symbol Tree window - open Imports
- Find the Functions window - how many functions are there?
- Find the entry (entry point)
- Click on any function - see the code in the Listing window
- See the Decompiler on the side (C code)
Task 2.3 - Search for Strings
- Search → For Strings
- Check all String types
- Click Search
- Browse the list - what's interesting?
- Double-click on a string to jump to it in the code
Task 2.4 - Check Imports
Open Symbol Tree → Imports and find:
- Which DLLs does the program import from?
- Are there file functions? (CreateFile, ReadFile...)
- Are there network functions? (socket, connect...)
- Are there Registry functions?
🐛 Part 3: First Steps with x64dbg
Task 3.1 - Open a Program for Debugging
- Open x64dbg (or x32dbg for 32-bit)
- File → Open
- Select
C:\Windows\System32\notepad.exe - The program will stop at the Entry Point
Task 3.2 - Get Familiar with the Interface
- Identify the CPU window (Assembly code)
- Identify the Registers window
- Identify the Stack window
- Identify the Dump window (memory)
Task 3.3 - Try the Shortcuts
- Press F8 (Step Over) several times - see EIP advancing
- Press F7 (Step Into) - enters a function
- Press F2 on a line - set Breakpoint
- Press F9 - run until the BP
- Press Ctrl+G - jump to address
Task 3.4 - Check Registers
In the Registers window:
- What is the value of EIP/RIP?
- What is the value of ESP/RSP?
- Press F8 and watch EIP change
- Double-click on EAX and change its value
📦 Part 4: PE Analysis with PE-bear
Task 4.1 - Check PE Structure
- Open PE-bear
- Drag an EXE file into it
- Check the Headers:
- Find the DOS Header (starts with MZ)
- Find the PE Signature
- What is the Entry Point?
- What is the ImageBase?
- How many Sections are there?
Task 4.2 - Check Sections
- Identify the .text section
- What are its permissions? (R/W/X)
- Identify the .data section
- Are there suspicious sections? (strange names, RWX permissions)
✅ Completion Checklist
At the end of this lab, make sure you know how to:
- Open a file in Ghidra and navigate it
- Search for Strings and Imports
- Open a program in x64dbg
- Use F7, F8, F9, F2
- Identify PE parts in PE-bear