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

Analysis of a VAC module

Analysis of a vac module

FileSize: 58,880 Bytes
.text hash: 0x59DC680
Number of scans: 4
TimeDateStamp: 0x564B49A8h Tue Nov 17 15:37:12 2015


This is a vac module that was created a week and a half ago.
So far it seems to be an updated version of a module that I reversed months ago.

For anyone interested, I run lionsneck.com and use my knowledge of vac to keep my builds undetected.

This is the analysis of the first scan.
To begin, the function 0x1000361C is called passing the current object, the target process id, and a third paramter.
The scan begins by opening a handle to the target process with OpenProcess using the parameters PROCESS_QUERY_INFORMATION and PROCESS_VM_READ.
If it fails to open a handle it calls GetLastError and returns error code 61.

The scan then stores the process id into the current object and calls GetProcessTimes to get and then store the creation timestamp.
Next it gets a handle to Kernel32.dll and gets the proc address of IsWow64Process.
If successful, it calls IsWow64Process on the current process using GetCurrentProcess.
It checks if the current process is 32 bit and if the target process is 64 bit.
If the target process is 64 bit, it does the following actions using the undocumented 64 bit APIs:
Code
NtWow64ReadVirtualMemory64
NtWow64QueryInformationProcess64

Once past that, it calls NtQueryInformationProcess on the target process querying ProcessBasicInformation.
Then it stores the parent process id.

It checks if the PebBaseAddress is NULL.
If NULL, it queries NtQueryInformationProcess with the option ProcessImageFileName.
It then copies the image file name using widetochar_s and returns code 66.

If the PebBaseAddress is not NULL.
It uses ReadProcessMemory to read the PROCESS_EXECUTABLE_BLOCK structure from the target process.
Using the PEB it then uses ReadProcessMemory to read the ProcessParameters from the target process as well.

Using ReadProcessMemory it copies the Working Directory, Executable Path, and the Command Line from the target process.

After it finishes copying all the strings above, it reads the LoaderData using the PEB.

An interesting part is how they read the modules.

The undocumented version of the PEB_LDR_DATA contains three LIST_ENTRY structures while the MSDN version of the structure only contains one.


MSDN
Code
typedef struct _PEB_LDR_DATA {
  BYTE       Reserved1[8];
  PVOID      Reserved2[3];
  LIST_ENTRY InMemoryOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;


Undocumented:
Code
typedef struct _PEB_LDR_DATA_EXTENDED{
    DWORD dwLength;
    DWORD dwInitialized;
    DWORD SsHandle;
    LIST_ENTRY InLoadOrderModuleList;
    LIST_ENTRY InMemoryOrderModuleList;
    LIST_ENTRY InInitializationOrderModuleList;
} PEB_LDR_DATA_EXTENDED;


The developers of this module are indirectly accessing the InLoadOrderModuleList by passing a negative index to the InMemoryOrderLinks array.

Code
&LdrDataTableEntry.InMemoryOrderLinks.Flink[-1]

You can tell they are using the MSDN version of the structure since they pass 72 bytes to ReadProcessMemory rather than the actual size
which is 80 bytes.

The InLoadOrderModuleList pointers happen to exist right above InMemoryOrderModuleList in memory, but InInitializationOrderModuleList does not exist after InMemoryOrderModuleList.

Continuing on.
They read up to a maxmimum of 1,000 modules in the format.

Code
// (sizeof=0x224)
typedef struct _VAC_MODULE_ENTRY {
char field_0[20],
DWORD dwDllBase,
DWORD dwSomeSize,
DWORD dwDllBase2,
char szImageName[256],
char szFullDllName[260]
} VAC_MODULE_ENTRY;

It copies FullDllName, DllBase, and even assigns the target process id into what seems like the string buffer.

It uses HeapAlloc and HeapReAlloc to increase the size of the VAC_MODULE_ENTRY array with every loop.

Once it reaches 1,000 modules, hits a null Flink, or the Flink points to the first entry.
It stops copying the modules and the scan is finished.

I hope this was helpful to anyone else that is reversing VAC.
the same guy who was selling PEB removal and Server side encryption builds for 100$/month, go and rip people off at reddit not here.
Almost forgot about you, thanks for reminding.
(Nov 27, 2015 03:51 AM)YesHax Wrote:  the same guy who was selling PEB removal and Server side encryption builds for 100$/month, go and rip people off at reddit not here.
Almost forgot about you, thanks for reminding.

Hello mekelek,
I don't believe I've had the pleasure of speaking with you.
However I did receive one of your previous messages:

Quote:On a scale of 1 to copypaste, how copypaste is this garbage?
[..]


It was a bit rude, especially since I have no animosity towards you since we have never spoken.
So I'd like to start a dialogue.
Hello, I'm James Plekly.

I did not offer PEB removal on my website.
I assume you're referring to unlinking my module from the PEB_LDR_DATA chain.
Erasing a PEB_LDR_DATA entry from from the module chain does not provide security.
In fact Valve Anti-Cheat can determine if your module has been unlinked by finding the file handle of your executable space with NT APIs.

The first feature that was listed was Portable Executable header removal.
Its not necessarily removal since it is not erased after the fact, but only used
as a guideline for generating the payload that is loaded into the game's memory.

I was not offering PE Removal for $100 USD, but rather 3 dozen features including metamorphic code.
I am not sure if you are aware of the difficulty of metamorphism.
It is not as simple as a packer or some other public solution.
Metamorphing a module requires a 100% analytical disassembly of your module so that when the opcodes are replaced with hundreds of combinations. The module can be reassembled in working order. It requires a thorough understanding of not only assembly, but of how the Microsoft Visual Run-Time Libraries initializes exception handlers, function pointer arrays, pointer jump tables, embedded data, and so much more.

Instead I dissolved the $100 dollar features into the two existing packages so that they are both undetected from any existing tactics that Valve Anti-Cheat currently uses.
This is beneficial for all my existing customers and anyone interested in experiencing my products.
Additionally I removed the listing of all the features since it was unsightly to have a long page of features above the purchase button.

If you have any questions about my builds, just let me know and I would be more than happy to discuss them here in this open forum.
(Nov 27, 2015 04:27 AM)JPlekly Wrote:  Hello mekelek,
I don't believe I've had the pleasure of speaking with you.
However I did receive one of your previous messages:


It was a bit rude, especially since I have no animosity towards you since we have never spoken.
So I'd like to start a dialogue.
Hello, I'm James Plekly.

I did not offer PEB removal on my website.
I assume you're referring to unlinking my module from the PEB_LDR_DATA chain.
Erasing a PEB_LDR_DATA entry from from the module chain does not provide security.
In fact Valve Anti-Cheat can determine if your module has been unlinked by finding the file handle of your executable space with NT APIs.

The first feature that was listed was Portable Executable header removal.
Its not necessarily removal since it is not erased after the fact, but only used
as a guideline for generating the payload that is loaded into the game's memory.

I was not offering PE Removal for $100 USD, but rather 3 dozen features including metamorphic code.
I am not sure if you are aware of the difficulty of metamorphism.
It is not as simple as a packer or some other public solution.
Metamorphing a module requires a 100% analytical disassembly of your module so that when the opcodes are replaced with hundreds of combinations. The module can be reassembled in working order. It requires a thorough understanding of not only assembly, but of how the Microsoft Visual Run-Time Libraries initializes exception handlers, function pointer arrays, pointer jump tables, embedded data, and so much more.

Instead I dissolved the $100 dollar features into the two existing packages so that they are both undetected from any existing tactics that Valve Anti-Cheat currently uses.
This is beneficial for all my existing customers and anyone interested in experiencing my products.
Additionally I removed the listing of all the features since it was unsightly to have a long page of features above the purchase button.

If you have any questions about my builds, just let me know and I would be more than happy to discuss them here in this open forum.
you forgot to post the other funny part about Mr. Thing cutiepie.
talk shit get hit.
I dont understand anything of this but its interesting :D
Got a dump of input packet? too lazy to fire it up
Fairly sure this is a VGnosis, Fadedcoder or that tier0 shit, No one has had shitty GUI style and all his websites lookalike and push features in the same way, Regardless you payed for it to be advertised on reddit, That's just silly.
(Nov 27, 2015 06:23 AM)iamvexatious Wrote:  Fairly sure this is a VGnosis, Fadedcoder or that tier0 shit, No one has had shitty GUI style and all his websites lookalike and push features in the same way, Regardless you payed for it to be advertised on reddit, That's just silly.

top secret: segnosis runs both of those two, and has a sexy voice.

I don't think it's him.
(Nov 27, 2015 06:32 AM)lurkeryuri Wrote:  top secret: segnosis runs both of those two, and has a sexy voice.

I don't think it's him.

They both seem to have a hardon for glow esp and metamorphic Code as features, Tier0 and lionsneck both have a pretty similar feature list, Let's not forget that tier0 and lions neck have an nearly identical advertising for crosshair, RCS and both have features under a "Physics" tab (which is silly regardless) So either segnosis is a personal hero of James's or they're pretty tight ;)

Edit: I was well aware it was the same guy behind Faded, Tier0 just didn't know his name outside this forum.
Don't know what any of this means, but I got erect from it.
(Nov 27, 2015 09:42 AM)NumbaN1ne Wrote:  Don't know what any of this means, but I got erect from it.

Now slap your monitor with it while singing this song:


Not available for business inquiries atm
(Nov 27, 2015 04:27 AM)JPlekly Wrote:  Hello mekelek,
I don't believe I've had the pleasure of speaking with you.
However I did receive one of your previous messages:


It was a bit rude, especially since I have no animosity towards you since we have never spoken.
So I'd like to start a dialogue.
Hello, I'm James Plekly.

I did not offer PEB removal on my website.
I assume you're referring to unlinking my module from the PEB_LDR_DATA chain.
Erasing a PEB_LDR_DATA entry from from the module chain does not provide security.
In fact Valve Anti-Cheat can determine if your module has been unlinked by finding the file handle of your executable space with NT APIs.

The first feature that was listed was Portable Executable header removal.
Its not necessarily removal since it is not erased after the fact, but only used
as a guideline for generating the payload that is loaded into the game's memory.

I was not offering PE Removal for $100 USD, but rather 3 dozen features including metamorphic code.
I am not sure if you are aware of the difficulty of metamorphism.
It is not as simple as a packer or some other public solution.
Metamorphing a module requires a 100% analytical disassembly of your module so that when the opcodes are replaced with hundreds of combinations. The module can be reassembled in working order. It requires a thorough understanding of not only assembly, but of how the Microsoft Visual Run-Time Libraries initializes exception handlers, function pointer arrays, pointer jump tables, embedded data, and so much more.

Instead I dissolved the $100 dollar features into the two existing packages so that they are both undetected from any existing tactics that Valve Anti-Cheat currently uses.
This is beneficial for all my existing customers and anyone interested in experiencing my products.
Additionally I removed the listing of all the features since it was unsightly to have a long page of features above the purchase button.

If you have any questions about my builds, just let me know and I would be more than happy to discuss them here in this open forum.

Don't waste your time responding to him, Mekelek is not a developer, he's just a forum troll. Nice share though.
Mekelek is annoying. Should develop a task force like they did Osama Bin Laden and eliminate this nigga.
(Nov 27, 2015 04:10 PM)Vuno Wrote:  Mekelek is annoying. Should develop a task force like they did Osama Bin Laden and eliminate this nigga.

It would make sense if he was a developer and his opinion, even if insane, was backed up by knowledge but it's not, he's like Finale, if Finale wasn't a developer. That is awful, regardless, he's already on thin ice and he'll be gone from HF soon if he keeps up with his usual bullshit.
Lmao I tried to report his post, and it was already reported. Task force started!


Possibly Related Threads...
Thread / Author Replies Views Last Post
by ReporterAug 19, 2018 02:38 PM 31 2,314 Aug 19, 2018 02:38 PM
Last Post: LincolnOG
by asedwjdawwqAug 10, 2016 04:48 PM 15 872 Aug 10, 2016 04:48 PM
Last Post: ๖ۣۜBlastonic
by JPleklyDec 22, 2015 04:06 PM 13 1,296 Dec 22, 2015 04:06 PM
Last Post: cdr1za