Thank you! That's exactly what I want to know. In short: The code segment checksum technique will work as long as I stay with 68K -- even if it runs on Protein through PACE.
"Ben Combee" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > At 10:13 PM 8/7/2004, you wrote: > >In order to protect my program from being altered by hackers, I want to > >check the checksum of one of the code segments. If the checksum is different > >from expected, then the program knows someone tampered with it and the > >program aborts. For this to work, the binary code in the segment must be > >exactly the same no matter which OS version it runs on. From my > >experiements, it does seem to work (on Emulators and Simulators.) But what I > >don't understand is: Supposedly, theoretically, it shouldn't work! I mean > >when the program is loaded (or installed?), the OS would fix up addresses in > >code segments, and supposedly different OS versions will generate different > >addresses. That is, the binary code would be different on different OS and > >the checksum should fail! Am I right? > > In Palm OS 68K programming, no fixup are performed to the program > text. All of the fixups are done to the data sections, but the code > remains as compiled. This is because Palm OS uses an execute-in-place > architecture, and references within a code module are either PC-relative or > A5-relative (to the data section). Intersection jumps are handled using a > jumptable stored in the data section. > > Palm OS Protein development is different -- there, your code is still > execute-in-place, but the OS does do code fixups, and those get adjusted > when the OS moves the chunks of code around in memory. > > -- Ben Combee, DTS technical lead, PalmSource, Inc. > "Combee on Palm OS" weblog: http://palmos.combee.net/ > Palm OS Dev Fourm Archives: http://news.palmos.com/read/all_forums/ > > > -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
