Valhalla Legends Forums Archive | Assembly Language (any cpu) | starcraft programming help

AuthorMessageTime
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++
August 8, 2005, 9:41 PM
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)?
August 8, 2005, 9:52 PM
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
August 8, 2005, 10:42 PM
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.
August 8, 2005, 11:55 PM
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?
August 9, 2005, 12:20 AM
Twix
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
August 9, 2005, 12:38 AM
Quarantine
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
August 9, 2005, 1:36 AM
hierholzer
what do you mean by stop the timer I know sc uses gettickcount to set the timer. is that what your talking about?
August 9, 2005, 2:40 AM
Quarantine
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
August 9, 2005, 3:29 AM
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++


August 9, 2005, 6:34 AM
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?
August 9, 2005, 8:13 AM
hierholzer
hmm.. I thought it would prevent them from talking as well
August 9, 2005, 4:41 PM
Adron
[quote author=hierholzer link=topic=12475.msg123713#msg123713 date=1123605685]
hmm.. I thought it would prevent them from talking as well
[/quote]

Nope, it would prevent you from seeing them talking, very much like squelching them.
August 9, 2005, 5:59 PM
Topaz
[quote author=hierholzer link=topic=12475.msg123713#msg123713 date=1123605685]
hmm.. I thought it would prevent them from talking as well
[/quote]

To do that, you'd have to find some major exploit or give them a doctored exe  :P
August 10, 2005, 7:41 AM
Twix
You could keep spamming blank messages and use the expliot to make it not show your name then nobody could talk
August 10, 2005, 8:04 AM
Quarantine
That's not a bad idea.
August 10, 2005, 10:27 AM
Topaz
It's not an original idea, either :-P
August 10, 2005, 3:59 PM
hierholzer
They only problem with that is then ill have to hear that anoying beep beep every time I send a new black message.
August 10, 2005, 4:30 PM
hierholzer
Couldent I just take out the timer so it dosent time any of the messages and then just make a blank message on all 11 offsets?
August 10, 2005, 4:37 PM
Twix
[quote author=hierholzer link=topic=12475.msg123833#msg123833 date=1123691821]
Couldent I just take out the timer so it dosent time any of the messages and then just make a blank message on all 11 offsets?

[/quote]
we have been over this already it would only effect the messages you see and nobody else. also i am not sure and maybe sombody can confirm this for me but if you use the starcraft text input function it doen't make the beep noise I don't have starcraft installed right now so I can test myself.
August 10, 2005, 4:41 PM
Soul Taker
If you're the host, you could just silently discard all chat packets from the players.
August 10, 2005, 9:39 PM
Kp
[quote author=Soul Taker link=topic=12475.msg123871#msg123871 date=1123709956]If you're the host, you could just silently discard all chat packets from the players.[/quote]

He can do this without being the host, too.  Of course, discarding text from other players has no effect on their ability to communicate among themselves, it only emulates a mass-squelch.
August 11, 2005, 4:58 AM
Soul Taker
Hm, maybe I'm dumb and was thinking of Diablo.
August 11, 2005, 11:12 PM
Kp
[quote author=Soul Taker link=topic=12475.msg124021#msg124021 date=1123801940]Hm, maybe I'm dumb and was thinking of Diablo.[/quote]

No, Diablo is the same way.  Being the host gives you no special properties beyond being the one contacted when someone wants to join.
August 11, 2005, 11:46 PM
Soul Taker
Then how come many Diablo hacks required you to be the game host in order for them to work?
August 13, 2005, 12:55 AM
Kp
[quote author=Soul Taker link=topic=12475.msg124128#msg124128 date=1123894556]Then how come many Diablo hacks required you to be the game host in order for them to work?[/quote]

I've never heard of such a hack.  Name one and its purpose? :)
August 13, 2005, 2:33 AM
Quarantine
Of course what would an application be withought making a user have to do "special things" to get even a hint of functionality? ;).

Good
August 13, 2005, 2:39 AM
Forged
[quote author=Soul Taker link=topic=12475.msg124128#msg124128 date=1123894556]
Then how come many Diablo hacks required you to be the game host in order for them to work?
[/quote]

If you are reffering to Diablo 1 or open Diablo 2 then it is because you act as a remote server in open battle.net play.  In most Blizzard games the host transfers control of the game back to battle.net once you start the game, but I believe in open diablo play you remain the host during the extent of the game.  If that is the case then that is why you would have to be the host for certain hacks to work.
August 24, 2005, 4:59 AM

Search