Browse our Articles
All articles / tutorials found on this site were written by members of this community.
Everything takes some effort to learn. The articles below are here to minimize the learning curve while making the process as enjoyable as possible.
Sponsored Links
Assembly
Using OllyDbg to log dynamically loaded functions (the easy way)
Written by Ksbunker | There are 0 comments! What is the easy way? Read on.
For there to be an easy way, surely there's a hard way? Yes, hooks. They're redundant in this case... why complicate the process!?!
What's the easy way? Conditional log breakpoints.
Example.
Click here to read more of Using OllyDbg to log dynamically loaded functions (the easy way)
Zone Cryption (Final)
Written by RANCID | There are 0 comments!Out of bordom, I decided perhaps this may interest someone. I have no use for this knowlegde any longer as their is no Zone left, just a pathetic mess of a flash gaming site.
Bypassing HOOK's
Written by Ksbunker | There are 0 comments!This article is written in follow-up to Specific's "Hook process functions via dll injection Cpp". His article detailed how to hook functions using an injected DLL. Expanding on this concept, i'll detail how you can trampoline over the CALL or JMP instruction which forwards flow to the hook function; effectively rendering the HOOK void/useless. This method works well with any application that attempts to spy on or intercept specific functions, e.g. WPE, TrainerSpy, etc. The code is in ASM but generic enough to be ported to any other language with minimal fuss.
[ASM] Training DLL's
Written by Ksbunker | There are 0 comments!Unlike exe's, dll's do not always get loaded into the same address space (i.e. 00400000). This address is called the 'Base Address' and is a pointer to the "M" in the "MZ" signature (which is if you dont know, is the first two bytes in any portable executable [i.e. exe's and dll's, any some other files]).
[ASM] Simple yet effective parity/integrity protection
Written by Ksbunker | There are 0 comments!I post this here because, lets face it, zonehacks is all about doing things we wern't meant to be able to do, exploiting, etc... it all comes to security. The following code is written in asm, however, it can with very little work be ported to any language, at least that's the intention.
Click here to read more of [ASM] Simple yet effective parity/integrity protection
CPP
Injecting a DLL Using the Registry
Written by Specific | There is 1 comment.If you've been using Windows for any length of time, you should be familiar with the registry. The configuration for the entire system and most software is maintained in the registry, and you can alter the behavior of the system by tweaking its settings. In this tutorial of how to inject a DLL using the registry, the entry I'll discuss is in the following key:
*Note* Windows 98
Windows 98 ingores this registry key, so you cannot use this technique to inject a DLL under Windows 98.
Click here to read more of Injecting a DLL Using the Registry
Hook process functions via dll injection Cpp
Written by Specific | There is 1 comment.This tutorial on how to hook process functions via dll injection is not for the beginning programmer. I assume that you have knowledge of creating DLL (Dynamic Link Libraries) files in C++, as I do not cover this. If you do not know how to inject a dll into a process, please read my tutorial "Inject DLL into running process with CPP."
Click here to read more of Hook process functions via dll injection Cpp
Inject DLL into running process with CPP
Written by Specific | There is 1 comment.What is the purpose of injecting a DLL into a process?
Injecting a Dynamic link library (Dll) into a process can be used for many things - that is, it's up to the programmer what they want to do. Dll injection is most normally used to hook API in the process, however, it's often used in game hacking to redirect method calls within the game or application to the programmer's custom functions.
Click here to read more of Inject DLL into running process with CPP
General Programming
Usermode tricks for calling WriteProcessMemory
Written by Ksbunker | There are 0 comments!This information is nothing new, but I think it's very interesting none-the-less. Given the prevalence of hooks (detours, hotpatches, IAT hooks) in todays scene, it is becoming more important to understand how to circumvent these rudimentary attempts at slowing us down.
Hooks have been spoken about ad nauseum here at zonehacks so I won't explain what they are or how to use them... this is all assumed knowledge (and if you're still uncertain, just browse over Specific's articles). Besides this article is not about hooks per se, but rather how to call function without executing the modified (hooked) line(s) of code.
Click here to read more of Usermode tricks for calling WriteProcessMemory
The Trojan DLL Injection
Written by Specific | There are 0 comments!The title may have caught a few readers thinking, "What the hell is this Trojan DLL?" Trojan DLL injection is another way to inject a DLL by replacing a DLL that is known a process will load. For example, if the programmer knows that a process will load customapi.dll, he can create his own dll and give it that same filename. Of course, the programmer must rename the original customapi.dll to something else.
Posting Messages to a Thread's Message Queue
Written by Specific | There are 0 comments!Once a thread has a THREADINFO structure associated with it, the threrad also has its very own set of message queues. If a single process creates three threads and all these threads call CreateWindow, there will be three message queue sets. Messages are placed in a thread's posted-message queue by calling the PostMessage function:
Click here to read more of Posting Messages to a Thread's Message Queue
A Process's Virtual Address Space
Written by Specific | There are 0 comments!Every process is given its very own virtual address space. For 32-bit processes, this address space is 4 GB - that is, a 32-bit pointer can have any value from 0x0000000 through 0xFFFFFFFF, allowing a pointer to have 4,294,967,296 values. For 64-bit processes, this address space is 16EB (exabytes). A 64-bit pointer can have any value from 0x0000000'00000000 through 0xFFFFFFFF'FFFFFFFF, allowing a pointer to have one of 18,446,744,073,709,551,616 values.
Click here to read more of A Process's Virtual Address Space
Java
Defining Your Own Classes in Java
Written by Specific | There are 0 comments!After reading this tutorial, you should be able to: Define an instantiable class with multiple methods and constructors, differentiate the local and instance variables, use value-returning methods, distinguish private/public methods and members, know how arguments are passed to the parameters in method definitions, how the result is returned from a method, and define a reusable class for handling input routines.
Click here to read more of Defining Your Own Classes in Java
Your First Java Program
Written by Specific | There are 0 comments!The objective of this tutorial is to introduce object-oriented programming and how to apply object-oriented thinking in program development. our first Java application displays a window on the screen. The size of the window is set to 300 pixels wide and 200 pixels high. A pixel is a shorthand for picture element, and it is the standard unit of measurement for the screen resolution. A common resolution for a 17-in monitor, for example, is 1024 pixels wide and 768 pixels high. The title of the window is My First Java Program.
Javascript
Making a back button with Javascript
Written by Specific | There is 1 comment.When creating a website the creator must remember the user and their need to know where they are in the site. Users can easily get lost within the site's navigation and not remember how they got where they are. A simple way to fix this without adding a full breadcrumb system like we have here at zonehacks is to simply add a way for the user to travel backwards through the pages with Javascript.
Click here to read more of Making a back button with Javascript
PHP
Users online PHP (File Method)
Written by Jordan | There is 1 comment.Hello everyone!
Today I'll try and teach you how to use files to count logged in users!
I've tried to make this script partly editable, so please change the options as you wish!
Show the Number of Users Online
Written by Specific | There are 0 comments!In this tutorial I intend on teaching the reader how to create their own PHP script to display how many users are online for any given page of their website.
PHP and MySQL Login/Register Script
Written by Jordan | There are 4 comments!This is an attempt to reply what was posted in the requested tutorials at Here
Click here to read more of PHP and MySQL Login/Register Script
PHP Captcha Code Example
Written by Jordan | There are 2 comments!In this article I'll try to explain how to create a captcha image and how to use it.
Make your own IRC bot with PHP
Written by Specific | There are 0 comments!Internet Relay Chat (IRC) is used by millions of people and organizations for sharing files, keeping in touch, and communicating with others around the world. In this tutorial I will teach you how to make your very own IRC bot. This tutorial may seem a little advanced - that is, it will use php in a way most people are not used to, however, even the beginning php programmer will be able to understand and implement on their own site.
URL Validation with PHP
Written by Specific | There are 0 comments!Problem: You have a database of links that you've collected over couple years, however, some of the links in the database do not exists anymore and when clicked show up with a 404 error.
Validate email addresses with PHP
Written by Specific | There is 1 comment.When you register at a website, the site normally checks if teh email address that you enter is in a valid format. This is done with a Regular Expression. What we need to do is check if a string - the email - matches the regular expresion:
Click here to read more of Validate email addresses with PHP
How to get IP using PHP
Written by Specific | There are 0 comments!This tutorial will explain how to get a user's IP who is visiting your page.
PHP Hit Counter That Doesn't Require MySQL
Written by Specific | There are 0 comments!In this tutorial I'll show you by example how to make a hit counter that doesn't require mysql or changing permissions on the ftp. It works simply by creating a directory and writing to a file called hitdata.txt
Everyone likes to know how many views they have had to there site, and a hit counter does just that. I wrote this in a class, hopefully that doesn't confuse some beginners, because this is a beginner tutorial.
Enjoy
Click here to read more of PHP Hit Counter That Doesn't Require MySQL
Using Heredoc in PHP Strings
Written by Specific | There are 0 comments!Strings can get really complicated the bigger they get in PHP. In order to allow people to easily write large amounts of text from within PHP, but without the need to constantly escape charactors, heredoc was developed. Heredoc might be a little tricky to understand at first, however, it will help in the end. It allows you to define your own string limiter so that you can make it something other than a double or single quote.
Security
What is Phishing?
Written by Specific | There are 0 comments!This is a question that is often asked too late, and it can be prevented if you know what to look for.
XSS Holes
Written by Carb0n | There are 0 comments!In this article I will give you a general idea on what an XSS Hole is and how it can be exploited.
First off, XSS stands for Cross Site Scripting. Basically, that means one site loads a script onto another site that it is not affiliated with (a site that has a different domain). Normally, cross site scripting is not intentionally allowed by the host site because this allows a 3rd-party site to potentially access a user's session information and other important user variables on the host site.
Visual Basic
Auto Update in Visual Basic
Written by Jordan | There are 0 comments!Hey guys, today I'll try to teach you how to do a really basic "auto update" type thing.
Visual Basic DLL Injection Tutorial
Written by Specific | There is 1 comment.I have written many tutorials on the different methods to inject a dll into a process here at ZoneHacks. These DLL Injection tutorials, however, never covered Visual Basic. Continue reading if you would like to find out how!
Click here to read more of Visual Basic DLL Injection Tutorial
Visual Basic 6 (Hide/Show taskbar)
Written by Support | There are 0 comments! Below you will find a snippet of VB code to show or hide the windows taskbar.
How it works:
The program will find the Windows taskbar using the FindWindow API, this API will return the handle to the taskbar. With the taskbar's handle, the program uses SetWindowPos API to hide or show the taskbar.
Click here to read more of Visual Basic 6 (Hide/Show taskbar)
Hacking Runescape with VB
Written by Specific | There are 2 comments!After reading this tutorial on Hacking Runescape with VB, you should have gained knowledge of a couple ways to manipulate Runescape. It's been about two years since I have logged in to my account at Runescape.com. The reason I point that out is because I know that these methods of hacking the game will stand the test of time.
Read memory in VB6
Written by RANCID | There are 0 comments!In this tutorial I'm going to go over some basic code for reading from another processes memory.
Lets start with the imports.
Web Design
Search Engine Friendly URLS for Dynamic Pages
Written by Specific | There are 0 comments!Introduction
When creating a dynamic website, URLs can become messy and very complicated. This creates two problems - that is, the URL is not user friendly or search engine optimized. The URL will not be user-friendly because it is full of variables, strings, and ids that can be hard to remember. Search engines do a pretty good job with urls, however, they can get confused. One of the most frequent questions web developers ask is "How can I change my dynamic URLs to static URLs?" The procedure to implement search engine-friendly static URLs for a dynamic site is pretty simple. After reading this tutorial you should be able to take a URL like the following: www.yoursite.com/?page=5 and make it something like www.yoursite.com/search-engine-friendly-url.
Click here to read more of Search Engine Friendly URLS for Dynamic Pages
Center your layout with CSS
Written by Specific | There are 0 comments!A lot of beginning and intermediate web designers have no problem creating a layout with containers and CSS (Cascading Style Sheet) however, they often run into the problem of how to center the layout.
So how do you center a layout?
Very easy actually. . . .
Create a layout using CSS
Written by Specific | There are 2 comments!In this how-to article I will cover the basics in how to create a layout using CSS. Cascading Style Sheets is a language that manipulates markup languages like xHTML, or XML. I believe you will be suprised how simple CSS makes designing a layout that looks good and is also accessible compared to table-based layouts.

