Quickstart

Eptalights code analysis technology operates in three forms:

  1. Extract bytecode or IR data from source code.

  2. Convert the extracted bytecode/IR into clean, Pythonic instructions using our cloud-based lifter.

  3. Download and interact with the database locally using our Python Library.

If you already have the database and configuration, you can proceed. However, if this is new to you, you can find more details above. Visit Getting Started.

If you want to quickly try it out, you can use our sample project, which includes preloaded database files, available here: Example Projects.

1. Setting up Locally

# setup python environment
python -m venv venv
. venv/bin/activate

# install eptalights-code-python library
pip install git+https://github.com/eptalights/eptalights-code-python.git

# change directory where `eptalights_code.db` and `eptalights_code.toml` are located
# or update the `eptalights_code.toml` to point to where these files reside.
cd /path/to/project

# go to step 2

2. Testing our Local Setup

You can either create a python test file in the directory or enter python REPL.

import eptalights_code
api = eptalights_code.LocalAPI("./eptalights_code.toml")

for fn in api.search_functions():
    print(fn.name)

# output
"""
init_rootfs
rootfs_init_fs_context
readonly
root_dev_setup
root_delay_setup
mount_nodev_root
do_mount_root
fs_names_setup
rootwait_timeout_setup
prepare_namespace
no_initrd
early_initrd
early_initrdmem
initrd_load
init_linuxrc
kernel_do_mounts_initrd_sysctls_init
...
"""

Visit other pages to learn how to navigate through functions, call sites, CFGs, variables, and more.