www.tripwire.com
Open in
urlscan Pro
2606:4700::6812:fb0
Public Scan
Submitted URL: http://buff.ly/3FItvBG
Effective URL: https://www.tripwire.com/state-of-security/ghidra-101-loading-windows-symbols-pdb-files
Submission: On April 03 via manual from CA — Scanned from CA
Effective URL: https://www.tripwire.com/state-of-security/ghidra-101-loading-windows-symbols-pdb-files
Submission: On April 03 via manual from CA — Scanned from CA
Form analysis
1 forms found in the DOMGET /search
<form action="/search" method="get" id="views-exposed-form-site-search-page-1" accept-charset="UTF-8" __bizdiag="3288564" __biza="WJ__">
<div class="form-row">
<fieldset class="js-form-item js-form-type-textfield form-type-textfield js-form-item-keys form-item-keys form-no-label form-group">
<label for="edit-keys" class="sr-only">Keywords</label>
<input data-bef-auto-submit-exclude="" placeholder="Search for keywords" data-drupal-selector="edit-keys" type="text" id="edit-keys" name="keys" value="" size="30" maxlength="128" class="form-text form-control">
</fieldset>
<fieldset class="js-form-item js-form-type-select form-type-select js-form-item-sort-bef-combine form-item-sort-bef-combine form-no-label form-group">
<label for="edit-sort-bef-combine" class="sr-only">Sort</label>
<select class="form-control form-select" data-drupal-selector="edit-sort-bef-combine" id="edit-sort-bef-combine" name="sort_bef_combine">
<option value="published_at_DESC" selected="selected">Newest first</option>
<option value="published_at_ASC">Oldest first</option>
<option value="search_api_relevance_1_DESC">Best match</option>
<option value="title_ASC">Title A-Z</option>
<option value="title_DESC">Title Z-A</option>
</select>
</fieldset>
<div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-group" id="edit-actions"><input data-bef-auto-submit-click="" class="search-button button js-form-submit form-submit btn btn-primary form-control"
data-drupal-selector="edit-submit-site-search" type="submit" id="edit-submit-site-search" value="">
</div>
</div>
</form>
Text Content
Cookie Preferences Ghidra 101: Loading Windows Symbols (PDB files) | Tripwire Skip to main content * Email Us * 800-328-1000 SECONDARY NAVIGATION * Customer Portal * Partner Portal * GET A DEMO * Products Toggle Dropdown * Tripwire Enterprise * Tripwire ExpertOps * Tripwire IP360 * Tripwire Industrial Visibility * Tripwire LogCenter * View All Products * Solutions Toggle Dropdown * Security Configuration Management * File Integrity and Change Monitoring * Vulnerability Management * Cloud * Compliance * Industries * Services * Resources Toggle Dropdown * Upcoming Events * On-Demand Webinars * Datasheets * Case Studies * Guides * Training * View all Resources * Blog * About Toggle Dropdown * Careers * Leadership * Newsroom * Partners * Contact Us Keywords Sort Newest firstOldest firstBest matchTitle A-ZTitle Z-A 1. Home 2. Blog 3. Ghidra 101: Loading Windows Symbols (PDB files) GHIDRA 101: LOADING WINDOWS SYMBOLS (PDB FILES) Posted on March 8, 2021 Image In this blog series, I will be putting the spotlight on useful Ghidra features you may have missed. Each post will look at a different feature and show how it helps you save time and be more effective in your reverse engineering workflows. Ghidra is an incredibly powerful tool, but much of this power comes from knowing how to use it effectively. The process of transforming source code into application binaries is a lossy process, but at least some of this data can be reincorporated into a Ghidra analysis by loading debug information. In fact, Microsoft maintains a repository of program database (PDB) files with debugging information about each published executable file. The PDB files generated when linking an application can be used to correlate particular instructions with source code file name and line numbers as well as to label variables and functions with symbolic names from the source. Although not strictly necessary for a successful analysis, loading a PDB file can greatly accelerate the reversing process by giving a glimpse into the authors’ thought process. Ghidra helpfully provides functionality for identifying and downloading PDB files from a symbol server. Although initial releases of Ghidra required Windows, the release of version 9.2 in November 2020 has introduced a platform-independent PDB parser, thereby opening the doors for Linux and macOS users to easily analyze Windows components complete with symbol information. In this post, I will briefly recap the steps for using Ghidra to analyze a Windows binary with details loaded from Microsoft’s symbol server. Being able to do this natively in Ghidra without a Windows computer is a big productivity boost for those of us who must occasionally dissect Windows binaries but who do not primarily use Windows as a native OS. It is really fantastic to see the Ghidra developers adding features that directly improve my workflow, and I can’t wait to see what’s in the pipeline for new features. Without further introduction, here are the steps for identifying, downloading and applying Windows PDB files from Microsoft’s public symbol server. The steps were tested on macOS running Ghidra 9.2.2 via Amazon Corretto for JDK 11: Step 1: Import a Windows executable or library into a Ghidra project. Step 2: Open the program in CodeBrowser and select ‘No’ when asked to analyze the program. Step 3: Select ‘Download PDB’ from the File menu Image Step 4: Select ‘PDB’ when prompted to choose between PDB and XML Image Step 5: The next prompt asks about using a search path specified in the executable. Select ‘No’ and then select a local folder where PDB files should be downloaded. Step 6: Click ‘Choose from known URLs’ to select an appropriate download URL and click ‘Download from URL.’ Image Step 7: After a pop-up confirming the download success, select ‘Yes’ to apply the PDB. Image Step 8: Confirm the PDB load options by clicking ‘Apply.’ Image Step 9: Be patient while the symbols load. This can take a few minutes. Image Step 10: Observe that the symbol tree has been populated with descriptive symbol names. Image All available Ghidra views and plugins should now be integrated with the debugging information from the PDB. NOTICE: These instructions were written for Ghidra 9.2.x. An updated post for loading symbols in Ghidra 10.x is coming soon. READ MORE ABOUT GHIDRA Ghidra 101: Cursor Text Highlighting Ghidra 101: Creating Structures in Ghidra Ghidra 101: Decoding Stack Strings Ghidra 101: Slice Highlighting Ghidra 101: Loading Windows Symbols (PDB files) in Ghidra 10.x CRAIG YOUNG View Profile FOOTER MENU PRODUCTS & SERVICES * Tripwire Industrial Visibility * Tripwire IP360 * Tripwire LogCenter * Tripwire ExpertOps * Services * View All Products SOLUTIONS * By Security Need * By Compliance Need * By Industry RESOURCES * Upcoming Events * On-Demand Webinars * Datasheets * Training ABOUT * Fortra * Patents * Customer Support * Report a Vulnerability CONTACT INFORMATION PRIVACY POLICY COOKIE POLICY IMPRESSUM Copyright © Fortra, LLC and its group of companies. All trademarks and registered trademarks are the property of their respective owners. Subscribe for Weekly Security Insights Join over 20,000 IT Security pros who get relevant insights delivered to their inbox weekly. Subscribe Now Learn more about us!