Skip to content

krispybyte/DonerLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Information

Döner is a project made for securing your program, The loader includes asynchronous client and server communication made with Boost's TCP library, Asio. The Döner loader project is written in C++20 due to the ease of development when building an asynchronous application using the new co routines.

This project was initially made for learning purposes and making a simple loader, looking back a lot of the code could have been better, but this source should allow anyone to be able write a simple loader by using it as a reference. A lot of the features are not finished and I will most likely not be updating it any time soon, but I hope someone is able to learn from it or possibly improve it as pull requests are welcome.

Links

Task-list

  • RSA & AES256 Key exchange
  • Module streaming
  • Client state verification handled over the server
  • GUI (using ImGui)
  • Login
  • Hardware ID locking
  • Password hashing (crucial)
  • Log files for the client and server
  • Version checking and updating
  • Remember Me
  • Create a static library for the cryptography wrapper
  • Heartbeat
  • Module injection
  • Client pre-loader

Setup

Cloning Döner

git clone --recursive https://github.com/krispybyte/DonerLoader.git

Compiling dependencies used by Döner

CryptoPP library compilation
1. cd to the Dependencies/cryptopp directory.
2. git clone https://github.com/noloader/cryptopp-pem.git.
3. Add pem.h, pem_common.cpp, pem_common.h, pem_read.cpp, pem_write.cpp, x509cert.cpp and x509cert.h from the crypto-pem directory to the cryptopp submodule.
4. Launch the project and include the files you've just added, compile in x64 architecture.
MongoDb CXX library compilation
1. cd over to the Dependencies/mongo-c-driver directory.
2. cmake -G "Visual Studio 16 2019" -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_FLAGS="/Zc:__cplusplus" -DCMAKE_PREFIX_PATH=D:\Doner\Dependencies\mongo-c-driver -DCMAKE_INSTALL_PREFIX=D:\Doner\Dependencies-mongo-cxx-driver
3. Launch mongo-c-driver.sln, make sure the architecture is set to x64.
4. Compile the needed projects now, or all of them.
5. Launch CMake GUI, The source code path will be the directory of your mongo-cxx-driver, for example: D:\Doner\Dependencies\mongo-cxx-driver.
6. Press 'configure', set the generator and press finish.
7. You should get an error, make sure to turn BSONCXX_POLY_USE_STD on.
8. Make sure the 'Advanced' checkbox is turned on, scroll down to the bottom, you should see that bson-1.0_DIR and libbson-1.0_DIR are missing, set the libbson directory to the 'mongo-c-driver/src/libbson' directory, and the bson directory to the 'mongo-c-driver/src/libbson/bson', obviously include the full path for both.
9. You should get another error, with invalid libmongoc and mongoc directories, make the libmongoc path the 'mongo-c-driver/libmongoc' directory and the mongoc path the 'mongo-c-driver/libmongoc/mongoc' directory before pressing 'Configure' again.
10. Press 'Add Entry', name it 'CMAKE_CXX_STANDARD', set the type to string and the value to 20. Now edit the 'CMAKE_CXX_FLAGS' field and add "/Zc:__cplusplus" to it.
11. Configuration should be finished, press 'Generate' and then 'Open Project'.
12. Head to the 'mongo-cxx-driver/build' directory, launch MONGO_CXX_DRIVER.sln.
13. Make sure the architecture is set to x64, now compile 'mongocxx_shared'.
14. Done, the library will be in the 'mongo-cxx-driver/build/src/mongocxx/Release' directory by default.
15. In your actual project, make sure to also include the bson library, and both of the dynamic libraries.

Dependencies

Screenshots

Login form

Module selection form

Successful stream form

Crucial Credits

  • Sariaki for inspiring me to rename the project to Döner, here's his picture which inspired me: