ASLRの実装について

69f264ddffdd6f517b0407be1f8e6054?s=47 domitry
October 19, 2013

 ASLRの実装について

自作OSにASLRを実装してみました。
カーネル/VM+K*BUG勉強会@関西 ごかいめのLTで発表しました。

69f264ddffdd6f517b0407be1f8e6054?s=128

domitry

October 19, 2013
Tweet

Transcript

  1. None
  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. kernel kernel libc a.out heap stack libc a.out heap stack

  11. None
  12. None
  13. None
  14. None
  15. .text .got.plt func()

  16. None
  17. ELF Header Program Headers .interp .hash .dynsym .dynstr .rel.plt .plt

    .text .dynamic .got.plt
  18. ELF Header Program Headers .interp .hash .dynsym .dynstr .rel.plt .plt

    .text .dynamic .got.plt
  19. ELF Header Program Headers .interp .hash .dynsym .dynstr .rel.plt .plt

    .text .dynamic .got.plt
  20. None
  21. None
  22. UINT xor128(void) { static UINT x = 123456789; static UINT

    y = 362436069; static UINT z = 521288629; static UINT w = 88675123; UINT t; t = x ^ (x << 11); x = y; y = z; z = w; return w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)); }
  23. None
  24. None
  25. None
  26. None
  27. None
  28. None