Today we will delve into the world of Palm cracking, which, i might say, is
quite exciting. Let's start with some basic information. This text will only
center upon Palm4 and older versions, Palm5 will not be mentioned. The
reason for this is because Palm5 use a different CPU, ARM. Those of us who
come from the world of windows cracking know that on x86 architectures
we have registers like EAX, EBX, ECX etc. There are of course registers on
Palm as well, but there are more of them and they have different names.
现在我们进入令人兴奋的 Palm 破解世界。让我们从一些基本知识起步。本文将只涉及 Palm 4 以及更老一些的版本,而不会涉及 Palm 5 。这是因为 Palm 5 使用了不同的 CPU ― ARM 。熟悉 Windows 破解的人知道 x86 架构拥有 EAX, EBX, ECX 等寄存器,在 Palm 平台上当然也有寄存器,但是它们数量更多,名称也有所不同。
There are 8 data registers, these are: D0, D1, D2, D3, D4, D5, D6 and D7.
We also have 8 address registers: A0, A1, A2, A3, A4, A5, A6 and A7, where
A7 (USP/SSP) works as a stack pointer.
All the registers are 32bit. In addition to these registers we also have USP
(User Stack Pointer), PC (Program Counter) and SR (Status Register). The PC
register is equivalent to the EIP register from the x86 architecture.
所有的寄存器都是 32 位的。除此之外,还有 USP
(User Stack Pointer,用户堆栈指针), PC (Program Counter,程序计数器) and SR (Status Register,状态寄存器). PC 寄存器等同于 x86 架构下的 EIP 寄存器。
Palm uses a DragonBall CPU from Motorola (MC68SZ328). That means we
will not be dealing with x86 assembly (intel), but with 68k assembly, which
you probably figured out when you saw the registers. 68k assembly has a
different instruction set, and the syntax is opposite of what we windows
crackers are used to. It is very much akin to AT&T syntax, which is used a
lot on linux.
Palm 使用的是摩托罗拉的龙珠 CPU (MC68SZ328)。这意味着:我们面对的是 68k 汇编,而不是 x86 汇编,当你看到那些寄存器时你多半会分辨出来。68k 汇编有独立的指令集,其句法与 Windows 破解者所熟悉的大相径庭。它与大量使用于 Linux 上的 AT&T 句法倒是非常相似。