Git Product home page Git Product logo

exepeek's Introduction

EXEPeek

This is my hobby project, where I initially planned to create a complete software that could parse Windows's PE file structure. Made using C++, while using Windows API for UI and other related functionality.

My goal was to create a PE structure viewer, that more or less same as PEview. But because of lack of time, and I currently focusing on other interests, so this is kinda abandoned project.

Please keep in mind that this project is half-finished, and at current rate is very unstable!

Screenshot

image

Checklist

Here is the list of things that I had in mind when developing this project:

  1. Create a complete PE structure viewer (far from complete)
  2. Using Windows API (for UI and related tasks) without relying much on other libraries
  3. Create a freestanding executable. This is to ensure that this program can run everywhere, without depending on too many dependencies.
  4. Supporting another executable structure such as ELF or Mach-O format.

Program Design

In order to make the project more cleaner, I've splitted the components into their appropriate folder. For example, all UI elements are reside in gui folder. All code are in C++, with Object-Oriented programming design.

  1. gui - contains all code related to UI
  2. misc - contains all miscellaneous code (such as opening file, data structure, etc)
  3. structures - contains code to parse PE structure

How to build?

Contrary to the famous opinion that when you're developing Windows program you must use Windows OS to do so.

This is not the case for me, as I'm relying 100% on open-source toolkits such as MinGW-w64 and Wine when developing this software while using Arch Linux as my main OS.

Build guide (Arch Linux)

$ pacman -S make cmake mingw-w64-gcc mingw-w64-headers wine-staging

Once you installed all required things, go to main EXEPeek directory and run ./build.sh, which will automagically build the software for you.

The compiled executable will be inside build-win/. You can use Wine in order to run the program.

What I've Learned?

This is my first time developing a serious project using Windows API's UI toolkit. This has been kinda on my checklist of things that I must learn.

Honestly, IMHO, developing a program that uses Windows API UI toolkit is a pain in the ass. You better get off using something like Qt or wxWidgets. YES, you can use Windows API UI toolkit when developing a simple program. But, please, don't ever try to use it when developing a large project.

The reason why I said Windows API UI bad is because developing UI in Windows API is hard, I bet you will spend 60% of your time figuring how to layout and setup UI things instead of spending time on the main thing, which is your program functionality.

exepeek's People

Contributors

shahril96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.