Skip to content
xboi209 edited this page Aug 30, 2014 · 4 revisions

ExtraWork

ExtraWork is used to send DLL files to Battle.net clients for execution. There are two types of ExtraWork: SID_REQUIREDWORK and SID_OPTIONALWORK.

Blizzard has generally used this module to run hack detection/prevention code or collect system data for future use. It is not regularly used and Battle.net servers no longer uses this module.

SID_REQUIREDWORK

The server sends packet 0x4C to the client containing the MPQ's filename, often named IX86ExtraWork.mpq, to download. In response, the client will send packet 0x33 to the server with Request ID 0x80000006 for the filetime of the filename previously received.

The client will check bncache.dat on the user's computer for the same file and download a new copy from the server via BNFTP if the file does not exist or the filetime does not match.

Inside the MPQ file, there is a DLL file with the same filename but the file extension is .dll. The client will extract the DLL file and call an exported function called ExtraWork.

When ExtraWork() finishes executing, sends packet 0x4B to the server.

SID_OPTIONALWORK

SID_OPTIONALWORK behaves similarly to SID_REQUIREDWORK with the exception that downloading the MPQ file from the server is completely optional and the Request ID is 0x80000005.

To toggle whether or not the client should download the MPQ file, the registry key HKEY_CURRENT_USER\Software\Battle.net\Optimize\SysDesc(REG_DWORD) must be modified. A value of 0 will make the client not download the specified MPQ file and vice versa with any non-zero value.

Clone this wiki locally