"Jordan Cole (stilist)" <stilist@xxxxxxxxx> to Paul Szabo: > > Being curious, on Win2k, I copied cmd.exe (from winnt\system32) as xyz.pif; > > then (right-click) Properties, Program crashes explorer. I had to specifically click on the "Program" tab, which evoked a null- pointer read attempt (at a guess, something in the .PIF parser assumes a length or offset will always be >0 so doesn't do any sanity checking, and/or some higher level routines don't do any checking). > I'd say that's because you changed the filetype; pif files simply > contain information on how to handle a DOS executable; they aren't a > program themselves. All you did was make it get confused and kill > itself. Yeah, but how long is it now since we've been telling programmers "don't trust user-supplied data"?? (Hmmmm -- does it also fail on W2K3??) And don't you also find the inconsistencies this throws up at least somewhat interesting? Rename a PE executable to a .PIF extension, right click, ask to see the file's properties and splat -- whatever code is invoked to handle that task dies a stupid, if not ugly, death because internally the file is the wrong type. However, if you double-click that renamed file it is executed as if nothing is amiss. And to think that some folk will see this as further reason to enforce their belief that when it comes to security and code quality, Microsoft really just doesn't get it... Why did MS make ".EXE files renamed as .PIF" execute "properly"? Aside from "because we can", I'd not be at all surprised if it was on some internal "stupid user tricks we should eliminate support calls for" list. But, whatever the reason, did anyone at Microsoft give two milliseconds of thought to the security (or other) consequences of that design decision? I seriously doubt it and I'm sure I'm far from alone in that... -- Nick FitzGerald Computer Virus Consulting Ltd. Ph/FAX: +64 3 3529854