Skip to content

Latest commit

ย 

History

History
33 lines (28 loc) ยท 998 Bytes

record_day4.md

File metadata and controls

33 lines (28 loc) ยท 998 Bytes

uftrace

uftrace ๋‚ด๋ถ€ ๊ตฌ์กฐ(internals)์™€ ์†Œ์Šค์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…

์ดํ•ดํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์–ด๋ ต๋‹ค ๊ทธ๋‚ญ ๋ฐ›์•„๋“ค์ด์ž! summit ๋ฐœํ‘œ์ž๋ฃŒ appendix๋ถ€๋ถ„

  • -pg option

    • mcount๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋จ
    • ํ•จ์ˆ˜ํ˜ธ์ถœ ํ๋ฆ„์ด uftrace๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋จ
  • gdb

    • disas main

      disassemble main function

    • list
    • quit
    • b *main+8
    • c
    • si
    • x/gx $rsp
    • r
    • info proc mapping
  • got table

    • ํ”„๋กœ์„ธ์„œ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด์ •ํ‘œ
    • ์˜คํ”„์…‹ ์ ˆ๋Œ€๊ฐ’์„ ๋ฐ”์ธ๋”ฉ
  • plt -> got -> linking // ์ด ๋งค์ปค๋‹ˆ์ฆ˜์— ๊ธฐ๋ฐ˜ํ•ด์„œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์‹œ์ ๊ณผ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์ ์— ๋Œ€ํ•œ

    • plt๋Š” ๋ช…๋ น์–ด 3๊ฐœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ
      1. got๋ฅผ ์ด์šฉํ•ด plt 2๋ฒˆ์งธ ์ฃผ์†Œ๋กœ ์ ํ”„
      2. ์‹œ์Šคํ…œ์—์„œ linkingํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•จ
      3. linking์„ ํ•ด์ฃผ๋Š” ์• ๋Š” plt hooker๊ณ .. ๊ทธ๋ž˜์„œ utftracing์ด ๊ฐ€๋Šฅํ•จ.
  • rage binding

ํ•จ์ˆ˜ํ˜ธ์ถœ ํ๋ฆ„์ด uftrace๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋จ