summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2009-07-16 17:40:55 +0000
committerDave Chapman <dave@dchapman.com>2009-07-16 17:40:55 +0000
commitf8ec7e4ad457a7a3a428f18eaf35f50a28d752b4 (patch)
treecc0707339955fc4aef2d08b44c7e219cd1938a76
parent38754e7a9e8945cac11b0d45019b95e2ee26994f (diff)
downloadrockbox-f8ec7e4ad457a7a3a428f18eaf35f50a28d752b4.tar.gz
rockbox-f8ec7e4ad457a7a3a428f18eaf35f50a28d752b4.zip
Add some notes describing how the bin2note exploit works
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21904 a1c6a512-1295-4272-9138-f99709370657
-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.