Skip to content

CLE refactor February 2020#234

Merged
rhelmot merged 18 commits intomasterfrom
feat/coredump_threads
Mar 7, 2020
Merged

CLE refactor February 2020#234
rhelmot merged 18 commits intomasterfrom
feat/coredump_threads

Conversation

@rhelmot
Copy link
Copy Markdown
Member

@rhelmot rhelmot commented Feb 28, 2020

I kind of went off the rails and did a bunch of refactors I've always wanted to do.

  • coredumps can export multiple threads of context
  • there's an elf core tls manager which attempts to recover the tls regions for each thread
  • new kinds of clemory which are views over other clemories (unused atm but will be necessary for future introspection into coredumps, like symbol loading)
  • A ton of new coredump features, like parsing the auxv and file mappings
  • automatically look in the OS for the debug symbols for ELFs if load_debug_info is on, or you can manually specify the file to load debug symbols from
  • add a PE file API for examining the load config directory (this was the only extrajudicial use of the pefile object)
  • rework the backend contract so there's less magic around the binary and its stream. the stream is now explicitly provided from above, and the backend must relinquish all references to it upon calling close().
  • Remove all the magic around pickling now that things are simple

closes #233
closes #215
closes #207
closes #184 (probably)

depends on eliben/pyelftools#287
sync angr/angr#1973
sync angr/angr-doc#304
sync angr/angr-platforms#32

Comment thread cle/backends/cgc/cgc.py Outdated
Comment thread cle/backends/elf/elf.py
Comment thread cle/backends/elf/elf.py
Comment thread cle/backends/elf/elf.py
Comment thread cle/backends/elf/elfcore.py Outdated
@ltfish
Copy link
Copy Markdown
Member

ltfish commented Feb 28, 2020

I have a few questions/comments. Other than that, it looks good to me! Great job done.

@rhelmot rhelmot merged commit fcb65fd into master Mar 7, 2020
@rhelmot rhelmot deleted the feat/coredump_threads branch March 7, 2020 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants