Git Product home page Git Product logo

pe-explorer's Introduction

                          ____  ______   ______           __                    
                         / __ \/ ____/  / ____/  ______  / /___  ________  _____
                        / /_/ / __/    / __/ | |/_/ __ \/ / __ \/ ___/ _ \/ ___/
                       / ____/ /___   / /____>  </ /_/ / / /_/ / /  /  __/ /
                      /_/   /_____/  /_____/_/|_/ .___/_/\____/_/   \___/_/
                                               /_/                         
                                                                          
                                                                         
                                  PE Explorer in C++ (x86 / x64)
                          PE file parser, retrieve exports and imports

C++ Windows x86

๐Ÿ“– Project Overview :

This is a PE file parser, it retrieve every informations from the differents headers...

This tool is made in C++, it can parse x86 and x64 PE file.

๐Ÿ“š Features :

The parser retrieve several informations :

  • Every fields in DOS header.
  • Every fields in NT header.
  • Every fields in File header.
  • Every fields in Optional header (x86 / x64).
  • Every sections' informations in the Section header.
  • Every DLL imported with imported functions.
  • Every exported functions (if the DataDirectory exists).

๐Ÿš€ Getting Started :

Visual Studio :

  1. Open the solution file (.sln).
  2. Build the project in Realese (x86 or x64)

Every configuration in x86 / x64 (Debug and Realese) are already configured.

Note
It is not necessary to build it in x64, the x86 build can parse x86 and x64 PE file.

Other IDE using CMAKE :

This CMakeLists.txt should compile the project.

cmake_minimum_required(VERSION 3.0)
project(explorer)

set(CMAKE_CXX_STANDARD 17)

add_executable(explorer PE_Explorer.cpp)

Tested on CLion with MSVC compiler, you can get Visual Studio Build Tools here.

๐Ÿงช Usage :

How to use the program :

Use it in the command line :

explorer.exe <pe_file>

Note
You can test the parser with test files in the "Release" section.

Demonstration :

TEST FILE (EXE - x86)

Demo.EXE.x86.mp4

TEST FILE (DLL - x64)

Demo.DLL.x64.mp4

pe-explorer's People

Contributors

adamhlt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pe-explorer's Issues

Read Access Violation

I am getting "Read Access Violation" exception whenever I try to access any element of NTHeader.

error in 'EXPORTED FUNCTIONS'

Hello.
when the program tries to display the exported functions, it encounters a problem. I think in the GetExports function, if you change the casting to DWORD*, the problem will be resolved.

Line: 370
Replace this:
const auto pArrayOfFunctionsNames = (DWORD_PTR*)(dRawOffset + (pImageExportDirectory->AddressOfNames - pImageExportSection->VirtualAddress));

with this:
const auto pArrayOfFunctionsNames = (DWORD*)(dRawOffset + (pImageExportDirectory->AddressOfNames - pImageExportSection->VirtualAddress));

thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.