Motorola 68k Assembly

3 replies [Last post]
afib's picture
Joined: 2011/12/06

Is there anyone here vaguely familiar with it? Or perhaps at least good enough with x86 assembly that they could help me out with a project?

I've spent the last two days trying to reverse a program written in it (specifically the Ti-89 flavor) and it's proving difficult.

I'm not great with asm yet anyway and 68k has opcodes that I have no idea what they are. It also seems to have a hell of a lot more, too, but I could be wrong. EDIT: the basic instruction only goes up to 56, 8086 is much higher I'm sure.

There are also very few disassemblers, decompilers and debuggers for it. I have yet to find a debugger that will actually allow me to step through the program (which is in a Ti-89 emulator btw) while it's actually running.

The reason? Well, the program I bought is fine on the calculator. However, it uses a serial number unique to every calculator to generate your key. No problem, right? Wrong.

You see, Ti allows us to do a ROM dump (or even just download the OS from their site) so that the calculator can be emulated and used on a PC. The problem is the ROM dump doesn't include your serial number as it is hard coded into the calculator itself and the ROM merely reads it. I've tried dumping my ROM several different ways, and the serial number does not go with it.

Since no serial number exists on the emulated device, you can't use your registration key (which I find to be a load of crap), which means you cannot use any programs you bought if you want to use them on a computer. The emulators also don't allow you to put your serial number in. As someone who works in a lab, I can tell you I am far from being the only person who prefers to do the math on a computer versus the calculator. It's nice to have both, but in a lab environment the more little things you have sitting around the more you're asking for trouble. And computers are obviously much more flexible.

The only ways I see around this are generating the key algorithm (I have a few key sets, but probably not enough), manually inserting the serial into the expected memory space (either through a crack or memory editor), or cracking it and removing the prompt.

I'll still be working on this whether I can get assistance or not and I'll post the results. I think the easiest way would be to just try to find the memory address of the serial number (but keep in mind, I can only debug on emulated hardware, so I can't even search for the number since it doesn't exist). There are no debuggers that are native that I am aware of and the address space is in protected storage.