Advertisement
cubecube

delayed_rsp_idのアドレスの求め方

Nov 23rd, 2013
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. ■まずkallsymsprintの結果の中から、diagchar_ioctlのアドレスを探す
  2. SO-01D(4.0.1.C.1.31)の場合
  3. 80290038 diagchar_ioctl
  4.  
  5. ■次に、そのあたりをdumpしてコードを得る
  6. arm-linux-androideabi-objdump -b binary -m arm --adjust-vma=0x80008000 --start-address=0x80290038 --stop-address=0x80291038 -D kernelbin > kernel_asm.txt
  7.  
  8. --start-addressはdiagchar_ioctlの開始アドレス、そこから適当に0x1000くらい取るので--stop-addressは0x80291038とした
  9.  
  10. ■kernel_asm.txtの中から、delayed_rsp_idに該当してそうな部分を探す
  11. そのあたりのコードは以下
  12.  
  13. 80290248: e3520008 cmp r2, #8
  14. 8029024c: 1a000014 bne 0x802902a4
  15. 80290250: e5932000 ldr r2, [r3]
  16. 80290254: e3520000 cmp r2, #0
  17. 80290258: 0a000093 beq 0x802904ac
  18. 8029025c: e5933004 ldr r3, [r3, #4]
  19. 80290260: e3530002 cmp r3, #2
  20. 80290264: 1a000090 bne 0x802904ac
  21. 80290268: e5943008 ldr r3, [r4, #8]
  22. 8029026c: e3530000 cmp r3, #0
  23. 80290270: 0a00008d beq 0x802904ac
  24. 80290274: e59f123c ldr r1, [pc, #572] ; 0x802904b8
  25. 80290278: e30f0fff movw r0, #65535 ; 0xffff
  26. 8029027c: e3a06000 mov r6, #0
  27. 80290280: e1d130b8 ldrh r3, [r1, #8] ; r3 = current delayed_rsp_id
  28. 80290284: e1530000 cmp r3, r0
  29. 80290288: 12830001 addne r0, r3, #1
  30. 8029028c: 11c100b8 strhne r0, [r1, #8]
  31. 80290290: e1c230b0 strh r3, [r2]
  32. 80290294: e3a02002 mov r2, #2
  33. 80290298: e5943008 ldr r3, [r4, #8]
  34. 8029029c: e5832000 str r2, [r3]
  35. 802902a0: ea000082 b 0x802904b0
  36.  
  37. SO-01D(4.0.1.C.1.31)の場合は、80290280番地の ldrh r3, [r1, #8] の r3 が delayed_rsp_id のアドレスになる
  38. 「r3, [r1, #8]」とか「#65535」で探すと見付かりやすいかも
  39.  
  40. さて、r3 = r1 + 8 らしいので、r1はどうなってるかというと、3つ上を見ると、
  41. ldr r1, [pc, #572] ; 0x802904b8 となっている
  42. 802904b8番地はどうなっているかというと、
  43.  
  44. 802904b8: 807542e0 rsbshi r4, r5, r0, ror #5
  45.  
  46. ということで、「807542e0」が入っており、r1 = 0x807542e0 となる
  47. よってr3 = 0x807542e8
  48.  
  49. つまり、delayed_rsp_id = 0x807542e8 となる
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement