Nel libro "The Security Development Lifecycle", Michael Howard ha scritto:
Take as an example the coding bug in Windows RPC/DCOM that the Blaster worm took advantage of (Microsoft 2003). The defective code looks like this:
HRESULT GetMachineName(WCHAR *pwszPath, WCHAR wszMachineName[N + 1]) { LPWSTR pwszServerName = wszMachineName; while (*pwszPath != L'\' ) *pwszServerName++ = *pwszPath++; ... }
In this code, the attacker controls the pwszPath argument so that she can overflow the wszMachineName buffer. This code bug was not picked up by any tools available within Microsoft...
Ho implementato molti codici come nell'esempio precedente, ma non riesco a trovare nulla di sbagliato con esso e dopo aver testato il codice precedente non riesco ancora a trovare un modo di Overflow wszMachineName
ma come ha menzionato questo codice è vulnerabile a buffer overflow.
Quindi la mia domanda è: come può un utente malintenzionato trarre vantaggio dal codice di cui sopra, come ha fatto il worm blaster ?! Ho passato un gran numero di 'AAAA per programmare ma, ma continua senza crash o problemi.