- Feature Articles
- CodeSOD
- Error'd
-
Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
is_truth_dead? frist: file_not_found
Admin
execv() is part of POSIX, and not part of C.
Admin
Well, I did that in a few weeks including rewriting it at least one time. It's not that complicated even without bison and yak.
Admin
If the school didn't understand the importance of upgrading, I suppose that Jared B. could always have just mapped out the school's IP space, written a program to force the upgrade to the new version, and then executed that over the insecure endpoint. Though on Windows, that's tricky because you can't delete/replace the EXE file of a currently running program or any other files in use by that, so you'd need to use some trick like the
MoveFileEx()function with theMOVEFILE_DELAY_UNTIL_REBOOTflag and then force a reboot. Also this would be legally dubious.As Steve_The_Cynic mentioned,
execv()is not part of ANSI C and doesn't exist on Windows. I suppose one could implementexecv()usingCreateProcess()andExitProcess()without too much trouble; but you'd have a lot more trouble implementingfork()on Windows, which doesn't have any native equivalent. Take a look at how Cygwin implementedfork()on Windows, it's absolutely disgusting; and if you're unlucky with DLL load addresses, it can just fail randomly too.Admin
When I read "The opposite of meritocracy is ..." I mentally completed "... politcian", where obedience to the shouter at the top is the decisive factor.
Admin
How about using system() - part of ISO C90 and probably compatible to POSIX.2 - for the RCE implementation?
Admin
Few corrections/addenums:
2 As for replacing files, you can do it. Just rename file in use and place new file there and then have process restart. (Lock is on handle, not file) There are few exceptions were it is not possible.
Admin
Also keep in mind "kakastocracy" - rule by the poop
Admin
It would be surprisingly difficult to get the semantics correct using only those two functions. Sure, the CreateProcess() would start the new program, but following it with ExitProcess() would mean that the parent would see that the child had quit.
It does, in fact, but it's in the "core" bottom-level APIs (NtXxxxxx and ZwXxxxxx), the ones meant for use by the subsystem modules. It exists to facilitate the old POSIX subsystem, and was then used by Interix, and now by WSL. The Win32 subsystem, whether for GUI or console, does not use it at all, and isn't designed to have it used "behind its back". fork() is horribly invasive, requiring special behaviour and treatment all over hell and gone, and Win32 doesn't carry that burden. Instead, we carry the burden of fork()'s non-availability in the Win32 API, if we think that's actually a burden. Which I don't.
Admin
I figured out you're talking about UC-Davis. The internet at large doesn't seem to be aware of any security vulnerabilities in UC-Davis. Do you know something most of the world doesn't?