I am a 17 year old software engineer and a freshman at the University Of South Alabama, currently getting a major in computer science. Im also enlisted in the Army National Gaurd as a 15W which is UAV pilot
About me
I've been programming for around 3 years, starting off in a HighSchool python and JavaScript class. These classes didn't teach me much about coding but definetly sparked my interest. I would do extra projects at home, outside of the assigned ones. In March of 2024, I left behind higher level languages and started learning lower-level, like c++ and c#. I came to fall in love with c++ and still do code in it every day. I also started working on web applications, like this one, about June of 2024.
In my freetime I enjoy hunting, shooting guns, hanging out with friends, and swimming. I am also a Muay Thai fighter and with my 8 year wrestling background, fell in love with BJJ and competing. Im also in the Pi Kappa Alpha Fraternity at University of south alabama in the Eta Kappa Chapter.
Projects
CSGO Cheat
Counter strike global offensive is a popular multiplayer video game with over 1.4 Million active players. The cheat has multiple things inside including ESP(extra sensory input) which is boxes draw around players which render through walls, Aimbot which no matter where the user is looking will instantly lock onto the enemy, and a triggerbot which will auto-shoot if the users crosshair is over an enemy. This works by reading and writing to the games process memory in ram. popular video games, like counter-strike, have anti cheats which prevent random exe to attatch to the process and do exactly that. The way I got around Valve(the anticheat) was by coding a Kernel driver ,which operates with the highest permissions on a computer, and from that using a communicaiton method called IOCTL codes, which will send information i request from my user-mode exe, to the driver which will execute instructions. This is undetected by the anti-cheat. After getting a handle to the game, I then get the process ID and client base address. From there I can use memory offsets to find the player, entity list, and everything i need about the game. Once i get a valid enemy from the ent list, I can get the coordinates. But wait, not done yet. The coordinates are 3d which must be converted to 2d(on your screen) to be able to draw a box around them. For this I use a world-to-screen function, which is a formula that converts 3d coords to 2d. After that I use the popular rendering software ImGui to draw a box every frame around the player.
Sudoku Solver
This sudoku solver takes in a 9x9 sudoku board and using recursive backtracking, systematically solves the board. I was first making this in python, but realized i could do it in c++, making it solve instantly. First, we have to define what the rules for sudoku are. 1. Each row and column must contain a number from 1-9, without repetitions. 2. the digits can only occur once per block(nonet). 3. The sum of every single row, column, and nonet must equal 45. Now to the code. First it has to find an empty cell. For that empty cell, it has to try each number from 1-9. Then validate the placement to see if the number in the cell satisfies all rules. If it is valid, call the solver function to solve the remaining grid. If no number can be placed that satisfies all constraints, backtrack by undoing the current placement and then it tries the next number.
Asteroid clone
This is an asteroid game clone which i never got the time to finish but all that is left is adding custom sprites like spaceship and asteroid. There is bullets, the spaceship, large asteroids, and smaller asteroids. The movement is only to swivel left & right and to "thurst" to move foward. The rendering is done with the SFML c++ library. The physics for drifting when is implemented on the player so the only way to stop is to turn and thrust the other direction in which you are moving. Also the large asteroids once hit split into 2 smaller asteroids. Once those small asteroids break, you get points and they disapear. You also have 3 lives which can be taken by flying into the asteroids with my collision detection.
C++ Memory Class
This class utilizes the Windows API, specifically the windows.h and tlhelp32 headers, to provide functionality for attaching to a specified process and performing memory operations, including reading from and writing to its memory space. It allows you to retrieve the Process ID (PID) of the target application and obtain the base address of its modules, which is essential for accurate memory manipulation. However, it's important to note that using basic Windows API functions for process interaction can be detected by anti cheat systems in both kernel mode (KA) and user mode (UM) if not implemented correctly. Techniques like coding a driver or handle hijacking will bypass these security measures, so employing proper practices is crucial to avoid detection when modifying process memory.