Jump to content
Sign in to follow this  

Making a Starcraft Hack - Advanced

Recommended Posts

Okay, so I have a fairly high understanding of C++ and I am a programmer in other languages (unfortunately those languages aren't fit for hacking).

Basically, I know how to use Olly Debug, and I am fairly good with it. I can find values in a game, find them in olly and so on. My only problem is, creating the dll in C++ and making it work. I feel like I am so close, I have searched for all kinds of tutorials and examples but all I find is ASM tutorials and Examples. Well I don't want those, I want something written in C++.

 

Now I did see the Nexuiz source code, and that was fairly good and I think it helped me a bit. Problem is, I can't seem to compile the .dll. I use MSVC++ and it just keeps returning errors. So I gave up on Nexuiz.

 

I am hoping that someone will be able to point me in the direction of a REAL, hopefully up to date, complete (as in from finding the values, to writing the dll), starcraft hack tutorial.

That or someone could actually help walk me through it, if anyone is willing please don't hesitate I am a fast learner and as long as you are clear there should be no issues as to understanding things.

 

~lilneo

Share this post


Link to post
Share on other sites

Yeah, asm/masm is more apt for abusing exploits and it's a very useful for other things as well. As far as C++ all I can refer you to is perhaps Gloopie, although I doubt he knows how to program advanced things in C++ yet.

Share this post


Link to post
Share on other sites

Well, I do have access to some C++ programmers but they really have no interest in helping me. And I really don't like ASM and I hope it dies. So other than Gloopie, is there anyone that would be willing to give me a hand?

~lilneo

Share this post


Link to post
Share on other sites
Well, I do have access to some C++ programmers but they really have no interest in helping me. And I really don't like ASM and I hope it dies. So other than Gloopie, is there anyone that would be willing to give me a hand?

~lilneo

 

So, I actually registered for this site just to help you out. I'm gonna help you make an offline mineral hack for SC 1.16.1 (version really won't matter for what I'm gonna tell you).

 

So the first thing you need is a memory searcher. I use Art Money, there is a free version. Once you have your searcher, start up a game of SC. Preferably a single player map where you start with a few hundred dollars. The first Expansion Terran mission is a good one.

 

Then search for your total number of minerals. In Art Money there is a Search button. Once you get a list of numbers, go spend some money and Filter (not search again, different button in Art Money) for the new amount. Do this a few times until there is only one or two left in the list.

 

Change the value at one, and then go see if your minerals changed in the game. If they did, write down the address so we can use it later. If not, test the others using a slightly different number.

 

Now you know where your minerals are, we need a dll. Making a dll project depends on your compiler, so if you don't know how let me know what compiler you're using.

 

In your dll, you need an main. In DllMain we will need to create a new thread that sets our minerals really high... So DllMain should look something like this:

 

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ReasonForCall, LPVOID lpReserved)

{

 

if(ReasonForCall == DLL_PROCESS_ATTACH)

{

CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)MineralThread, NULL, NULL, NULL);

}

 

return TRUE;

}

 

Then we need a function called MineralThread that actually does the work. It might look something like this:

 

void MineralThread()

{

int * OurMinerals = (int *)(0x00000000); // Change to the Address You Found, This Would Cause an Error

 

while(1)

{

if(*OurMinerals < 5000)

{

*OurMinerals += 1000;

}

 

Sleep(1); // Prevent 100% CPU Usage

}

}

 

You would need to include windows.h for this to work, but I figure you know how to do that. Compile your dll and inject it into Starcraft. If you play the same Terran Expansion mission again, your minerals should get 1000 added to them whenever they drop below 5000. This will only work if you are the same player number every game.

 

Have fun!

Edited by Tiron

Share this post


Link to post
Share on other sites

For some exploits you may find or want to create, you can use my function.

 

.data

BWFXN_IssueCommand dd 00485BD0h

ExampleOfUsage db 10h, 0FFh

 

.code

IssueAPackets proc Lengthz:DWORD, Packet:DWORD

 

 

mov edx, Lengthz

mov ecx, Packet

call dword ptr [bWFXN_IssueCommand]ret

 

IssueAPackets endp

 

invoke IssueAPackets, sizeof ExampleOfUsage, offset ExampleOfUsage ;You don't have to use sizeof you can count the bytes, which is 2, and place it in there.

Share this post


Link to post
Share on other sites

When I get back from my archaeological dig (in 50 daysish) if you still need some help, then I could give you some pointers.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×