A method from GH on how to stream a dll without touching disk, TAGS: fortnite cheat fortnite injector dll injector

dll-encryptor

People who make pay hacks typically have down syndrome and are incapable of using their brains in any fashion, and yet these bath salt smoking morons are making pay hacks...Sooner or later when they get close to actually releasing their cheat, they realize "omg I pasted this entire thing, what if someone leaks my DLL, they'll know I'm a retard!"

That is when they then come to GH and ask "how to stream a DLL without hitting disk!?!?"

Well look what we have here, our old friend Senor Paster McGee is back and needs help doing actual development, something he can't paste. Well don't worry folks, Lord Rake has granted you a glimpe into his omniscience with this fresh AF proof of concept that will show you how to stream a DLL, without touching disk, and we'll even slap some juicy encryption on it as well.

This source code shows you how to split the DLL into 4 different files and encrypt each of them using blowfish encryption with seperate keys. Your loader would download these 4 files using InternetReadFile, decrypt them and then combine them into the original DLL bytes as a string, and then manually map it. I have left manual mapping out of this project, you have to figure that part out.

People making payhacks ask how to stream a DLL in C++ all the time, maybe they shouldn't be making pay hacks if they can't solve simple problems like this, smh. So how do you stream a DLL from your web server without downloading it to disk?

Disclaimer: I whipped this up as fast as I could, nothing too special, this is just something I came up with to reduce the chance your DLL gets dumped.

This is how you stream a DLL into a string, without ever touching disk, simply using InternetReadFile (obviously it would be best to use something different that isn't a simple WinAPI call, but this is just a PoC)

std::string StreamFileToMemString(std::wstring URL)
{
    const wchar_t* header = L"Accept: *" "/" "*\r\n\r\n";
    HANDLE hInterWebz = InternetOpen(L"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
    HANDLE hURL = InternetOpenUrl(hInterWebz, URL.c_str(), header, lstrlen(header), INTERNET_FLAG_DONT_CACHE, 0);

    char* Buffer = new char[100000000]; //100mb
    memset(Buffer, 0, 100000000);
    DWORD BytesRead = 1;

    std::string data;

    if (InternetReadFile(hURL, Buffer, 100000000, &BytesRead))
    {
        data = std::string(Buffer);
    }

    delete[] Buffer;
    InternetCloseHandle(hInterWebz);
    InternetCloseHandle(hURL);

    return data;
}

This is how we download the 4 encrypted file & decrypt it into a string which represents our streamed DLL

std::string GetDecryptedDLL()
{
    std::string data1 = StreamFileToMemString(LR"(https://guidedhacking.com/gh/dl/dlltest/1)");
    std::string data2 = StreamFileToMemString(LR"(https://guidedhacking.com/gh/dl/dlltest/2)");
    std::string data3 = StreamFileToMemString(LR"(https://guidedhacking.com/gh/dl/dlltest/3)");
    std::string data4 = StreamFileToMemString(LR"(https://guidedhacking.com/gh/dl/dlltest/4)");

    std::string decryptedDLL = Decrypt({ data1, data2, data3, data4 });

    return decryptedDLL;
}

This function shows the blowfish decryption of the streamed DLL:

std::string Decrypt(EncryptedData_t encryptedData)
{
    //decrypt each part
    std::string BufferDecrypted = blowfish1.Decrypt_CBC(encryptedData.a);
    BufferDecrypted += blowfish2.Decrypt_CBC(encryptedData.b);
    BufferDecrypted += blowfish3.Decrypt_CBC(encryptedData.c);
    BufferDecrypted += blowfish4.Decrypt_CBC(encryptedData.d);

    //rebuild the DLL from decrypted data
    std::ofstream ofs;
    ofs.open(L"original-rebuilt.dll", std::ios::binary);
    std::copy(BufferDecrypted.begin(), BufferDecrypted.end(), std::ostream_iterator<char>(ofs));
    ofs.close();

    return BufferDecrypted;
}

This is showing a test case of downloading, decrypting and saving the file to disk, for testing that it works correctly:

int TestDownloadAndDecryption(fs::path currDir)
{
    std::string decryptedDLL = GetDecryptedDLL();

    //Test output to disk
    std::ofstream ofs;
    ofs.open(currDir / L"original-rebuilt.dll", std::ios::binary);
    std::copy(decryptedDLL.begin(), decryptedDLL.end(), std::ostream_iterator<char>(ofs));
    ofs.close();

    std::getwchar();
    return 0;
}

Now what? How to inject the DLL stream

std::string decryptedDLL = GetDecryptedDLL();
ManualMap(decryptedDll.c_str());
//Ensure the DLL bytes are destroyed at this point

This encrypted DLL streaming project is a great starting point for any amateur pay cheat.

Obviously if you were reversing this, you would just dump the argument to the manual mapping function, but if you slapped VMProtect on this and used a few other tricks, it would be annoying enough where most people would give up. Also the flow of execution is very obvious, if you were to do this in stages, sprinkled through the entire execution of your loader, it would be a lot less obvious.

Pro Tip: if you're gonna use this or any other type of encryption, randomize the S boxes and the P array, if you don't SignSearch will detect them and the person analyzing it will instantly know the encryption routine. Most encryption like blowfish will give you this default seed data, and every single implementation you find online will all use the same default seed data, making it trivial to identify with something like SignSearch. (some even use the same key, smh). When you use signsearch and it identifies the encryption, it takes about 15 seconds to find the decryption function. I have already randomized them in my download above.

Also be wary of using cryptopp or other common libraries, they are super easy to identify, some expose RTTI and others have pdbs, then you have TypeLibraries and Lumina servers, making it too easy to identify and reverse them with limited effort.

You can download the entire project below, and that ends my C++ how to stream a DLL tutorial.

unrealuser#0001 < THIS IS A TOTAL REPOST OF https://guidedhacking.com/threads/how-to-stream-a-dll-without-touching-disk-encrypted.16940/ >

Owner
Micca
Somewhere in the .UBX0 section
Micca
Similar Resources

A Updated fortnite rage cheat source!

A Updated fortnite rage cheat source!

FORTNITE RAGE CHEAT LATEST UPDATE 08-19-2021 🗓 Alredy Updated for 17.40 I will update this source every update! Info 📝 This original source was made

Dec 21, 2022

A Fortnite Cheat updated for Season 8.

Fortnite-Cheat A Fortnite Cheat Source I found and tested. Works well and is pretty undetected. Compiled it you can download it under release or just

Nov 18, 2021

For your Fortnite Cheat or Internal paste

bytes-streaming simple bytes "streaming" if we can call it like that, i made. That's totally not protected from dumpers, so please do not use it for m

Jan 6, 2022

Updated bone id's for ur shit fortnite cheat

fortnite-cheat-bones Updated bone id's for ur shit fortnite cheat credits to mcivan for the idea its pretty simple what I did, I just made it draw the

Jul 25, 2022

fortnite cheat external that uses efi drivers and is updated

fortnite-external-efi-drivers fortnite cheat external that uses efi drivers and is updated ALL CREDITS TO CHASE: https://github.com/Chase1803 i just u

Dec 18, 2022

A Updated fortnite rage cheat source!

A Updated fortnite rage cheat source!

FORTNITE RAGE CHEAT LATEST UPDATE 08-29-2021 🗓 Alredy Updated for 17.40 (17269705) I will update this source every update! Info 📝 This original sour

Dec 21, 2022

Source Code of "TheGodFather" fortnite external cheat.

mod aka !mod#9659 (ID: 597485373194764311) is a fraud This guy is selling a popular fortnite "Private" External called "GodFather". The cheat that he

Apr 27, 2022

Private internal Cheat-Injector for Valorant

CyberVal-Injector CyberVal is a paste of a internal Valorant Cheat which has been used by several providers like LeagueHell, Enduty and several other

Jan 5, 2023

Fortnite Cheat thats internal, will be updating

Fortnite-cheat-source-internal-self-leak Here is my fortnite internal cheat source. I will maybe update this every update. Features Box ESP FOV Change

Jul 20, 2022
Cobalt Strike Beacon Object File (BOF) that uses handwritten shellcode to return the process Environment strings without touching any DLL's.
Cobalt Strike Beacon Object File (BOF) that uses handwritten shellcode to return the process Environment strings without touching any DLL's.

Cobalt Strike "Where Am I?" Beacon Object File Cobalt Strike Beacon Object File (BOF) that uses handwritten shellcode to return the process Environmen

Nov 30, 2022
Simple one file header for hijacking windows version.dll for desired executable to do 3rd party modifying without dll injection.

Version-Hijack Simple one file header for hijacking windows version.dll for desired executable to do 3rd party modifying without dll injection. Usage

Oct 19, 2022
Rampin - Try to make Windows preload files into RAM by memory mapping and touching them.

rampin A small C program to try keep a file or few in Windows RAM cache. For a Unix (not only Linux) alternative see vmtouch. Takes one or more filena

Apr 11, 2022
A dumper for CS:GO cheat loaders that use manual map injection method
A dumper for CS:GO cheat loaders that use manual map injection method

NoobDumper v2 A (mostly dll) dumper for CS:GO cheat loaders that use manual map injection method How to use this Inject the dumper into the loader ( x

Jul 21, 2022
Tree-sitter grammar for comment tags like TODO, FIXME(user).

Tree-sitter grammar for comment tags like TODO:, FIXME(user):, etc. Useful to be embedded inside comments.

Jan 9, 2023
Tuple but with tags.

tagged_tuple Tuple but with tags. Example code: #include <iostream> #include "tagged_tuple.hpp" int main() { // defines binding between types (na

Nov 17, 2021
Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags
Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags

ATC_TLSR_Paper Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags using the TLSR8359 ARM SOC You can support my work via PayPal: https:

Dec 25, 2022
Here is my fortnite internal cheat source. I will update this every update.

Fortnite-cheat-source-internal-self-leak Here is my fortnite internal cheat source. I will update this every update. If u have any issue (not retarded

Dec 19, 2022
A loadlibrary injector for the game Splitgate that fully bypasses their EQU8 anti-cheat implementation.

splitgate-load-library-injector A loadlibrary injector for the game Splitgate that fully bypasses their EQU8 anti-cheat implementation. Information Th

Oct 3, 2022
A Updated fortnite rage cheat source!
A Updated fortnite rage cheat source!

FORTNITE RAGE CHEAT LATEST UPDATE 08-16-2021 ?? Info ?? This original source was made by @Android1337 edited and updated to the latest fortnite patch

Dec 21, 2022