A few years ago I wrote several Internet components for Borland's compliers. Delphi is their Windows complier and Kylix is their Linux compiler.
The current Mac operating system is a version of Berkley Linux. It uses the standard Linux code to access the Internet.
It was easy to learn how Linux accesses the 'net. I just down loaded the open source Berkley Code and read it.
But windows is not open source.. I was faced with the problem of how to reverse engineer Windows Internet access code. By regular means that would take a lot of time and effort. What I decided to do first was try the Linux code compiled for Windows to see what happened. I did it on a whim. I did not really think it would work.
To my surprise it turned out the only difference between the Linux code and the Windows code was the Linux module contained the data structure used while the Windows code required the address of the data structure be passed to the Internet access code. The functions were the same code, took the same arguments, and were in the same order in the complied code. It turned out Microsoft had purchased the right to use the Berkley Linux code in Windows.
Both Delphi and Kylix use the same code for internet access components. The only difference is in Kylix the code passes the data to the functions and Delphi only passes the address of the data.
Thus the bugs that allow unauthorized Internet access to Windows machines will also allow unauthorizede access to the Mac and Linux machines.
But Macs and Linux have only a small percentage of the market. Macs have less than 3 percent. So hackers have had little reason to attack Macs or Linux machines.
Recently, as windows has become more robust and Microsoft has fixed more and more bugs, there have been successful attacks on both Mac and Linux machines.
Macs and Linux machines are not superior. There are so few Mac and Linux machines that few hackers have bothered to attack them.
That is likely to change in the future.
written any code for VMS boxes?
Geez, dude. "Berkley Linux"? If you're gonna spew uncertainties and so forth, ya gotta be more careful. Mac OS-X is a BSD UNIX variant, which pre-dates Linux by decades. BSD is an outstandingly robust operating system. Linux isn't too shabby either, these days.
Windows is something else entirely.
> It was easy to learn how Linux accesses the 'net. I just down loaded the open source Berkley Code and read it.
Two completely different code bases. BSD was prominent in the early 80's, on VAXes and such; Linux didn't get written until the 90's, on i386 PCs.
I can't imagine how you confused those two. Seriously, you completely undermined whatever else you said with that.
Hi Common Tator,
Looks like we are in the same field of work.
I wrote a program in 1994, before the internet was widely in use, to allow two customers of mine, who were both interested in the same piece of IC layout data, to open two viewers at different sites and share graphics data across the net. One could markup data, the other could view the markups realtime. This was long before the common data sharing programs and remote X windows tools we have now on Unix / Linux. That tool eventually sold 6,000 + copies into the different IC layout design and manufacturing plants around the world. As the net became faster, that tool came into its own. I added encryption and lots of bells and whistles. It could be configured to work through firewalls, access common file systems if any (intranet style), and work across different hardware architectures. It was in use on files of 600+ GB of data at the end, far too large for normal data transport tools. It was ported to AIX, HP-UX, Solaris, and Red Hat Linux. IC design and layout data will always remain on the hairy edge of what hardware and software can support, as it is data at the hairy edge of design complexity for hardware.
My question was really a much more simple one than a question of internet access code for Mac vs. Windows, rather, it was a curiosity of how one would get malicious code onto a Mac. Since retiring, I am getting current on Mac programming, especially Cocoa, since I have been doing Motif / X windows stuff since it was new from MIT. In watching the discussions on Free Republic, I have generally had good confidence in the Mac being resistant to malicious code, but this seems to infer a Mac vulnerability. If one were to get onto a computer, and know a port and the services to reach another computer, one could easily establish a connection and reach system services, trojan horse style. I suppose the article takes it as a given that such a connection exists. Then, it is reasonable to assume the rest of the zombie behavior could be established.
Thanks for the insight into the Windows internet access code. I am always impressed how the early Unix developers had considerable foresight.
Waitasec. I worked on the first firewall for Windows NT back in '96. You're talking gibberish ("Berkeley Linux"). The NT IP stack was _not_ "purchased to use the Berkeley Linux (sic) code in Windows", but rather was licensed from a sui generis commercial stack (from Spider Systems) that was based on the AT&T System V STREAMS code.
Granted, it uses many of the same concepts and algorithms for its stack, as described in the Best Practices RFCs for IP and TCP, such as the Nagle Algorithm. But the implementation is nothing like BSD, and cetainly is nothing like you describe ("changing one parameter").
Windows Sockets is a translation layer atop TDI and NDIS, which are protocol-agnostic APIs originally used for NETBUI and Novell NPX. Native TCP sockets were added to Windows late in the design cycle for Windows 95. Most of the implementation in in a filter driver between TDI and NDIS (AFD.SYS). It is most decidedly _not_ anything like the BSD stack.
Please check your facts.
BTW, the whole TCP stack has been re-written mostly from scratch in Vista.
It ain't the port functions that are the big vunerability. It's the layers on top that call those functions - and the interface between those layer and the implementing applications. A good example is Visual Basic being hooked into all sorts of Windows Apps - like Outlook, etc.
Uh, Common? The Mac is not a Linux based computer. The underlying OS of OS X is FreeBSD UNIX. Linus Torvald's brain child has had nothing to do with it.
It has been known for some time that the TCP/IP stack in Windows was taken from BSD. (Not "Berkley Linux" --- BSD and Linux are similar, but not the same.) The BSD license allows commercial products to incorporate BSD code as long as credit is given. OSX is based almost completely on BSD.
There are several differences between the way Windows and unix-like systems work that make Windows far more vulnerable.
First, *nix operating systems enforce user privileges. Generally, a user needs to enter an administrative password before changing important system files or installing programs.
In Windows almost all users have administrative rights,which allows any program to alter crucial system files and run any code. If a malicious program tries to alter system files in Linux or OSX, it would either need to use a flaw in the system to escalate privileges to administrator or convince the user to enter an administrative password.
Secondly, ActiveX allows a website to run programs on a user's computer with the user's full privileges. This is the fundamental reason why Internet Explorer is unsafe. Until recently, a user could simply visit a site, and an ActiveX control could run, download the malicious software and run it without any user intervention. Unpatched systems still have this vulnerability.
Windows' problems are based on design decisions made by the Windows developers many years ago. They assumed that the Internet was safe and that no one had malicious intent. They have been working to deal with those assumptions for years. The first big step was XP SP2, where the firewall was on by default, which ended much of the worm problem. Now, they have required user intervention to run ActiveX controls.
Windows Vista will make it much harder for hackers to take over machines, since it implements unix-like privilege system for all users. At the very least, in Vista, a user will have to click "OK" before any software is installed or touches system files.
"Berkley Linux"
No such animal. There is a Berkeley variant of UNIX. BSD.
Almost nothing about your post is correct, one does not have to purchase the rights to use BSD *unix* code its implied in the BSD license you can use it any way you want gratis and without the requirement to return code..