Staredit Network > Forums > General StarCraft > Topic: Function signature
Function signature
Dec 18 2015, 10:29 am
By: iCCup.xboi209  

Dec 18 2015, 10:29 am iCCup.xboi209 Post #1



I'd be grateful if someone could find the function signature at 0x00486530. BWAPI doc titles this as Cls2RecvFrom



None.

Dec 18 2015, 12:34 pm UndeadStar Post #2



What exactly do you call "function signature" ?
Some random stuffs I can tell:

-the function go between 00486530 and 0048657D
-at some point, it call the function 00486040 (I know it as "LOBBYCLASS2_RECV")
-it doesn't seem to take input parameters using registers, unless those are left untouched to be used in 00486040
-it doesn't return anything
-it's based on a loop using a value starting at 8 and decreasing.

Hope it help.

edit:

prototype would be "void Cls2RecvFrom();".

This function seems to be called in what I know as gameLoopTurns function.
I'm not sure why you would try to call a function at that scale.

Post has been edited 1 time(s), last time on Dec 18 2015, 2:32 pm by UndeadStar.




Dec 18 2015, 1:34 pm iCCup.xboi209 Post #3



I meant the function prototype




Dec 18 2015, 4:06 pm Heinermann Post #4

memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes memes

Maybe something like "void ParseAllLobbyTurnCommands();" would be more appropriate?

Code
// .data:0057F0B8 ; DWORD arrayPlayerStatus[8]
// .text:00486040 ; void __userpurge LOBBYCLASS2_RECV(char *arrayData@<eax>, int dataLen, int plStormID)
// .data:006554B4 ; char *recvTurnArrayData[8]
// .data:00654A80 ; unsigned int sgdwTurnLens[8]
// .data:00512680 g_ActiveStormID dd 8

const int NUM_PLAYERS = 8;
const int NO_PLAYER = 8;
const unsigned PLAYER_STATUS_ACTIVE = 0x20000;

void ParseAllLobbyTurnCommands()
{
 int i = NUM_PLAYERS;
 while (i--) // Terrible devs code golfing Starcraft
 {
   g_ActiveStormID = i;
   if (arrayPlayerStatus & PLAYER_STATUS_ACTIVE)
     LOBBYCLASS2_RECV(recvTurnArrayData[i], sgdwTurnLens[i], i);
 }
 g_ActiveStormID = NO_PLAYER;
}






Dec 18 2015, 8:17 pm iCCup.xboi209 Post #5



Thank you but it looks like I guessed the function wrong....
I'm trying to find the function that receives game packets from other players, so 0x00486040(LOBBYCLASS2_RECV) or 0x004865D0(Game_RECV)?



None.

Dec 18 2015, 11:18 pm UndeadStar Post #6



In case it can help, the gameLoopTurns function that is the one using @00486530 is calling the following functions:

00486580 //RecvSaveTurns
004A3380 //timeoutProcDropdown
00485AA0 //GameKeepAlive
00486F50 //ParseGameRecvInfo
00486530 //Cls2RecvFrom
0047CFC0 //UpdateGameHash

I would guess the first one is a hit, or maybe it would be 004BB530 (ReceiveTurns) that is called by 00486580, but all those functions are in the middle of code that write and read from memory, instead of using registers or the stack, so good luck for preventing what you use to do bad stuff in your back.

edit: Just noticed, but this assume the gameLoopTurns function is not executed after what you wanted (thus using result that have already been received), in which case I'm missing the point again.In that case, my apologies.




Dec 20 2015, 11:36 pm iCCup.xboi209 Post #7



Still need the function prototype :|



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[2026-7-18. : 2:27 am]
Symmetry -- https://staredit.net/topic/18903/ THE REVIEWS ARE HERE! "ok these are pretty good memes" - ssj9Kevin
[2026-7-17. : 2:58 pm]
Ultraviolet -- Symmetry
Symmetry shouted: Man I wish we had this tech back in the day when people played ums lmao
fr fr
[2026-7-17. : 2:39 am]
Symmetry -- Man I wish we had this tech back in the day when people played ums lmao
[2026-7-16. : 6:28 am]
NudeRaider -- EUD actions, specifically. The conditions remained. Today we can even have actions again, but they're all virtualized/whitelisted (not sure on the actual technical implementation) so you can only use them for specific intended purposed, not arbitrary code injections.
[2026-7-16. : 6:26 am]
NudeRaider -- I mean yes, maps - through EUDs - were theoretically able to do that as well, but that was patched quickly.
[2026-7-16. : 6:25 am]
NudeRaider -- Symmetry
Symmetry shouted: Ohhh imagine a SC map that could delete itself
not the map, the editor
[2026-7-16. : 2:28 am]
Symmetry -- I vaguely remember Voy doing some ACE back in the day, but I had no idea EUDs could do that kind of shit. I am very much catching up on the technology
[2026-7-16. : 2:28 am]
Symmetry -- Ohhh imagine a SC map that could delete itself
[2026-7-15. : 8:51 pm]
NudeRaider -- Symmetry
Symmetry shouted: NudeRaider Is EUD editor capable of writing shit onto the player's harddrive? That seems like it would be dangerous
yeah an editor that isn't allowed to write files sounds rather pointless, so I'd assume it can. Like most other programs too btw. and yes, obviously that's dangerous, but also kinda necessary. MS introduced that virtualization for exactly that reason.
[2026-7-15. : 4:10 am]
Ultraviolet -- I don't think so. I think they shut that shit down after 1.16, maybe even earlier
Please log in to shout.


Members Online: Symmetry, Rawflesh0615