Tearaway could easily be described as THE hackers utility. Designed to be used with the Multiface II this is the only alternative to the awful INSIDER, in fact it's what insider should really have been. When installed, a bit of Tearaway sits inside the Multiface, and the rest of the code sits in the CPC's extra RAM. Obviously this limits hacking to 64k only games, but this is only a slight niggle. What makes this program really stand out is its power. And this is what makes it also attractive to the hacker. For instance it's one of the few (maybe even ONLY!) disassemblers that recognise the Z80 undocumented opcodes, that are used in the most popular protection systems. This means that code that looks like gibberish when viewed with another assembler suddenly becomes altogether Tearaway could easily be described as THE hackers utility. Designed to be used with the Multiface II this is the only alternative to the awful INSIDER, in fact it's what insider should really have been. When installed, a bit of Tearaway sits inside the Multiface, and the rest of the code sits in the CPC's extra RAM. Obviously this limits hacking to 64k only games, but this is only a slight niggle. What makes this program really stand out is its power. And this is what makes it also attractive to the hacker. For instance it's one of the few (maybe even ONLY!) disassemblers that recognise the Z80 undocumented opcodes, that are used in the most popular protection systems. This means that code that looks like gibberish when viewed with another assembler suddenly becomes altogether operate. Instead, when it needs a code module it'll load it off the disk. Unfortunately the loading system was so unreliable, that it would work an average 3 times out of 10. Because of this, and many other niggles, (like a 2-inch high editing screen!), once you've seen both programs working side by side, there really is no comparison to be made. So we won't, eh? Onto the menu options then. From the main menu, where you can do all sorts of really wicked things, as I mentioned earlier, one if its most powerful attributes is the Disassembler, and another very important one is the Unique NULL BYTE SEARCH option. This is an absolute boon for hackers,, because infinite lives, etc. can be discovered with a minimum of ease. For example, an infinite lives routine may work as follows: Assembler | Machine code | Comment | LD A,3 LD (&3004),A «Rest of program» | 3e,03 32,04,30 | ; number of lives ; &3004 stores lives counter | The life counter may work as such | LD A,(&3004) DEC A CP &00 JP Z,&4002 LD (&3004),A JP &2000 | 3a,04,30 3d fe,00 c2,02,40 32,04,30 c3,00,20 | ; get the lives counter ; a=a-1 ; is A zero (no more lives?) ; yes, then jump to end of game routine ; no, then save new life counter ; and jump to main loop of game |
With Tearaway , you would set the NULL byte option to zero, and search for the bytes : 3a,00,00,3d,00,00, which would search for all occurrences of those byte values, no matter what the locations with #00 were filled with. Very clever, and very surprising that no-one else has thought of this idea. CPC Attack |