Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recover High Level IR from Patchable IR #342

Draft
wants to merge 164 commits into
base: master
Choose a base branch
from
Draft

Commits on Nov 18, 2022

  1. first lift of a func

    2over12 committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    f702e7c View commit details
    Browse the repository at this point in the history
  2. fix entry

    2over12 committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    d853624 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4d4c77e View commit details
    Browse the repository at this point in the history
  4. add inlining

    2over12 committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    8b65e82 View commit details
    Browse the repository at this point in the history
  5. Use per-block context assignments

    frabert authored and 2over12 committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    998acf0 View commit details
    Browse the repository at this point in the history
  6. fix PC semantics

    2over12 committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    8732f1c View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2022

  1. Configuration menu
    Copy the full SHA
    e18567a View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2022

  1. Configuration menu
    Copy the full SHA
    1d7fb45 View commit details
    Browse the repository at this point in the history
  2. Pass declaration to AddFunctionToContext

    frabert authored and 2over12 committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    729752e View commit details
    Browse the repository at this point in the history
  3. Move basic block funcs into new context

    frabert authored and 2over12 committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    e18dc31 View commit details
    Browse the repository at this point in the history
  4. Remove unused passes

    frabert authored and 2over12 committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    07866fd View commit details
    Browse the repository at this point in the history
  5. delete old test case

    2over12 committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    7f4b015 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e6a8377 View commit details
    Browse the repository at this point in the history
  7. Parse local variable decls

    frabert committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    13cf91b View commit details
    Browse the repository at this point in the history
  8. add test

    2over12 committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    8898b9d View commit details
    Browse the repository at this point in the history
  9. add contexts

    2over12 committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    c5a37b4 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2022

  1. add start of param pass

    2over12 committed Nov 22, 2022
    Configuration menu
    Copy the full SHA
    d7bcb86 View commit details
    Browse the repository at this point in the history
  2. add pass plans

    2over12 committed Nov 22, 2022
    Configuration menu
    Copy the full SHA
    88fa7f1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d12d438 View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2022

  1. Configuration menu
    Copy the full SHA
    888b3ee View commit details
    Browse the repository at this point in the history
  2. Revert "First attempt at recovering params/locals"

    This reverts commit d12d438.
    2over12 committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    4943211 View commit details
    Browse the repository at this point in the history
  3. working on transforms

    2over12 committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    b33c574 View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2022

  1. Configuration menu
    Copy the full SHA
    d016dc8 View commit details
    Browse the repository at this point in the history
  2. do sig pass before opt

    2over12 committed Nov 29, 2022
    Configuration menu
    Copy the full SHA
    908c135 View commit details
    Browse the repository at this point in the history
  3. update spec

    2over12 committed Nov 29, 2022
    Configuration menu
    Copy the full SHA
    7cd6bcd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c347322 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ffb4b64 View commit details
    Browse the repository at this point in the history
  6. fix func names

    2over12 committed Nov 29, 2022
    Configuration menu
    Copy the full SHA
    f0315cc View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2022

  1. insert offsets

    2over12 committed Dec 3, 2022
    Configuration menu
    Copy the full SHA
    b56c3b8 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2022

  1. Configuration menu
    Copy the full SHA
    1528b3c View commit details
    Browse the repository at this point in the history
  2. fix thumb mode

    2over12 committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    d90e942 View commit details
    Browse the repository at this point in the history
  3. fix switch branch types

    2over12 committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    7f0f284 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2022

  1. Configuration menu
    Copy the full SHA
    6a748cf View commit details
    Browse the repository at this point in the history
  2. add frame size

    2over12 committed Dec 6, 2022
    Configuration menu
    Copy the full SHA
    5daa0f3 View commit details
    Browse the repository at this point in the history
  3. separate out state ptr

    2over12 committed Dec 6, 2022
    Configuration menu
    Copy the full SHA
    a000f38 View commit details
    Browse the repository at this point in the history
  4. remove deadcode

    2over12 committed Dec 6, 2022
    Configuration menu
    Copy the full SHA
    ba4d71c View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2022

  1. Configuration menu
    Copy the full SHA
    f8c6142 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f6609a8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d0d50c3 View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2022

  1. back to building

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    67fae08 View commit details
    Browse the repository at this point in the history
  2. add caller to bblifter

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    9568946 View commit details
    Browse the repository at this point in the history
  3. added pack and unpack

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    ebeff62 View commit details
    Browse the repository at this point in the history
  4. fix memory issue

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    73b03eb View commit details
    Browse the repository at this point in the history
  5. fix constructor

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    d90fb04 View commit details
    Browse the repository at this point in the history
  6. add stack offsets to context

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    6891e44 View commit details
    Browse the repository at this point in the history
  7. use same struct type

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    3c851f8 View commit details
    Browse the repository at this point in the history
  8. fix state ref

    2over12 committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    6ca8711 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2022

  1. Configuration menu
    Copy the full SHA
    ca78a0a View commit details
    Browse the repository at this point in the history
  2. lifts again

    2over12 committed Dec 9, 2022
    Configuration menu
    Copy the full SHA
    86a15b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    476c98d View commit details
    Browse the repository at this point in the history
  4. Fix spec loading bug

    frabert committed Dec 9, 2022
    Configuration menu
    Copy the full SHA
    b5e3da8 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a0ee5a8 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5cd4ef3 View commit details
    Browse the repository at this point in the history
  7. symbolic init stack

    2over12 committed Dec 9, 2022
    Configuration menu
    Copy the full SHA
    f4c96dd View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    42ec613 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2022

  1. First conversion heuristics

    frabert committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    bdf898f View commit details
    Browse the repository at this point in the history
  2. remove old transform

    2over12 committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    d8802a6 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2022

  1. Configuration menu
    Copy the full SHA
    0da8b48 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    754d06f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5ae55c8 View commit details
    Browse the repository at this point in the history
  4. Recognize scaled index access

    frabert committed Dec 12, 2022
    Configuration menu
    Copy the full SHA
    b4851cd View commit details
    Browse the repository at this point in the history
  5. basic stack vars

    2over12 committed Dec 12, 2022
    Configuration menu
    Copy the full SHA
    a130f06 View commit details
    Browse the repository at this point in the history
  6. remove old decomp stack

    2over12 committed Dec 12, 2022
    Configuration menu
    Copy the full SHA
    ecc0586 View commit details
    Browse the repository at this point in the history
  7. cast

    2over12 committed Dec 12, 2022
    Configuration menu
    Copy the full SHA
    4997be3 View commit details
    Browse the repository at this point in the history
  8. fix off by ones in stack

    2over12 committed Dec 12, 2022
    Configuration menu
    Copy the full SHA
    5513b8c View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2022

  1. add function lifting

    2over12 committed Dec 13, 2022
    Configuration menu
    Copy the full SHA
    a93fb2e View commit details
    Browse the repository at this point in the history
  2. replace calls

    2over12 committed Dec 13, 2022
    Configuration menu
    Copy the full SHA
    824923a View commit details
    Browse the repository at this point in the history
  3. start add return pass

    2over12 committed Dec 13, 2022
    Configuration menu
    Copy the full SHA
    dfd2622 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2022

  1. Configuration menu
    Copy the full SHA
    e0bf8f2 View commit details
    Browse the repository at this point in the history
  2. uncomment some opts

    2over12 committed Dec 14, 2022
    Configuration menu
    Copy the full SHA
    bc5a8a7 View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2022

  1. add liveness to spec

    2over12 committed Dec 15, 2022
    Configuration menu
    Copy the full SHA
    e26c58e View commit details
    Browse the repository at this point in the history
  2. live loads working

    2over12 committed Dec 15, 2022
    Configuration menu
    Copy the full SHA
    068914e View commit details
    Browse the repository at this point in the history
  3. save live registers at exit

    2over12 committed Dec 15, 2022
    Configuration menu
    Copy the full SHA
    e63d4d1 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2022

  1. Configuration menu
    Copy the full SHA
    601a003 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    31c5570 View commit details
    Browse the repository at this point in the history
  3. remove mac only header def

    Ninja3047 committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    38c7f74 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2022

  1. start porting to split params

    2over12 committed Dec 19, 2022
    Configuration menu
    Copy the full SHA
    a67f34a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7be0fb5 View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2022

  1. small memory pointer fix

    2over12 committed Dec 20, 2022
    Configuration menu
    Copy the full SHA
    878effe View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2022

  1. fix stack pointer, also update stackp pointer replacement to referenc…

    …e argument passed scope vars
    2over12 committed Dec 21, 2022
    Configuration menu
    Copy the full SHA
    75f21ed View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4910c2f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3c02941 View commit details
    Browse the repository at this point in the history
  4. reset insert point

    2over12 committed Dec 21, 2022
    Configuration menu
    Copy the full SHA
    1629fba View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    16de1c8 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    32d8263 View commit details
    Browse the repository at this point in the history
  7. enable avx by default

    2over12 committed Dec 21, 2022
    Configuration menu
    Copy the full SHA
    af1f626 View commit details
    Browse the repository at this point in the history
  8. use datalayout size

    2over12 committed Dec 21, 2022
    Configuration menu
    Copy the full SHA
    1ebd897 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2022

  1. update angha script

    2over12 committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    3fe263c View commit details
    Browse the repository at this point in the history
  2. bump tool ci

    2over12 committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    6d9eb56 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2023

  1. refactor to lift all live variables (#341)

    * refactor to lift all live variables
    
    * implement shared liveness utilities
    
    * convert bytes to bits...
    
    * insert into right vector
    2over12 authored Jan 6, 2023
    Configuration menu
    Copy the full SHA
    1df0ee5 View commit details
    Browse the repository at this point in the history
  2. formatting

    2over12 committed Jan 6, 2023
    Configuration menu
    Copy the full SHA
    9a59b07 View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2023

  1. add abstract fallback stack

    2over12 committed Jan 7, 2023
    Configuration menu
    Copy the full SHA
    d440843 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6c279f1 View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2023

  1. stack fixes

    2over12 committed Jan 9, 2023
    Configuration menu
    Copy the full SHA
    0921d06 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2023

  1. add better logging

    2over12 committed Jan 10, 2023
    Configuration menu
    Copy the full SHA
    d3aa66a View commit details
    Browse the repository at this point in the history
  2. add more logging

    2over12 committed Jan 10, 2023
    Configuration menu
    Copy the full SHA
    adb25be View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2023

  1. Configuration menu
    Copy the full SHA
    460e7c0 View commit details
    Browse the repository at this point in the history
  2. temporary no alias

    2over12 committed Jan 11, 2023
    Configuration menu
    Copy the full SHA
    637ccfd View commit details
    Browse the repository at this point in the history

Commits on Jan 12, 2023

  1. Configuration menu
    Copy the full SHA
    45d919e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0648c6f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c1bda73 View commit details
    Browse the repository at this point in the history
  4. Revert "Don't run the first set of function passes again"

    This reverts commit 0648c6f.
    2over12 committed Jan 12, 2023
    Configuration menu
    Copy the full SHA
    ca29ee6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    06eaf86 View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2023

  1. Fix CI Build (#343)

    * switch to rustup
    
    * add cargo path
    
    * fix typo
    
    * switch remill submod
    
    * fix pass tests
    
    * use gh action
    
    * only warn when missing reg
    
    * allow for missing registers in affine eqs
    
    * log as error
    
    * Fix errors when decoding opaque pointer specs
    
    * Fix macos build
    
    * more robustness
    
    * add pointer displacements
    
    * hacky solution for dynamic use of stack
    
    * actually do the replacement when cast to int
    
    * get max stack depth from ghidra
    
    * fix assert to allow for max depth
    
    * fix insert point for casts
    
    * bump to remill version that allows additional parameters by default
    
    * escape anvill_sp if a stack reference isnt recoverable
    
    ---------
    
    Co-authored-by: Francesco Bertolaccini <[email protected]>
    2over12 and frabert authored Jan 30, 2023
    Configuration menu
    Copy the full SHA
    58224b7 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2023

  1. Reference fixes (#344)

    * add block method to get func addr
    
    * pass initialized program counter to lifted function
    
    * fix long standing bug
    
    * use arrayref instead
    
    * skip unsized types
    2over12 authored Feb 2, 2023
    Configuration menu
    Copy the full SHA
    ab8c130 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2023

  1. PowerPC Support (#340)

    * PowerPC Support
    
    * Add PowerPC architecture to Protobuf specification
    
    * Pin Remill submodule to PPC branch
    
    * Fix inconsistency with mismatching address and PC reg size
    
    * Add PPC case to util functions
    
    * More address size fixes
    
    * Another address type fix
    
    * Log decoding error message
    
    * bump remill
    
    * bump cxx-common, drop llvm 14, bump mac runner
    
    * Bump Remill
    
    * Use `auto` where appropriate
    
    Co-authored-by: lkorenc <[email protected]>
    
    * Remove unused `injected_sret`
    
    * Use type aliases for function types
    
    * update deprecated CI
    
    * remove binja from ci
    
    * update path in script
    
    * lifting tools updates
    
    * update ignore list
    
    * run on large runner
    
    * update gh actions
    
    * Revert "update path in script"
    
    This reverts commit b51e676.
    
    * Revert "lifting tools updates"
    
    This reverts commit 4205460.
    
    * ABI fixes and comments
    
    * Bump Remill
    
    * Rename since EABI is based off SysV
    
    * Pin Remill to master
    
    * ignore go tests
    
    * upload error logs on CI failure
    
    * tar + compress logs first
    
    * enable globbing
    
    * fix shell syntax
    
    * reduce cores so build is less likely to race
    
    * decouple requirements from matrix name
    
    * bump lifting-tools-ci
    
    * remove ignore for ppc
    
    * fix missing comma
    
    * add language overrides
    
    * ignore hidden files
    
    ---------
    
    Co-authored-by: William Tan <[email protected]>
    Co-authored-by: lkorenc <[email protected]>
    Co-authored-by: 2over12 <[email protected]>
    4 people authored Feb 6, 2023
    Configuration menu
    Copy the full SHA
    02c8766 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2023

  1. Configuration menu
    Copy the full SHA
    69e79b9 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2023

  1. Update CI (#345)

    * update path in script
    
    * update ignore list
    
    * run on large runner
    
    * Remove `LLVM_VERSION` compatibility checks for LLVM < 15
    
    * Remove references to LLVM 14 in README and scripts
    
    * update macos version in matrix
    
    * Revert "update macos version in matrix"
    
    This reverts commit a19dd67.
    
    * bump anvill ci tools, add languageid overrides
    
    * handle created block with no terminator
    
    * add error for undecodeable instructions
    
    * bump java version
    
    * upload error logs on CI failure
    
    * tar + compress logs first
    
    * enable all ppc binaries except for challenge 10
    
    * bump remill to fix infinite loop
    
    * more aggressively fix up terminators
    
    * prevent underflow and add parameter offset
    
    * handle cdi bugs by assuming the max depth is the stack depth
    
    * bump testing tool
    
    ---------
    
    Co-authored-by: Alex Cameron <[email protected]>
    Co-authored-by: 2over12 <[email protected]>
    3 people authored Feb 13, 2023
    Configuration menu
    Copy the full SHA
    491541b View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2023

  1. Configuration menu
    Copy the full SHA
    2b466fd View commit details
    Browse the repository at this point in the history
  2. Add global register support (#351)

    * implement consuming global register value information from spec
    
    * add flag to enable llvm debug output
    
    * fix global lifting
    
    * clang format
    
    * remove extra ->dump
    
    * remove unused typedef
    
    * use emplace + move instead of insert
    
    ---------
    
    Co-authored-by: 2over12 <[email protected]>
    Ninja3047 and 2over12 authored Feb 16, 2023
    Configuration menu
    Copy the full SHA
    4a95869 View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2023

  1. Respect taint pc flag when lifting constant symvals (#355)

    * update format
    
    * adapt types
    2over12 authored Feb 21, 2023
    Configuration menu
    Copy the full SHA
    7d84a1c View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2023

  1. Adds a control flow simplification pass to support idiomatic block go…

    …tos (#354)
    
    * implement straightforward case
    
    * fix trivial case
    
    * add comment
    
    * add conditional branch
    
    * add optional remove next pc
    
    * fix header
    
    * add decompile flag for remove next pc
    2over12 authored Feb 22, 2023
    Configuration menu
    Copy the full SHA
    6493170 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2023

  1. Rework load lifted value and store native to operate over composite l…

    …ow level storage (#356)
    
    * hacky compiles
    
    * links
    
    * casts
    
    * first kinda working version
    
    * keep around entities
    
    * dont try to lift null return
    
    * add check
    
    * remove spurious check
    
    * bump remill
    
    * dont let passbuilder use default lib info
    2over12 authored Feb 24, 2023
    Configuration menu
    Copy the full SHA
    7197615 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    59d317e View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2023

  1. Configuration menu
    Copy the full SHA
    8c27f41 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2023

  1. simple inlining

    2over12 committed Mar 15, 2023
    Configuration menu
    Copy the full SHA
    23a2ee3 View commit details
    Browse the repository at this point in the history
  2. add inline option

    2over12 committed Mar 15, 2023
    Configuration menu
    Copy the full SHA
    dd89a23 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2023

  1. add namespace to pass name

    Ninja3047 authored and 2over12 committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    b7dfc5b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e844855 View commit details
    Browse the repository at this point in the history
  3. make increment consistent with llvm

    Ninja3047 authored and 2over12 committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    29fdbbd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7d68247 View commit details
    Browse the repository at this point in the history
  5. convert to module pass

    Ninja3047 authored and 2over12 committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    4a229d9 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bd64694 View commit details
    Browse the repository at this point in the history
  7. simplify convoluted logic

    Ninja3047 authored and 2over12 committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    3ebbffb View commit details
    Browse the repository at this point in the history
  8. accumlate total for all modules

    Ninja3047 authored and 2over12 committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    233cbd7 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2023

  1. Adds back splitting the stack around the return address preventing ex…

    …posing the return address pointer (#365)
    
    * split stack reenabled
    
    * fix return replacement for void returns
    
    * add no return to call
    
    * Remove unneded include
    
    * clone self...
    
    ---------
    
    Co-authored-by: Francesco Bertolaccini <[email protected]>
    2over12 and frabert authored Mar 27, 2023
    Configuration menu
    Copy the full SHA
    512d0c2 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2023

  1. Tail call control flow (#364)

    * Always pass all stack vars and regs to bb funcs
    
    * Read used registers from spec
    
    * Port commit from old PR
    
    * Fix ownership bug
    
    * Tail call by passing all the arguments
    
    * Fix compile error
    
    * Fix empty basic block function declarations
    
    * Use locally allocated storage for next_pc
    
    * Optimize after removing intrinsics to improve control flow
    
    * Lift function returns to native returns
    
    * look at all in scope vars at once
    
    * filter through all variables
    
    * only recover references for variables in scope in the block
    
    * add back permissiveness related to lives
    
    * Remove unused parameter
    
    * Remove unused passes
    
    * Use named constants for argument indices
    
    * Bump anvill to C++20
    
    * Use default comparison when searching parameters
    
    * create empty decls as needed for bad edges
    
    * remove stale test script
    
    * Don't share basic blocks between functions
    
    * Relax type spec comparison
    
    ---------
    
    Co-authored-by: 2over12 <[email protected]>
    frabert and 2over12 authored Mar 29, 2023
    Configuration menu
    Copy the full SHA
    df58f86 View commit details
    Browse the repository at this point in the history
  2. Ian/fix hash for typespecs (#367)

    * add hash defs
    
    * fix more pointer hashes
    2over12 authored Mar 29, 2023
    Configuration menu
    Copy the full SHA
    d6605c7 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2023

  1. Configuration menu
    Copy the full SHA
    9fad6d2 View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2023

  1. Keep memory consistent through basic block calls and returns (#370)

    * use memory pointer for calling sub basic blocks
    
    * more complete mem passing
    2over12 authored Apr 7, 2023
    Configuration menu
    Copy the full SHA
    a52d812 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2023

  1. Configuration menu
    Copy the full SHA
    6a68180 View commit details
    Browse the repository at this point in the history
  2. Update remill for anvill (#371)

    * bump remill
    
    * bump remill
    
    * try bump ci to 22.04
    
    * bump dockerfile
    
    * bump cxx common
    
    * install venv
    2over12 authored May 4, 2023
    Configuration menu
    Copy the full SHA
    5c16d8e View commit details
    Browse the repository at this point in the history
  3. Swap AArch64 to use Sleigh Semantics (#377)

    * bump remill
    
    * bump remill
    
    * swap to sleigh for aarch64
    2over12 authored May 4, 2023
    Configuration menu
    Copy the full SHA
    1364c44 View commit details
    Browse the repository at this point in the history
  4. Split symvals into equalities at entry and exit (#375)

    * Split symvals into equalities at entry and exit
    
    * Ignore assignments active at entry and exit
    
    * Factor out some code
    
    * More refactoring
    
    * Only pack live values at exit if not constant
    
    ---------
    
    Co-authored-by: 2over12 <[email protected]>
    frabert and 2over12 authored May 4, 2023
    Configuration menu
    Copy the full SHA
    9f5518c View commit details
    Browse the repository at this point in the history

Commits on May 10, 2023

  1. bump remill again

    2over12 committed May 10, 2023
    Configuration menu
    Copy the full SHA
    046702e View commit details
    Browse the repository at this point in the history
  2. Performance fixes (#348)

    * Performance fixes
    
    * Begin verifying modules move the DSE pass again
    
    * bump remill
    
    * Fix Remill submodule
    
    * Only verify LLVM functions and modules in debug mode
    
    ---------
    
    Co-authored-by: 2over12 <[email protected]>
    tetsuo-cpp and 2over12 authored May 10, 2023
    Configuration menu
    Copy the full SHA
    5741f82 View commit details
    Browse the repository at this point in the history

Commits on May 19, 2023

  1. Get Anvill building with LLVM 16 (#376)

    * Get Anvill building with LLVM 16
    
    * Update scripts and CI to use LLVM 16
    
    * Bump cxx-common versions
    
    * Fix scripts to work with new `cxx-common`
    
    * Put code to add SROA pass behind a helper
    
    * Bump Remill
    
    * Bump Remill now that LLVM 16 support has been merged into `master`
    
    * Bump `cxx-common` to v0.3.2
    
    * Remove LLVM 15 support
    tetsuo-cpp authored May 19, 2023
    Configuration menu
    Copy the full SHA
    9426467 View commit details
    Browse the repository at this point in the history
  2. Pointer lifter (#373)

    * Set metadata for live values
    
    * Add type decoding from metadata
    frabert authored May 19, 2023
    Configuration menu
    Copy the full SHA
    8ebf563 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2023

  1. Add image base spec (#379)

    * add image base to spec
    
    * add image name to spec
    
    * add image base/name to anvill spec
    
    * use std::uint64_t
    
    * Use const ref where appropriate
    
    * fix dcheck
    
    * maintain backwards compat
    
    ---------
    
    Co-authored-by: Alex Cameron <[email protected]>
    Co-authored-by: 2over12 <[email protected]>
    3 people authored Jun 1, 2023
    Configuration menu
    Copy the full SHA
    09cef2b View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Configuration menu
    Copy the full SHA
    ba87273 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Configuration menu
    Copy the full SHA
    2772efc View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Add required_globals to spec (#386)

    * Add `required_globals` to spec
    
    * Make `required_globals` a set
    frabert authored Jul 10, 2023
    Configuration menu
    Copy the full SHA
    0a9dd3f View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2023

  1. Configuration menu
    Copy the full SHA
    9f3e123 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2023

  1. Debug utils (#369)

    * add flags to print llvm ir before/after each llvm pass
    
    * set llvm debug flag earlier
    
    * python script to print diff between llvm opts
    
    * add note on usage
    
    * add comment
    
    * use new pass manager, otherwise debug diff won't work
    
    * don't enable debug logging unless a debug flag is specified
    
    * clang format
    Ninja3047 authored Aug 2, 2023
    Configuration menu
    Copy the full SHA
    465ecdc View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2023

  1. Configuration menu
    Copy the full SHA
    f7f498d View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2023

  1. Configuration menu
    Copy the full SHA
    66bb39d View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2023

  1. Ian/allow for typehints in spec (#390)

    * add support for type hints after instructions
    
    * fix annotations to use intrinsics
    
    * remove spurious header
    
    * remove unrequired import
    
    * remove unused import
    2over12 authored Sep 18, 2023
    Configuration menu
    Copy the full SHA
    e04ff9d View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. Revert "Debug utils (#369)" (#391)

    This reverts commit 465ecdc.
    tetsuo-cpp authored Sep 21, 2023
    Configuration menu
    Copy the full SHA
    4413bfb View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2023

  1. Bump lifting-tools-ci (#394)

    tetsuo-cpp authored Sep 25, 2023
    Configuration menu
    Copy the full SHA
    875fcd5 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2023

  1. Configuration menu
    Copy the full SHA
    c3f8be4 View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2023

  1. Callsite override (#398)

    * implement call site override
    
    * simplify override logic
    
    * address c++ nits
    
    * add missing const
    
    * a bb context should always exist given a valid bb address
    Ninja3047 authored Oct 4, 2023
    Configuration menu
    Copy the full SHA
    9722e02 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2023

  1. Configuration menu
    Copy the full SHA
    3a506a5 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2023

  1. Configuration menu
    Copy the full SHA
    91c7162 View commit details
    Browse the repository at this point in the history
  2. UID codeblocks refactor (#396)

    * Use UID for codeblocks
    
    * Fix BasicBlockContext lookups
    
    Fixes the missing literal_struct_2 issue
    
    * Test CI
    
    * Strong Uid typing
    
    * Cleanup and support parsing Json spec
    
    * Revert "Test CI"
    
    This reverts commit 4cfe2d9.
    
    * Remove basic block address metadata
    
    Look up address using UID
    
    * Fix review comments and add entry_uid to function spec
    
    * Keep track of UID to CodeBlock mapping
    
    Useful for getting CodeBlock function addresses without a tracked
    function
    
    * point to compatible irene
    
    ---------
    
    Co-authored-by: 2over12 <[email protected]>
    ekilmer and 2over12 authored Oct 12, 2023
    Configuration menu
    Copy the full SHA
    610205a View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2023

  1. llvm 17 fixes (#395)

    * llvm 17 fixes
    
    * bump remill
    
    * bump llvm, cxx common, xcode, macos, remill
    
    * bump matrix
    
    * bump remill, use irene main
    
    * fix creffolder and dont run on module in inliner
    2over12 authored Oct 13, 2023
    Configuration menu
    Copy the full SHA
    befde9c View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2023

  1. Fix accesses to globals that occur in the middle of the global (#399)

    * devectorize
    
    * shift indices into second vec
    
    * make big endian work
    
    * add some sort of actual test
    
    * handle access in middle
    
    * fix dl
    
    * dont go off end of iter
    
    * null check on adapt
    
    * get datalayout from arch
    
    * bump ci
    
    * dlog and comment
    2over12 authored Oct 24, 2023
    Configuration menu
    Copy the full SHA
    cadafba View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2023

  1. Configuration menu
    Copy the full SHA
    0b5b329 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2023

  1. Sleigh sparc (#387)

    * update link to empirehacking slack (#383)
    
    * use sparc sleigh
    
    * update submodule
    
    * bump remill
    
    * bump remill
    
    * update remill
    
    * pass build flags to remill for debug symbols
    
    * update remill
    
    * add noreturn flag
    
    * correctly handle noreturn pt1
    
    * fix return value to also take into account noreturn
    
    * bump remill
    
    * bump remill
    
    * update remill
    
    * bump remill
    
    * bump remill
    
    * bump remill
    
    * bump remill
    
    * bump remill
    
    * adapt type for stack offsets
    
    * use specified register directly
    
    * bump remill
    
    * bump remill
    
    ---------
    
    Co-authored-by: James Olds <[email protected]>
    Co-authored-by: 2over12 <[email protected]>
    3 people authored Nov 10, 2023
    Configuration menu
    Copy the full SHA
    9cfd0d6 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2023

  1. Fix infinite loop with self-referential global struct (#403)

    The issue that this change solves can be repeated with the following program
    
    ```c
    // gcc -O0 -g -gdwarf-4 self_refer.c -o self_refer
    
    #include <stdio.h>
    
    struct foo {
      int num;
      struct foo	*foo_next;
    };
    
    static struct foo foo0 = {
      .num = 3,
      .foo_next = &foo0
    };
    
    int main() {
      printf("Num: %d\n", foo0.foo_next->num);
    }
    ```
    ekilmer authored Nov 17, 2023
    Configuration menu
    Copy the full SHA
    d569305 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2023

  1. Bump lifting-tools-ci to use clang-14 for SPARC (#404)

    * allow for manual workflow trigger
    
    * bump lifting-tools-ci for sparc binaries + clang14
    
    * bump for sparc
    Ninja3047 authored Dec 5, 2023
    Configuration menu
    Copy the full SHA
    e8ca92c View commit details
    Browse the repository at this point in the history
  2. Basic pointer use heuristic (#402)

    * basic pointer fix
    
    * add binary addrs
    
    * spurious header
    
    * add type names
    
    * named types
    
    * default for null ty
    
    * fix typedef
    2over12 authored Dec 5, 2023
    Configuration menu
    Copy the full SHA
    70209a8 View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2024

  1. bump remill and fix initial state pc (#407)

    * bump remill and fix initial state pc
    
    * bump remill
    
    * don't install python3 bindings in CI
    
    * dont set body twice if struct named twice
    
    * completely remove python
    
    * try to be robust to overlapping vars
    
    ---------
    
    Co-authored-by: William Tan <[email protected]>
    2over12 and Ninja3047 authored Feb 28, 2024
    Configuration menu
    Copy the full SHA
    30969fb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b47f275 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2024

  1. Invalid func fix pt2 (#409)

    * return decl instead of nullptr
    
    * return error/null instead of decl
    Ninja3047 authored Feb 29, 2024
    Configuration menu
    Copy the full SHA
    52f9638 View commit details
    Browse the repository at this point in the history