Jump to content
Heads Up! This website is no longer maintained, if your a member from our era, consider joining the discord to say hello.
Sign in to follow this  

An Undetectable Multi Command Or Selection Hack

Recommended Posts

Yes Babes!

 

On the top of my wish list is an undetectable Mass Selection Feature or MultiCommand. I am using Inhale´s mass selection in every game and at least twice a day I get discovered by this ****ing penguin plug users.

They see who is responsible for the replay corruption and they now that I am using multi command or at least any hack.

 

Here are some screenshots of my last 3 days playing sc:

ihatepp26iw.jpg

ppsuckz3ap.jpg

ppsuckz23ps.jpg

 

So my biggest wish is to make it undetectable.

 

More details:

- usability like dt´s mass selection hack. Press Alt - selection is on - mass command - automatically mass selection is off

- also mulitcommanding buildings - multi train

- please use as mc button ALT and DON´T USE "~". ~ on my non-English keyboard is very very hard to reach. you must press ALT-Gr and a-button-on-the-back-of-my-keyboard. So ply simple use ALT

- Disable default workers probes, drones, SCVs and Overloads from multi command. I accidentally very often multi commanding this kind of units. And this is really painful ... and of no use.

 

If you need a code - here is one (I think this is of the old damned666:

:1000178B pushad			; Preserve registers
:1000178C cmp byte ptr [100032C8], 01	; Is multicommand on?
:10001793 jne 1000181C			; If not jump to the end
:10001799 mov dword ptr [10003820], ecx	; Store command parameters pointer
:1000179F mov byte ptr [10003824], dl	; Store command type
:100017A5 mov eax, 0068F3E0		; First selected unit
:100017AA mov eax, dword ptr [eax]	; Get first selection unit pointer
:100017AC mov dword ptr [1000381A], eax	; Store first selection
:100017B1 mov bl, byte ptr [eax+64]	; Get unit type
:100017B4 mov byte ptr [1000381E], bl	; Store Unit type
:100017BA mov bl, byte ptr [eax+4C]	; Get unit owner
:100017BD mov byte ptr [1000381F], bl	; Store unit owner
:100017C3 mov ecx, 005BC6A8		; unit list pointer
:100017C8 mov dword ptr [10003390], 00000000; counter??
:100017D2 jmp 10001810			; jump to unit list cycle

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10001813(C)
|
:100017D4 push ecx			; Store unit params pointer
:100017D5 mov bl, byte ptr [ecx+64]	; Get unit type
:100017D8 cmp byte ptr [1000381E], bl	; check unit type
:100017DE jne 1000180C			; jump if not the same type
:100017E0 mov bl, byte ptr [ecx+4C]	; get unit owner
:100017E3 cmp byte ptr [1000381F], bl	; check unit owner
:100017E9 jne 1000180C			; jump if not the same owner
:100017EB push ecx			; Store unit params again
:100017EC push 00000001			; number of units to select
:100017EE call 10001085			; local function to set selection
:100017F3 mov ecx, dword ptr [10003820]	; restore unit params pointer
:100017F9 movzx edx, byte ptr [10003824]; restore command type
:10001800 call dword ptr [10003008]	; call command function
:10001806 inc dword ptr [10003390]	; counter??

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:100017DE(C), :100017E9(C)
|
:1000180C pop ecx
:1000180D mov ecx, dword ptr [ecx+04]	; Get pointer to previous unit

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:100017D2(U)
|
:10001810 cmp ecx, 00000000		; Is pointer null? Are we done?
:10001813 jne 100017D4			; If not start over
:10001815 popad				; else restore registers
:10001816 jmp dword ptr [10003379]	; jump back to sc

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10001793(C)
|
:1000181C call dword ptr [10003008]	; Call original command
:10001822 popad				; restore registers
:10001823 jmp dword ptr [10003379]	; jump back to sc

 

and

 

MultiCmd proc

pushad			; Preserve registers
cmp MultiCommand, 01	; Is multicommand on?
jne MA_END		; If not jump to end

mov eax, PlrNumOffset
mov al, byte ptr [eax]	; Get your player number
mov PlrNum, al		; Store Player number
mov ParamsPtr, ecx	; Store command parameters pointer
mov CommandByte, dl	; Store command type
mov eax, FirstSelection
mov eax, dword ptr [eax]; Get first selection unit pointer
mov cl, byte ptr [eax+064h]; Get unit type
mov UnitType, cl	; Store Unit type
mov ebp, UnitStructStart; Unit list pointer
mov ebp, dword ptr [ebp]; Get unit struct start

MA1:
mov al, byte ptr [ebp+04Ch]; Get unit owner
cmp al, PlrNum		; Check unit owner
jne MA2			; jump if not the same owner
mov al, byte ptr [ebp+064h]; Get unit type
cmp al, UnitType	; Check unit type
jne MA2			; jump if not the same type
xor ecx, ecx
mov cl, 01		; Number of units to select
mov CurrentUnit, ebp
lea edx, CurrentUnit	; unit to select
call dword ptr [SetSelection]; Set Selection function
sub esp, 00000008h

mov ecx, ParamsPtr	; set command parameters pointer
movzx edx, CommandByte	; set command type
call dword ptr [IssueCommand]; call command function

MA2:
mov ebp, dword ptr [ebp]; Get pointer to next unit
test ebp, ebp		; Is pointer null? Are we done?
jnz MA1			; If not start over
mov MultiCommand, 00	; Turn off MultiCommand

MA_END:
popad			; restore registers
add esp, 0000000Ch	; fix stack pointer
ret 0010h		; return to sc

MultiCmd endp

 

Here a small How-to-do:

 

Here is a run down of what you should look into. 1. Learn how to use olly 2. get dxwnd to run starcraft in windowed mode 3. open starcraft with dxwnd, open olly and attach. Look at the memory address 00697EC4. This is where the current selected units ID is stored. If its 00 then select a unit and look again. Now right click on the unit id and select "follow in dump". You are now at Starcrafts linked list of Unit ID's. All Units on the map have an ID and they are all linked together. For example, if the ID is 0063DOFO then 0063DOFO + 4 will be the next Unit ID. If you look at the memory addresses below the Unit ID you will find about 25 spots with information about that unit. Learn ASM and see what you can do with this information. I will give you a major hint....When writing a multicommand, you want to make the same type of unit do the same thing as the originally selected unit. So you will be looking for unit type. Now of course you dont want to tell a unit to do something if its not your unit. So you will also need to find the units owner. So if you figure out where the units type is in this format (Unit ID + ??) and the same for the units owner, your almost there. Let me know if you would like help after you figure out this information. There are still some major things to do so feel free to ask for help once you get to this point.

 

So I would appreciate an undectable mc/ ms very much!

 

Thx!

Share this post


Link to post

If it was possible it would have been done by now I think. Plues just disable multicommand. I only turn on Map hack cause Penguin Plug cannot detect that hack.

Share this post


Link to post

I'm pretty sure its impossible, but I'm not usre on how penguin works.

If it detects weather or not more than 12 units were commanded, then you can't make it undetectable.

Anyway, who cares if penguin newbs know you are ?

Share this post


Link to post

Yes, I know you can turn of mass selection/ Multicommand. Please don´t explain me how this works. I am no idiot.

 

But I don´t want to turn it off cause it´s powerfull. And when you get detected 3 times a day it´s bothering (even when my friends still are thinking that I am NO cheater ^^).

 

So I think there is a method to slow it down: artificially slow the multicommand down: 12 units, wait 0.05 secs, next 12 units, wait 0.05 secs, .... Or even better randomize it: 6 units, wait 0.1 secs, 11 units, wait 0.05 secs, 10 units wait 0.07 secs, ... This way you not able to see it afterwards in BWChart.

BTW: if unit-id=Probe then DO NOTHING

 

When I see the code it couldn´t be so hard to do something like this. But I can´t script ... or not in this language.

 

This would be a really usefull feature!

Share this post


Link to post

I Always use inhale mass selection hack.They cant tell you your using it.You select many units o.0

Share this post


Link to post

yourmother2 your selection hack mst been shit as mine was neva detected and i play with 3ppl with pp(wish i still had it damm patch)

Share this post


Link to post

to tell u the truth, no1 needs pp to tell ur multicommanding, it sof Æ’ucking obvious. alll the units move to attack u, u send a dropship to his main, and he "accedently" attacks withh a hydra and all the rest come back. Or like us c 170 rines in perfect order just moveing around, or even if get vission of some's base u c all thier vuilding lights turn on at asame time, or like 20 hatches hatching larvae at the same time.. i never use multicommand... unless i am crazy hackying, like a mineral hack.. which by then i have probably gon thru some precatuions. Such as spoofing, and even now pp has anti spoof thingy. Also i use accoutns that i made at my cuzins house, i unno uf these thing's help but... meh i do it anways.

Share this post


Link to post

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×