Last 5 News Posts:

Hello everyone,

Since someone person with no life keeps manually registering bots to spam the forum, I have decided to ban the two commonly used email hosts that are associated with bots. This ban includes:

Code: Select all


If you are hit by this ban and were already registered, feel free to send me an email and I can exclude your email specifically.
You can email me at:

Code: Select all

atom0s - at - live - dot - com
Hello everyone,

Some more minor updates to the site.
  • Some backend work/updates.
  • Guests should now be able to view every section of the forum.
  • Added some common file extension types to be allowed for attachments.
  • Updated the banner logo of the forum. (Simple and basic. Want to submit a different one? Feel free to pm me.)
File types added to the allowed list:
  • .cs - C# source code files.
  • .vb - Vb.NET source code files.
  • .lua - Lua scripts.
  • .ct - Cheat Engine trainer tables.
  • .CETRAINER - Cheat Engine trainers.

While I am enabling CETRAINER extensions to be allowed, if this is abused I will remove it.
Hello everyone,

Some minor updates to the forums have happened over the last few days.
  • Updated some backend extensions.
  • Updated the forum theme to something more suitable and appealing.
  • Updated the registration code used to register on these forums.
The registration code is now in two parts. All you need to do is copy paste both parts into the same box forming a single code.
No spaces are used! Just make it one full word of the two parts.
This was a topic that was brought up on Tuts4You here: ... -peb-in-c/

I Google'd around and could not find a single instance of doing this in C# within the parameters given by the poster so I took to some ideas in mind of how I could allocate memory without any imports.

Some ideas that came to mind were:
- Marshal.AllocHGlobal
- Marshal.AllocCoTaskMem
- MemoryStream

Sadly, all three of these options only allocate the memory that have protection flags of PAGE_READ and PAGE_WRITE with no ability to execute.

Next, I thought of memory mapped files, these are a way to share memory between processes. This API allows you to specify the access type of the file, including execution permissions. C# has this built-in via the 'System.IO.MemoryMappedFiles' namespace within the System.Core.dll module.

Using this namespace, we can create a mapped file in memory, write our shellcode to it, create a function delegate to the function and invoke it. Here's an example of doing this, getting the PEB of the process (32bit):
  1. /**
  2.  * C# Shellcode Example
  3.  * (c) 2017 atom0s []
  4.  *
  5.  * Demonstrates how to invoke shellcode within C# using a memory mapped file.
  6.  */
  8. namespace ShellcodeExample
  9. {
  10.     using System;
  11.     using System.IO.MemoryMappedFiles;
  12.     using System.Runtime.InteropServices;
  14.     class Program
  15.     {
  16.         /// <summary>
  17.         /// Function delegate to invoke the shellcode.
  18.         /// </summary>
  19.         /// <returns></returns>
  20.         private delegate IntPtr GetPebDelegate();
  22.         /// <summary>
  23.         /// Shellcode function used to obtain the PEB of the process.
  24.         /// </summary>
  25.         /// <returns></returns>
  26.         private unsafe static IntPtr GetPeb()
  27.         {
  28.             var shellcode = new byte[]
  29.                 {
  30.                     0x64, 0xA1, 0x30, 0x00, 0x00, 0x00,         // mov eax, dword ptr fs:[30]
  31.                     0xC3                                        // ret
  32.                 };
  34.             MemoryMappedFile mmf = null;
  35.             MemoryMappedViewAccessor mmva = null;
  37.             try
  38.             {
  39.                 // Create a read/write/executable memory mapped file to hold our shellcode..
  40.                 mmf = MemoryMappedFile.CreateNew("__shellcode", shellcode.Length, MemoryMappedFileAccess.ReadWriteExecute);
  42.                 // Create a memory mapped view accessor with read/write/execute permissions..
  43.                 mmva = mmf.CreateViewAccessor(0, shellcode.Length, MemoryMappedFileAccess.ReadWriteExecute);
  45.                 // Write the shellcode to the MMF..
  46.                 mmva.WriteArray(0, shellcode, 0, shellcode.Length);
  48.                 // Obtain a pointer to our MMF..
  49.                 var pointer = (byte*)0;
  50.                 mmva.SafeMemoryMappedViewHandle.AcquirePointer(ref pointer);
  52.                 // Create a function delegate to the shellcode in our MMF..
  53.                 var func = (GetPebDelegate)Marshal.GetDelegateForFunctionPointer(new IntPtr(pointer), typeof(GetPebDelegate));
  55.                 // Invoke the shellcode..
  56.                 return func();
  57.             }
  58.             catch
  59.             {
  60.                 return IntPtr.Zero;
  61.             }
  62.             finally
  63.             {
  64.                 mmva?.Dispose();
  65.                 mmf?.Dispose();
  66.             }
  67.         }
  69.         /// <summary>
  70.         /// Entry point.
  71.         /// </summary>
  72.         /// <param name="args"></param>
  73.         static void Main(string[] args)
  74.         {
  75.             var peb = GetPeb();
  76.             Console.WriteLine("PEB is located at: {0:X8}", peb.ToInt32());
  77.         }
  78.     }
  79. }
Thanks to evlncrn8 for his adjustments to the shellcode itself to trim things down.
Hello everyone,

I have done some reorganization on the site and forum which was much overdue. I am aiming to make the forums a bit more public-use friendly and have done some cleanup and updates.

Forums Updated
  • I have started by updating the forums to the latest version of phpBB. While upgrades are a great thing this did land up breaking some of the previous plugins I was using and some custom edits etc. I have done my best to find alternatives and fill in the gaps myself where possible. Casual users should not notice any difference in the forums on that end though, most things were admin-only features.

    I also changed the forum theme due to the upgrade to the latest forum version. The previous theme was no longer supported, so I had to find something different. I made some modifications to this new theme to fit my preference in how I like the forum system to look. If you find any issues, feel free to let me know.
Changing Forum Sections
  • I have renamed the 'My Blog' section to better fit its purpose. The idea of having it as a blog is no longer fitting to the purpose of the forums. Because of that I have also added a new section 'Rants / Opinions' and moved all relevant posts from the original blog section there. These no longer fit the "front-page" aspect I have planned for the new site when I have time to work on it. I would rather the main website contain posts and information regarding my actual work and site news rather than me bashing a company/brand I dislike.

    I plan to add and redo some other sections in time as well. So this is an ongoing change that will continue over the next several weeks.
New Forum Features (Upcoming)
  • While most of my work is free and released here with nothing more than a donation link somewhere in the project, I want to test the waters on bringing in some more money to continue my incentive to work on various projects. I plan on creating a Patreon page in the near future and with that, I may add some perks for various donation levels that will affect this site in one way or another. Such as Patreon pledgers being added to special user groups, gaining access to certain apps before others (like closed-beta testers) and so on. So there may be some upcoming changes that will alter how some content is handled on this site/forum in the future.