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.

Click here to read more of Zone Cryption (Final)

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.

Click here to read more of Bypassing HOOK's

[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]).

Click here to read more of [ASM] Training DLL's

[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.

Click here to read more of The Trojan DLL Injection

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.

Click here to read more of Your 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

Perl

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!

Click here to read more of Users online PHP (File Method)

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.

Click here to read more of Show the Number of Users Online

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.

Click here to read more of PHP Captcha Code Example

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.

Click here to read more of Make your own IRC bot with PHP

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.

Click here to read more of URL Validation with PHP

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.

Click here to read more of How to get IP using PHP

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.

Click here to read more of Using Heredoc in PHP Strings

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. 

Click here to read more of What is Phishing?

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.

Click here to read more of XSS Holes

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.

Click here to read more of Auto Update in Visual Basic

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. 

Click here to read more of Hacking Runescape with VB

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.

Click here to read more of Read memory in VB6

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. . . .

Click here to read more of Center your layout with CSS

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.

Click here to read more of Create a layout using CSS