From 70d213efb38ec7810e9ee8aa0fd35e3c0a038213 Mon Sep 17 00:00:00 2001 From: Audrey Dutcher Date: Wed, 20 Dec 2017 18:34:33 -0800 Subject: [PATCH] Minor fixups for all examples; add testcases to check for example coverage and API doc coverage --- api-doc/source/angr.rst | 75 +++++++++++++++- api-doc/source/archinfo.rst | 16 ++++ api-doc/source/claripy.rst | 6 ++ api-doc/source/cle.rst | 24 ++++- api-doc/source/pyvex.rst | 18 +++- docs/loading.md | 4 +- examples/simple_heap_overflow/exploit | Bin 316 -> 316 bytes examples/tumctf2016_zwiebel/solve.py | 8 +- examples/unmapped_analysis/solve.py | 2 +- test.py | 122 +++++++++++++++++--------- 10 files changed, 220 insertions(+), 55 deletions(-) diff --git a/api-doc/source/angr.rst b/api-doc/source/angr.rst index 74baca69..c1477dd0 100644 --- a/api-doc/source/angr.rst +++ b/api-doc/source/angr.rst @@ -1,25 +1,42 @@ :mod:`angr` --- Analysis and Coordination ========================================= +.. automodule:: angr Project ------- .. automodule:: angr.project .. automodule:: angr.factory +.. automodule:: angr.block Program State ------------- .. automodule:: angr.sim_state .. automodule:: angr.sim_options .. automodule:: angr.state_plugins +.. automodule:: angr.state_plugins.plugin .. automodule:: angr.state_plugins.inspect .. automodule:: angr.state_plugins.libc .. automodule:: angr.state_plugins.posix .. automodule:: angr.state_plugins.solver +.. automodule:: angr.state_plugins.log +.. automodule:: angr.state_plugins.callstack +.. automodule:: angr.state_plugins.fast_memory +.. automodule:: angr.state_plugins.history +.. automodule:: angr.state_plugins.gdb +.. automodule:: angr.state_plugins.cgc +.. automodule:: angr.state_plugins.trace_additions +.. automodule:: angr.state_plugins.globals +.. automodule:: angr.state_plugins.uc_manager +.. automodule:: angr.state_plugins.scratch +.. automodule:: angr.state_plugins.preconstrainer +.. automodule:: angr.state_plugins.unicorn_engine + Storage ------- + .. automodule:: angr.storage .. automodule:: angr.state_plugins.view .. automodule:: angr.storage.file @@ -27,9 +44,26 @@ Storage .. automodule:: angr.state_plugins.symbolic_memory .. automodule:: angr.state_plugins.abstract_memory .. automodule:: angr.storage.memory_object +.. automodule:: angr.storage.pcap .. automodule:: angr.storage.paged_memory .. automodule:: angr.concretization_strategies +Concretization Strategies +------------------------- + +.. automodule:: angr.concretization_strategies.single +.. automodule:: angr.concretization_strategies.eval +.. automodule:: angr.concretization_strategies.norepeats +.. automodule:: angr.concretization_strategies.solutions +.. automodule:: angr.concretization_strategies.nonzero_range +.. automodule:: angr.concretization_strategies.range +.. automodule:: angr.concretization_strategies.max +.. automodule:: angr.concretization_strategies.norepeats_range +.. automodule:: angr.concretization_strategies.nonzero +.. automodule:: angr.concretization_strategies.any +.. automodule:: angr.concretization_strategies.controlled_data + + Simulation Manager ------------------ @@ -86,6 +120,7 @@ Calling Conventions and Types .. automodule:: angr.sim_variable .. automodule:: angr.sim_type .. automodule:: angr.type_backend +.. automodule:: angr.callable Knowledge Base -------------- @@ -104,6 +139,7 @@ Knowledge Base .. automodule:: angr.knowledge_plugins.variables .. automodule:: angr.knowledge_plugins.variables.variable_access .. automodule:: angr.knowledge_plugins.variables.variable_manager +.. automodule:: angr.keyed_region Analysis @@ -111,29 +147,64 @@ Analysis .. automodule:: angr.analyses .. automodule:: angr.analyses.analysis +.. automodule:: angr.analyses.forward_analysis .. automodule:: angr.analyses.backward_slice .. automodule:: angr.analyses.bindiff .. automodule:: angr.analyses.boyscout -.. automodule:: angr.analyses.cdg +.. automodule:: angr.analyses.cfg +.. automodule:: angr.analyses.cfg.cfg .. automodule:: angr.analyses.cfg.cfg_accurate .. automodule:: angr.analyses.cfg.cfg_base .. automodule:: angr.analyses.cfg.cfg_fast .. automodule:: angr.analyses.cfg.cfg_node +.. automodule:: angr.analyses.cfg.cfg_arch_options +.. automodule:: angr.analyses.cfg.cfg_job_base +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers.x86_pe_iat +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers.mips_elf_fast +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers.x86_elf_pic_plt +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers.default_resolvers +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers.jumptable +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers.resolver +.. automodule:: angr.analyses.cfg.indirect_jump_resolvers +.. automodule:: angr.analyses.cfg.cfg_utils +.. automodule:: angr.analyses.cdg .. automodule:: angr.analyses.code_location .. automodule:: angr.analyses.datagraph_meta .. automodule:: angr.analyses.ddg .. automodule:: angr.analyses.dfg -.. automodule:: angr.analyses.forward_analysis +.. automodule:: angr.analyses.variable_recovery.annotations +.. automodule:: angr.analyses.variable_recovery.variable_recovery_fast +.. automodule:: angr.analyses.variable_recovery.variable_recovery +.. automodule:: angr.analyses.variable_recovery .. automodule:: angr.analyses.girlscout +.. automodule:: angr.analyses.identifier.identify .. automodule:: angr.analyses.loopfinder .. automodule:: angr.analyses.veritesting .. automodule:: angr.analyses.vfg .. automodule:: angr.analyses.vsa_ddg +.. automodule:: angr.analyses.disassembly +.. automodule:: angr.analyses.disassembly_utils +.. automodule:: angr.analyses.reassembler +.. automodule:: angr.analyses.congruency_check +.. automodule:: angr.analyses.static_hooker +.. automodule:: angr.analyses.binary_optimizer +.. automodule:: angr.analyses.callee_cleanup_finder .. automodule:: angr.blade .. automodule:: angr.slicer .. automodule:: angr.annocfg +.. automodule:: angr.codenode + SimOS ----- .. automodule:: angr.simos +.. automodule:: angr.simos.simos +.. automodule:: angr.simos.linux +.. automodule:: angr.simos.cgc +.. automodule:: angr.simos.userland +.. automodule:: angr.simos.windows + +Errors +------ +.. automodule:: angr.errors diff --git a/api-doc/source/archinfo.rst b/api-doc/source/archinfo.rst index c0f5b70f..a4b58ed0 100644 --- a/api-doc/source/archinfo.rst +++ b/api-doc/source/archinfo.rst @@ -2,6 +2,10 @@ =============================================== .. automodule:: archinfo + +Architectures +------------- + .. automodule:: archinfo.arch .. automodule:: archinfo.arch_aarch64 .. automodule:: archinfo.arch_amd64 @@ -11,3 +15,15 @@ .. automodule:: archinfo.arch_ppc32 .. automodule:: archinfo.arch_ppc64 .. automodule:: archinfo.arch_x86 +.. automodule:: archinfo.arch_avr + +Utilities +--------- + +.. automodule:: archinfo.tls +.. automodule:: archinfo.defines + +Errors +------ + +.. automodule:: archinfo.archerror diff --git a/api-doc/source/claripy.rst b/api-doc/source/claripy.rst index a179c3cf..1bf75bd3 100644 --- a/api-doc/source/claripy.rst +++ b/api-doc/source/claripy.rst @@ -46,6 +46,11 @@ Backends .. automodule:: claripy.backend_object .. automodule:: claripy.backends.backend_concrete .. automodule:: claripy.backends.backend_z3 +.. automodule:: claripy.backends.backend_z3_parallel +.. automodule:: claripy.backends.celeryconfig +.. automodule:: claripy.backends.remotetasks +.. automodule:: claripy.backends.backend_vsa +.. automodule:: claripy.backends.backendremote Frontends @@ -59,6 +64,7 @@ Frontends .. automodule:: claripy.frontends.hybrid_frontend .. automodule:: claripy.frontends.light_frontend .. automodule:: claripy.frontends.replacement_frontend +.. automodule:: claripy.solvers Frontend Mixins diff --git a/api-doc/source/cle.rst b/api-doc/source/cle.rst index eff49f78..ef279d69 100644 --- a/api-doc/source/cle.rst +++ b/api-doc/source/cle.rst @@ -17,24 +17,29 @@ Backends .. automodule:: cle.backends.externs .. automodule:: cle.backends.symbol .. automodule:: cle.backends.regions +.. automodule:: cle.backends.region +.. automodule:: cle.backends.elf .. automodule:: cle.backends.elf.elf .. automodule:: cle.backends.elf.elfcore .. automodule:: cle.backends.elf.metaelf .. automodule:: cle.backends.elf.symbol .. automodule:: cle.backends.elf.regions .. automodule:: cle.backends.elf.hashtable +.. automodule:: cle.backends.pe .. automodule:: cle.backends.pe.pe .. automodule:: cle.backends.pe.symbol .. automodule:: cle.backends.pe.regions +.. automodule:: cle.backends.macho .. automodule:: cle.backends.macho.macho .. automodule:: cle.backends.macho.symbol .. automodule:: cle.backends.macho.section .. automodule:: cle.backends.macho.segment .. automodule:: cle.backends.macho.binding +.. automodule:: cle.backends.cgc .. automodule:: cle.backends.cgc.cgc .. automodule:: cle.backends.cgc.backedcgc -.. automodule:: cle.backends.ihex .. automodule:: cle.backends.blob +.. automodule:: cle.backends.ihex .. automodule:: cle.backends.idabin @@ -50,8 +55,25 @@ Look at the existing versions for details. .. automodule:: cle.backends.relocation .. automodule:: cle.backends.elf.relocation .. automodule:: cle.backends.elf.relocation.elfreloc +.. automodule:: cle.backends.elf.relocation.mips64 +.. automodule:: cle.backends.elf.relocation.generic +.. automodule:: cle.backends.elf.relocation.armel +.. automodule:: cle.backends.elf.relocation.ppc +.. automodule:: cle.backends.elf.relocation.armhf +.. automodule:: cle.backends.elf.relocation.pcc64 +.. automodule:: cle.backends.elf.relocation.i386 +.. automodule:: cle.backends.elf.relocation.amd64 +.. automodule:: cle.backends.elf.relocation.mips +.. automodule:: cle.backends.elf.relocation.arm +.. automodule:: cle.backends.elf.relocation.arm64 .. automodule:: cle.backends.pe.relocation .. automodule:: cle.backends.pe.relocation.pereloc +.. automodule:: cle.backends.pe.relocation.generic +.. automodule:: cle.backends.pe.relocation.i386 +.. automodule:: cle.backends.pe.relocation.amd64 +.. automodule:: cle.backends.pe.relocation.mips +.. automodule:: cle.backends.pe.relocation.arm +.. automodule:: cle.backends.pe.relocation.riscv Thread-local storage diff --git a/api-doc/source/pyvex.rst b/api-doc/source/pyvex.rst index 3b5ad904..59050602 100644 --- a/api-doc/source/pyvex.rst +++ b/api-doc/source/pyvex.rst @@ -16,10 +16,22 @@ IR Components .. automodule:: pyvex.stmt .. automodule:: pyvex.expr .. automodule:: pyvex.const +.. automodule:: pyvex.enums +Lifting System +-------------- -Misc. Things ------------- +.. automodule:: pyvex.lift +.. automodule:: pyvex.lift.libvex +.. automodule:: pyvex.lift.fixes +.. automodule:: pyvex.lift.util.irsb_postprocess +.. automodule:: pyvex.lift.util.syntax_wrapper +.. automodule:: pyvex.lift.util +.. automodule:: pyvex.lift.util.vex_helper +.. automodule:: pyvex.lift.util.lifter_helper +.. automodule:: pyvex.lift.util.instr_helper + +Errors +------ -.. automodule:: pyvex.enums .. automodule:: pyvex.errors diff --git a/docs/loading.md b/docs/loading.md index 2921e7a3..dfa7bf60 100644 --- a/docs/loading.md +++ b/docs/loading.md @@ -94,11 +94,11 @@ You can interact directly with these objects to extract metadata from them: <.text | offset 0x580, vaddr 0x400580, size 0x338> # Get the address of the PLT stub for a symbol ->>> addr = obj.plt['__libc_start_main'] +>>> addr = obj.plt['abort'] >>> addr 0x400540 >>> obj.reverse_plt[addr] -'__libc_start_main' +'abort' # Show the prelinked base of the object and the location it was actually mapped into memory by CLE >>> obj.linked_base diff --git a/examples/simple_heap_overflow/exploit b/examples/simple_heap_overflow/exploit index 5d3ea28ef4833ff63be4bf8c5b75a42ec0774012..78d8f6262621a9de2159da26977d02ebc28f45d6 100644 GIT binary patch delta 23 fcmdnPw1;VeEFxouU6DO