• Welcome to Valhalla Legends Archive.
 

starcraft programming help

Started by hierholzer, August 08, 2005, 04:41 PM

Previous topic - Next topic

hierholzer

Im trying to make a hack that makes it so you cannot talk during a game on sc in b.net.. I know that there are 11 offsets and I have found them all. My question is how do I make it so I can freeze them all at once.. Ps im writing the hack in c++

R.a.B.B.i.T

Do you want to block text or actually prevent the person from saying anything (or are you trying to block text people said)?

hierholzer

keep people from saying anything.. ive tested it with just one offset. it jsut made a blank space. so i figured that if i blocked all 11 offsets then it would prevent people from talking

R.a.B.B.i.T

People will still be able to talk.  The offsets are for displaying.  If you want to prevent them from talking to eacher other, you have to have your program somehow remotely block certain packets from being sent by their games.  Good luck with that.

hierholzer

yes but if it prevents messages to display then they cant see anything.. or at least thats what I think. I have froze 3 of the offsets at one time and when people talked there would be 3 blank spaces between 2 messages at one time. so if you froze all 11 wouldnt it just make one blank space since theres no offset the words can fall onto?

DeTaiLs

This would only stop you from seeing what they say they can still talk and if your making this in c++ u better learn asm because your going to need to jump offsets



Warrior

You could theoreticly loop through each offset making sure they don't contain anything or just hack the timer to make it clear messages instantly. This of course would also stop YOU from talking and I'm not sure if you justwant to recieve the no talking on an individual
Quote from: effect on March 09, 2006, 11:52 PM
Islam is a steaming pile of fucking dog shit. Everything about it is flawed, anybody who believes in it is a terrorist, if you disagree with me, then im sorry your wrong.

Quote from: Rule on May 07, 2006, 01:30 PM
Why don't you stop being American and start acting like a decent human?

hierholzer

what do you mean by stop the timer I know sc uses gettickcount to set the timer. is that what your talking about?

Warrior

Yea, it uses a timer to decide how long to display messages, just either learn to manipulate that timer or spoof the results so you can instantly remove them
Quote from: effect on March 09, 2006, 11:52 PM
Islam is a steaming pile of fucking dog shit. Everything about it is flawed, anybody who believes in it is a terrorist, if you disagree with me, then im sorry your wrong.

Quote from: Rule on May 07, 2006, 01:30 PM
Why don't you stop being American and start acting like a decent human?

hierholzer

Well I took the first offset I found that has text on it witch is 658EB0. After that I went into softice and set a breakpoint. my ending breakpoint is 46E60C. with that I went into W32Dasm and went to that location. This is where it shows the gettickcount  :). But my problem is this area has about 23 lines of asm in it and I dont know asm well enough to know what line has to do with how many sec a message stays on the screen. here is the code


* Reference To: KERNEL32.GetTickCount, Ord:01D5h
                                  |
:0046E602 FF15C4D14E00            Call dword ptr [004ED1C4]
:0046E608 8BF8                    mov edi, eax
:0046E60A 33F6                    xor esi, esi

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046E6D2(C)
|
:0046E60C 8D0476                          lea eax, dword ptr [esi+2*esi]
:0046E60F 8D04C0                          lea eax, dword ptr [eax+8*eax]
:0046E612 8D0486                          lea eax, dword ptr [esi+4*eax]
:0046E615 8A0C452C866500          mov cl, byte ptr [2*eax+0065862C]
:0046E61C 84C9                              test cl, cl
:0046E61E 0F84AA000000              je 0046E6CE
:0046E624 8B14B540916500          mov edx, dword ptr [4*esi+00659140]
:0046E62B 8BCF                              mov ecx, edi
:0046E62D 2BCA                             sub ecx, edx
:0046E62F 0F8899000000              js 0046E6CE
:0046E635 83FE0C                         cmp esi, 0000000C
:0046E638 C604452C86650000    mov byte ptr [2*eax+0065862C], 00
:0046E640 751F                             jne 0046E661
:0046E642 8B1578916500             mov edx, dword ptr [00659178]
:0046E648 81E2FFFF0000             and edx, 0000FFFF
:0046E64E 81C227010000            add edx, 00000127
:0046E654 52                                push edx
:0046E655 6876020000                push 00000276
:0046E65A BA27010000                mov edx, 00000127
:0046E65F EB63                            jmp 0046E6C4


Im pretty sure thats what im sopost to be changing somthing in there.. also what should I write this hack in I know vb well but ive read that using vb for making a hack is not a good choice. and I dont know enough asm to write it in C++



Adron

You're making a hack to prevent you from seeing them talking. If this is what you want to do, how about squelching them? Or does that not work in-game?

hierholzer

hmm.. I thought it would prevent them from talking as well

Adron

Quote from: hierholzer on August 09, 2005, 11:41 AM
hmm.. I thought it would prevent them from talking as well

Nope, it would prevent you from seeing them talking, very much like squelching them.

Topaz

Quote from: hierholzer on August 09, 2005, 11:41 AM
hmm.. I thought it would prevent them from talking as well

To do that, you'd have to find some major exploit or give them a doctored exe  :P

DeTaiLs

You could keep spamming blank messages and use the expliot to make it not show your name then nobody could talk