Author | Post | ||
unstable |
Since it came up in this topic, I thought it might be a nice idea to compile some useful tips for our darwinnian peers. I never used a mac myself, but I think it wouldn't be much different than using linux, windows or anything else for solving the challenges. However, since the world still seems to evolve around microsoft sometimes, finding the right tools might be a bit harder. So, lets start by finding some neat basic tools. Most of the software I'm gonna discuss will be free, open source if possible. I will mention a few tools that are not free if I think it's relevant, but I'll always try to provide free alternatives. Usually one of the first programs I install on a fresh machine is BIEW, a very portable hex editor. On windows I usually complement it with HIEW, which has a few extra features. I suggest you get PeekIt first, it's a really nice general purpose hex editor for the mac. If you have a PowerPC mac, you'll also want to get HexEdit which comes with a PowerPC disassembler and it can compare files. On their website they say "an x86 build will be coming soon", but from my experience "soon" often seems to have a different meaning on sourceforge. I think these two hex editors don't support different codepages, nor do they have an x86 disassembler. So I suggest you also get the latest dos version of BIEW (at the time of writing 'biew564d.zip'). HIEW would be even nicer since it also has an assembler, but it's not free. They won't run natively on your mac, but we'll handle that later. PeekIt: http://www.ravenware.com/sware/PeekIt%20Users%20Guide.html HexEdit: http://hexedit.sourceforge.net/ BIEW: http://biew.sourceforge.net/ HIEW (not free!): http://www.hiew.ru/ The Reverse Engineering wikibook also has some mac-specific information, they also list a few mac tools. Bright shadows also has an IRC channel, so if you want to chat with some other people in this community you might also want to get an IRC client. Ircle seems to be the most populair IRC client for the mac, but it's shareware. If you want a free one, I suggest X-Chat Aqua or Colloquy. Or just do a google picture search for something like "mac os x irc client" and pick the one that looks the most k-rad. When you get one add a server "irc.idlemonkeys.net", connect to it and join #tbs (usually by typing "/join #tbs"). X-Chat Aqua: http://xchataqua.sourceforge.net/twiki/bin/view/Main/WebHome Colloquy: http://colloquy.info/ Some more IRC clients: http://www.ircreviews.org/clients/platforms-macos.html Ircle (not free!): http://www.ircle.com/ You're probably also gonna need some development tools. Xcode is probably your best choice here, it features the GNU C/C++ compiler, an IDE and probably some other fancy stuff too. You can get it for free at Apple's developer site, but be warned that it's a huge download and you'll have to register (which is free, but nonetheless annoying). If you don't want to register, maybe bugmenot has some working accounts. I think Intel, IBM and Metroworks also have a C/C++ compiler, but they're probably expensive. And since most open source projects seem to use Xcode too, there isn't really any reason to use another compiler. If you're not happy with the standard Xcode IDE, I suggest you try out eclipse. I used to have some mixed feelings about eclipse because it's a bit bloated, and java-IDE's in general tend to be a bit slow, but eclipse does have a lot of nice features not found in any other IDE. It supports just about any language and there's a plugin for just about any feature you might desire, especially all the different modeling frameworks are unique to eclipse. It's still bloated and slow though, so you're probably still gonna use notepad a lot . I'm sure you'll manage to find a mac version of your favourite programming language and maybe an eclipse plugin for it using google. You can get java stuff at apple's developers site too. Eclipse: http://www.eclipse.org/ Bugmenot: http://www.bugmenot.com/ Xcode http://developer.apple.com/tools/xcode/ Programmer's Workshop http://developer.apple.com/tools/mpw-tools/ Java: http://developer.apple.com/java/ Well, I think that about covers the most important stuff. I won't cover any more specific tools, if you need anything else I suggest you check out these sites: http://finkproject.org/ http://darwinports.com/ http://www.osxgnu.org/ They're all projects to port the GNU userland to the mac, so I think it should all be free and open source. So bookmark it . Time to move on to the interesting part, remember how I told you to get that dos program? Lets make it run on your mac. And while we're at it, lets make windows programs run on your mac too. Hmm, why stop there? Lets make anything run on your mac . First you're gonna need dosbox. Dosbox is a nifty little program that will allow you to run DOS software on your mac. You can even use it to play neat old DOS games. Most of them can be downloaded for free nowadays, just go look for some "abandonware" sites. Anyways, play with BIEW first, getting it to run shouldn't be too hard. If you like BIEW, you could make a little shortcut for it and integrate it with your system. Now that you can run DOS software, you could even consider installing DJGPP on it. It's a whole GNU toolchain for dos, including a nice bash interpreter. That way you could have a nice little unix shell on your mac. Another nice use would be to use a program called "HX-Dos Extender" with dosbox. It allows you to run some windows programs in dosbox. It probably won't run most programs though, and it's a bit tricky to setup in dosbox. If you want to try it, make sure you reserve enough memory for it in dosbox, and if you need DLL files I think older DLL files tend to work better (from windows versions prior to nt). There's also another program that can emulate windows programs, called Darwine. It's based on wine and qemu, so I think it might be able to run a lot of windows programs. But then again, there probably still are a lot of windows programs that won't work in it. Lets face it. To get the best windows compatability, you need to run windows. But fortunately, there are solutions for that too . However, you would need Windows for it, which obviously isn't free. Some people have been working on a free version of windows for a while now though, so that might be just what you need. It's still in alpha so it might be a little buggy. But then again, so is Windows. And it doesn't support 3D acceleration yet. But then again, if we're going to run it inside Mac OS X, a regular windows wouldn't have 3D acceleration either. So if you don't have a regular windows, or just want to try it the other way, get ReactOS. To run it inside Mac OS X, you're going to need some virtualization software. One option is Bochs. Bochs has been around for a pretty long time. It's very portable, and usually it's as stable as a tank. Unfortunately, it's also as slow as a tank. But if you have a PowerPC mac, the other options will probably be just as slow. Another option is Q. Q is the mac port of qemu, a really nice emulator. Q doesn't have all the features of qemu yet though, and more importantly the kernel module (which would speed it up a lot) isn't done yet. If you're using an intel mac, Q would probably be quite a bit faster than Bochs, and once they finish the kernel module it would be even close to native speed. For PowerPC mac users it wouldn't make much difference, it's slow either way. [intel mac users only] The best option if you have an intel mac would probably be to use virtualbox. It wil allow you to run windows inside your mac at near native speeds. Two similar products, VMWare Fusion and Parallels Desktop, can do this too but they cost a lot of money. And from what I've seen, virtualbox even seems to perform better. There's also an "intel mac only" product that's similar to Darwine, called CrossOver Mac, but that one isn't free either. [/intel] [PowerPC mac users only] This program won't allow you to run windows, but linux might run pretty fast on it. It's called Mac-on-Mac. As the name suggests, you can run other Mac OS X versions on it inside your mac, but like I said, it can run linux too. Microsoft also made a PowerPC version of their Virtual PC product line (kinda like bochs and Q), but it's not free. [/PowerPC] Note that on these virtualization programs you don't have to run windows, most of them can run a lot of other operating systems too, like linux or bsd. Just make sure the operating system you're trying to run is supported by the program you're running it in, especially the cpu it is for. Here's a short list of the virtualization programs, what they run on and what cpu they virtualize: Program Runs on Emulates/virtualizes this cpu ------- ------- ----------------- Bochs both x86 Q both x86 (maybe more in the future) VirtualBox x86 x86 VMWare Fusion x86 x86 Parallels Desktop x86 x86 Mac-on-Mac PowerPC PowerPC Here come the links for all the stuff I mentioned: Darwine http://darwine.sourceforge.net/download.php DOSBox http://dosbox.sourceforge.net/ HX-Dos Extender http://www.japheth.de/HX.html HX-Dos compatibility list http://www.unet.univie.ac.at/~a0503736/php/drdoswiki/index.php?n=Main.HX-DOS-lists Bochs http://bochs.sourceforge.net/ Q http://www.kju-app.org/kju/ DJGPP http://www.delorie.com/djgpp/ Reactos http://www.reactos.org/ ***Intel only*** VirtualBox for OS X Hosts http://www.virtualbox.org/wiki/Downloads/ CrossOver Mac 6.0 (not free!) http://www.codeweavers.com/products/cxmac/ VMWare Fusion (not free!) http://www.vmware.com/products/fusion/ Parallels Desktop (not free!) http://www.parallels.com/en/products/desktop/ ***PowerPC only*** Mac-on-Mac http://sourceforge.net/projects/maconmac/ Virtual PC 7 (not free!) http://www.microsoft.com/mac/products/virtualpc/virtualpc.aspx?pid=virtualpc If you want to run linux or bsd on your mac, you can get emulator images that will probably work on Q at http://www.oszoo.org/, although if you have a powerpc you're probably better off getting a linux or bsd distro that runs on PowerPC cpus, and use that with Mac-on-Mac. Well, that's all I have to say. If you get something working, it'd be nice to post in this thread how you did it. Like I said, I don't have a mac so I can't really test most of these things myself. Good luck with it! Edit: Thanks for the tip rhican Addendum: In case you're wondering why I didn't suggest using a nice hex editor like UltraEdit(not free) or 010Editor(not free either) with darwine, or why I discussed so many programs in the first place, it has to do with performance. All these tools have very specific behaviour. A hex editor should start up quickly when you need it, and operate smoothly. Programs running in dosbox will load a lot faster than the other methods, and have a lot less overhead. Darwine has better compatibility with windows than dosbox+hx-dos, and will load faster than any of the full virtualization solutions. The full virtualization solutions will have the best compatibility, but they require a lot of overhead and are slow to start up since they need to boot an entire operating system. However, when using a virtualization program like virtualbox, Mac-on-Mac, or qemu with a kernel module, which don't use emulation, the programs generally run pretty fast, almost at native speed. Also I intentionally left out the option of dual booting, or paravirtualization with Xen (works only with Mac OS X when your cpu supports vanderpool/pacifica, you can't use Mac OS X as a host though iirc), because I felt they were beyond the scope of this document. PS. the "Format" buttons don't work in Opera! Would be nice if someone could fix that |
||
Edited by unstable on 15.09.2007 05:51:19 | |||
14.09.2007 17:48:33 |
|
||
unknown user |
great idea, lets support all the Mac's too There are quite a few challenges that are windows or linux only. I think that's a good thing. but maybe we should also make mac only challenges? you could use the code tag [ code ] which will use a fixed with font great list too, most of it works for Linux and i'm guessing *nix, when you just drop the Mac front ends. covers pretty well the basics. I believe that on a mac you also have the standard tools like od dd which will be helpful when solving a lot of challenges. |
||
14.09.2007 18:06:17 |
|
||
pandini0 |
About only mac chals, I don't like that idea first because, many people here don't have a mac, and second, why ? Why do it ? Ask people here if they want chals for only mac. Chals are for every one, and nothing to special groups, nothing against crackit's and other chals that you really need to have windows/linux. But those operational systems are more easy to install & use, and are more popular than a mac. I haven't money to buy a power pc mac, and haven't a good machine to emulate one. Linux you can emulate (DSL linux) in wmware with 128 mb of ram, with a slow processor, and it runs well. And to run a power pc emulator you need much more than a simple machine. Is more easy, one mac user run a emulator (bochs for example) than 6230 windows/linux users run a ppc emulator. Well, this is my option. sorry for my bad english |
||
14.09.2007 21:26:44 |
|
||
unstable |
I think it's a nice idea to have challenges that are tailored with the mac user in mind. However, I don't think the Windows flock will see the merit. Keep the opressor opressing. After all, the meek shall inherit zilch. Sofar I'm only aware of one mac user in our community. Hopefully this thread will make some more mac users in our community "come out of the closet" . Have you had your hydergine today? |
||
Edited by unstable on 15.09.2007 05:51:59 | |||
15.09.2007 05:18:25 |
|
||
Element |
I'm sorry unstable, but I'm going to have to disagree as well on the mac-only challenges. It's not that I have anything against the OS, or even apple for that matter, it's just that I think it is unfair to have challenges that cannot be solved solely based on your hardware. The thing about linux is, you can download and install it for FREE. Macintosh costs money to buy, and cannot even be installed on a windows machine(as to the best of my knowledge, but feel free to correct me on that if I'm wrong). See, even a mac user can install windows because they are given that support. So to make a bunch of mac-only challenge would be, in a way, a little stereotypical of us. Now, I'm not saying that one or two is bad, but to have 10 or 15 mac-only challenges that someone can't solve just because they follow the mainstream is not fair. That's my opinion. Edit: Gizmore pointed out that only mac users running an intel processor could dual-boot both Operating systems. So anyone running a ppc processor could not. But the option is still there for a mac user |
||
Edited by Element on 16.09.2007 13:27:48 | |||
16.09.2007 13:19:23 |
|
||
unknown user |
Jikes, I was mainly kidding. I don't like Apple, their vendor lock-in irritates me to no end. But MacOSX is an complete end user operating system solution, with a marketshare of about 5% iirc. It's probably my fault by calling them "mac-only", better would be "mac-aware" or " machallenges" or "iChallenges" The responses however seem to be fear motivated, by people scared of being left out. Where on the contrary it is a large advantage of challenge sites like this that you get into contact with a broad range of software problems. A mac is a unix running on either PPC or x86. And a range of software like the iLife stuff and the famous photoshop, ... Letting people experience that a "mac" isn't something to be scared of touching. Would probably just be beneficial. Having good challenges that get to some of the core issues differences. To create a broader understanding in general. Mac's however are expensive, and snobbish and have the vendor lock-in problems. So challenges should be doable, hence I was thinking more along the lines of simulated challenges. Or challenges that leverage Apple software. PPC disassembly is nothing to be too scared about, since it's RISC ... but anyways not really the first thing to think about. For the record Linux also runs on PPC. But at least the people responding realize that crossplatform challenges, and hence cross platform everything is good for everybody, since that means it also works for you. |
||
16.09.2007 14:05:42 |
|
||
unstable |
I don't think our userbase has enough mac users at the moment, so mac oriented challenges probably won't be viable any time soon anyways. However I do find it curious that people seem to be afraid of the concept even though rhican nor me gave any details about the technical implementation of these proposed mac oriented challenges. Moreover, the people raising issues here aren't even the intended audience. I'll start by dispelling some myths. Quote from Element: Macintosh costs money to buy, and cannot even be installed on a windows machine(as to the best of my knowledge, but feel free to correct me on that if I'm wrong). There is an on-going effort to get Mac OS X running on any x86 hardware, and at the moment it can run on a lot of computers. This project isn't supported by Apple though, and probably has legal issues too, but I brought it up to point out it can run perfectly fine on "windows machines". The Darwin kernel however, is completely open source. There's even an open source operating system called OpenDarwin (although it's no longer maintained), which can be used to run darwin binaries. Quote from pandini0: And to run a power pc emulator you need much more than a simple machine. Is more easy, one mac user run a emulator (bochs for example) than 6230 windows/linux users run a ppc emulator. There is an abundance of software to emulate the macintosh platform, some not even requiring a macintosh operating system. There are too much options to sum up here, but to give some examples, have a look at vMac, Executor, PearPC, CherryOS, qemu, Mac-on-Linux, Basilisk II, Sheepshaver, not to mention the countless solutions to run OpenDarwin inside a virtual machine. Rhican nor me ever said anything about having to be able to run mac software though. Nor did we say the challenges would have to be part of the main challenge base. All we said is it would be a nice idea to have challenges oriented towards mac users. This could simply mean a few introductory challenges meant as a bridge for mac users. Or an isolated subset of challenges for users that wish to explore a mac's inner workings. Edit: Off topic, but just for fun, I challenge you to find a legit Mac OS X user (shouldn't be too hard, I think most Mac OS X users are legit, in fact I wouldn't be surprised if the legit Mac OS X userbase is larger than the legit Windows userbase, not counting the Windows licenses that come with new computers but aren't used) that regrets paying money for their operating system. See, most Mac OS X users seem to be very happy with their operating system. Now try to find a legit Windows user (even this might be a difficult task) that is aware of the amount of money that went to Microsoft when they purchased their system, and thinks they got their money's worth. If you do happen to find one, I doubt (s)he ever needed support from Microsoft. Just for fun, have a look at this youtube video. By the way, lets not turn this into a Mac OS vs Windows thread. Feel free to share your opinions, but keep it friendly. I'm not claiming Mac OS X is the greatest OS ever invented or anything, that would be pointless. Besides, it's common knowledge VAX/VMS is the best OS ever invented . Thanks for being open minded. Kemo City is a nice place to visit. |
||
Edited by unstable on 17.09.2007 01:58:21 | |||
16.09.2007 23:30:00 |
|