summaryrefslogtreecommitdiff
path: root/utils/ipod/bin2note/README
diff options
context:
space:
mode:
Diffstat (limited to 'utils/ipod/bin2note/README')
-rw-r--r--utils/ipod/bin2note/README24
1 files changed, 24 insertions, 0 deletions
diff --git a/utils/ipod/bin2note/README b/utils/ipod/bin2note/README
index 0dbc9e465d..61e03b9981 100644
--- a/utils/ipod/bin2note/README
+++ b/utils/ipod/bin2note/README
@@ -15,3 +15,27 @@ It is known to work on the 2nd generation Nano.
15The Makefile contains rules for compiling an ARM assembler file 15The Makefile contains rules for compiling an ARM assembler file
16"test.S" into a notes file "test.htm". Just put test.S in this 16"test.S" into a notes file "test.htm". Just put test.S in this
17directory and type "make test.htm". 17directory and type "make test.htm".
18
19
20How it works
21------------
22
23When the Apple firmware boots, it scans the Notes folder and loads
24each note in turn in order to check its content.
25
26When it reaches our specially crafted note, a buffer overflows onto
27the stack, writing the entry point of our code over the top of an
28existing return address.
29
30This entry point was determined by "stooo1" as part of the
31"linux4nano" investigations into the Nano 2G. He managed to attach a
32JTAG debugger to his Nano 2G and dump the RAM after a notes file was
33loaded.
34
35Only certain return addresses can be used, as it is converted
36internally to utf-8. Hence we are currently using the address of the
37last instruction in the buffer, which is a branch back to our real
38entry point.
39
40You also need to ensure that there are no more than 64KB of notes in
41your Notes folder.