Skip to content

Commit

Permalink
Rename NaHCO3 to teapot
Browse files Browse the repository at this point in the history
  • Loading branch information
lin-toto committed Oct 31, 2024
1 parent 2817b93 commit d265242
Show file tree
Hide file tree
Showing 54 changed files with 99 additions and 99 deletions.
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[submodule "libcheckpoint_x64"]
path = libcheckpoint_x64
url = https://github.com/lin-toto/libcheckpoint_x64
url = https://github.com/lin-toto/teapot-libcheckpoint_x64
[submodule "honggfuzz"]
path = honggfuzz
url = https://github.com/lin-toto/NaHCO3-honggfuzz
url = https://github.com/lin-toto/teapot-honggfuzz
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ RUN cd /tmp/teapot/honggfuzz && make && make install && \

RUN rm -rf /tmp/teapot

RUN mkdir /workdir
WORKDIR /workdir
RUN mkdir /workspace
WORKDIR /workspace
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ As this repository was anonymized, the `libcheckpoint_x64` submodule can be acce

## Notes on naming

Teapot was codenamed NaHCO3 in its development.
Teapot was codenamed teapot in its development.
We are currently in the process of migrating the code to match the names described in the paper.

## Requirements
Expand Down Expand Up @@ -80,9 +80,9 @@ export ASAN_OPTIONS=detect_leaks=0:verify_asan_link_order=false
Alternatively, the program can be tested with a fuzzer.
```shell
$ ./a.inst input.txt
[NaHCO3], Gadget Type, Gadget Address, Mem Access Address, Tag, Instruction Counter, Checkpoint Addresses
[NaHCO3], 41 KASPER_MDS, 0x413a43, 0x603000000068, 0x207bc601, 149, 0x41381c, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[NaHCO3], 42 KASPER_CACHE, 0x413b2b, 0x1f81b610, 0x11, 149, 0x41381c, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[NaHCO3], 41 KASPER_MDS, 0x41416f, 0x603000000068, 0x207bc601, 153, 0x413f4d, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[NaHCO3], 42 KASPER_CACHE, 0x414257, 0x1f81b610, 0x11, 153, 0x413f4d, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[teapot], Gadget Type, Gadget Address, Mem Access Address, Tag, Instruction Counter, Checkpoint Addresses
[teapot], 41 KASPER_MDS, 0x413a43, 0x603000000068, 0x207bc601, 149, 0x41381c, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[teapot], 42 KASPER_CACHE, 0x413b2b, 0x1f81b610, 0x11, 149, 0x41381c, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[teapot], 41 KASPER_MDS, 0x41416f, 0x603000000068, 0x207bc601, 153, 0x413f4d, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
[teapot], 42 KASPER_CACHE, 0x414257, 0x1f81b610, 0x11, 153, 0x413f4d, 0x409c56, 0x40b093, 0x409e54, 0x412c48, 0x401566,
```
2 changes: 1 addition & 1 deletion honggfuzz
2 changes: 1 addition & 1 deletion libcheckpoint_x64
12 changes: 6 additions & 6 deletions scripts/fix_asm.sed
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
s/^\.section \.NaHCO3_transient/&, "ax"/
s/^\.section \.NaHCO3_trampolines/&, "ax"/
s/^\.section \.NaHCO3_guards/&, "aw"/
s/^\.section \.NaHCO3_branch_counters/&, "aw"/
/^__guard_start__NaHCO3__:/i .globl __guard_start__NaHCO3__
/^__guard_end__NaHCO3__:/i .globl __guard_end__NaHCO3__
s/^\.section \.teapot_transient/&, "ax"/
s/^\.section \.teapot_trampolines/&, "ax"/
s/^\.section \.teapot_guards/&, "aw"/
s/^\.section \.teapot_branch_counters/&, "aw"/
/^__guard_start__teapot__:/i .globl __guard_start__teapot__
/^__guard_end__teapot__:/i .globl __guard_end__teapot__
s/^\.symver/#\.symver/
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
platforms='any',
install_requires=REQUIREMENTS,
entry_points={
'console_scripts': ['teapot=NaHCO3.cmdline:main'],
'console_scripts': ['teapot=teapot.cmdline:main'],
}
)
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion NaHCO3/abi/x86_64.py → teapot/abi/x86_64.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from gtirb_rewriting.abi import _PatchRegisterAllocation
from gtirb_rewriting.assembly import Constraints, Register, _AsmSnippet

from NaHCO3.config import SCRATCHPAD_SIZE
from teapot.config import SCRATCHPAD_SIZE

from typing import Tuple, Iterable, Optional, List, Set
import copy
Expand Down
18 changes: 9 additions & 9 deletions NaHCO3/cmdline.py → teapot/cmdline.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
import pprint
import sys

from NaHCO3.abi.x86_64 import _X86_64_ELF
from teapot.abi.x86_64 import _X86_64_ELF

from NaHCO3.preprocess.copy_section import copy_section
from NaHCO3.utils.reg_analysis import LiveRegisterManagerWrapper
from NaHCO3.passes import *
from NaHCO3.config import *
from teapot.preprocess.copy_section import copy_section
from teapot.utils.reg_analysis import LiveRegisterManagerWrapper
from teapot.passes import *
from teapot.config import *


def run_teapot(ir: gtirb.IR):
Expand All @@ -27,19 +27,19 @@ def run_teapot(ir: gtirb.IR):
_ABIS[(gtirb.Module.ISA.X64, gtirb.Module.FileFormat.ELF)] = my_x64_elf_abi

transient_section, transient_section_start_symbol, transient_section_end_symbol, text_transient_mapping = (
copy_section(text_section, ".NaHCO3_transient"))
copy_section(text_section, ".teapot_transient"))

reg_manager = LiveRegisterManagerWrapper(module, my_x64_elf_abi, decoder,
text_transient_mapping=text_transient_mapping)
trampoline_section = gtirb.Section(name=".NaHCO3_trampolines", flags=transient_section.flags, module=module)
trampoline_section = gtirb.Section(name=".teapot_trampolines", flags=transient_section.flags, module=module)
trampoline_byte_interval = gtirb.ByteInterval(section=trampoline_section)

guard_section = gtirb.Section(name=".NaHCO3_guards",
guard_section = gtirb.Section(name=".teapot_guards",
flags={gtirb.Section.Flag.Readable, gtirb.Section.Flag.Writable},
module=module)
guard_byte_interval = gtirb.ByteInterval(section=guard_section)

branch_counter_section = gtirb.Section(name=".NaHCO3_branch_counters",
branch_counter_section = gtirb.Section(name=".teapot_branch_counters",
flags={gtirb.Section.Flag.Readable, gtirb.Section.Flag.Writable},
module=module)
branch_counter_byte_interval = gtirb.ByteInterval(section=branch_counter_section)
Expand Down
4 changes: 2 additions & 2 deletions NaHCO3/config.py → teapot/config.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SYMBOL_SUFFIX = "__NaHCO3__"
SYMBOL_SUFFIX = "__teapot__"

ROB_LEN = 250
SCRATCHPAD_SIZE = 1048576
Expand All @@ -13,7 +13,7 @@
"dummy",
"frame_dummy",
"__libc_csu_init",
"NaHCO3_setup",
"teapot_setup",
"__teapot_specvariant_setup",
]

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
from typing import List, Set
import itertools

from NaHCO3.config import BLACKLIST_FUNCTION_NAMES, ASAN_SHADOW_OFFSET
from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.utils.misc import distinguish_edges
from NaHCO3.patch_helpers import memlog_snippet
from teapot.config import BLACKLIST_FUNCTION_NAMES, ASAN_SHADOW_OFFSET
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.utils.misc import distinguish_edges
from teapot.patch_helpers import memlog_snippet


class AsanStackPass(VisitorPassMixin, RegInstAwarePassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
from capstone_gt.x86 import X86_REG_EFLAGS
from typing import List, Set, Optional

from NaHCO3.config import BLACKLIST_FUNCTION_NAMES, SYMBOL_SUFFIX
from NaHCO3.patch_helpers import dift_add_reg_tag_snippet
from NaHCO3.utils.dift import reg_to_dift_reg_id
from NaHCO3.utils.rewriting import mem_access_to_symbolic_str, mem_operand_is_write_capstone_workaround
from NaHCO3.passes.mixins import InstVisitorPassMixin
from NaHCO3.patch_helpers import conditional_patch_wrapper, memlog_snippet
from teapot.config import BLACKLIST_FUNCTION_NAMES, SYMBOL_SUFFIX
from teapot.patch_helpers import dift_add_reg_tag_snippet
from teapot.utils.dift import reg_to_dift_reg_id
from teapot.utils.rewriting import mem_access_to_symbolic_str, mem_operand_is_write_capstone_workaround
from teapot.passes.mixins import InstVisitorPassMixin
from teapot.patch_helpers import conditional_patch_wrapper, memlog_snippet


class DiftPropagationPass(InstVisitorPassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
from uuid import UUID
import functools

from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.utils.misc import distinguish_edges, generate_distinct_label_name
from NaHCO3.config import SYMBOL_SUFFIX, BLACKLIST_FUNCTION_NAMES
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.utils.misc import distinguish_edges, generate_distinct_label_name
from teapot.config import SYMBOL_SUFFIX, BLACKLIST_FUNCTION_NAMES


class InsertCheckpointsPass(VisitorPassMixin, RegInstAwarePassMixin):
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from typing import List, Set

from .reg_inst_aware_pass_mixin import RegInstAwarePassMixin
from NaHCO3.utils.progress import print_progress_bar
from teapot.utils.progress import print_progress_bar


class VisitorPassMixin(Pass):
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
from uuid import UUID
from typing import Optional

from NaHCO3.passes.mixins import VisitorPassMixin
from NaHCO3.datacls.copied_section_mapping import CopiedSectionMapping
from NaHCO3.utils.misc import distinguish_edges, generate_distinct_label_name
from teapot.passes.mixins import VisitorPassMixin
from teapot.datacls.copied_section_mapping import CopiedSectionMapping
from teapot.utils.misc import distinguish_edges, generate_distinct_label_name


class CreateTrampolinesPass(VisitorPassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
from typing import List, Set, Optional
from dataclasses import dataclass

from NaHCO3.config import BLACKLIST_FUNCTION_NAMES, DIFT_IGNORE_LIST
from NaHCO3.passes.mixins import VisitorPassMixin
from NaHCO3.utils.misc import distinguish_edges
from teapot.config import BLACKLIST_FUNCTION_NAMES, DIFT_IGNORE_LIST
from teapot.passes.mixins import VisitorPassMixin
from teapot.utils.misc import distinguish_edges


class DiftExtCallPass(VisitorPassMixin):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import gtirb
from gtirb_rewriting import Pass, RewritingContext

from NaHCO3.config import CHECKPOINT_LIB_SYMBOLS
from teapot.config import CHECKPOINT_LIB_SYMBOLS


class ImportSymbolsPass(Pass):
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
import re
import functools

from NaHCO3.config import BLACKLIST_FUNCTION_NAMES, SYMBOL_SUFFIX, SCRATCHPAD_SIZE
from NaHCO3.patch_helpers import dift_add_reg_tag_snippet
from NaHCO3.utils.dift import reg_to_dift_reg_id
from NaHCO3.utils.rewriting import mem_access_to_symbolic_str
from teapot.config import BLACKLIST_FUNCTION_NAMES, SYMBOL_SUFFIX, SCRATCHPAD_SIZE
from teapot.patch_helpers import dift_add_reg_tag_snippet
from teapot.utils.dift import reg_to_dift_reg_id
from teapot.utils.rewriting import mem_access_to_symbolic_str

from NaHCO3.passes import DiftPropagationPass
from teapot.passes import DiftPropagationPass


class TextDiftPropagationLLVMPass(DiftPropagationPass):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
from typing import List
import functools

from NaHCO3.config import BLACKLIST_FUNCTION_NAMES
from NaHCO3.passes.mixins import VisitorPassMixin
from NaHCO3.datacls.copied_section_mapping import CopiedSectionMapping
from NaHCO3.utils.misc import distinguish_edges, generate_distinct_label_name
from teapot.config import BLACKLIST_FUNCTION_NAMES
from teapot.passes.mixins import VisitorPassMixin
from teapot.datacls.copied_section_mapping import CopiedSectionMapping
from teapot.utils.misc import distinguish_edges, generate_distinct_label_name


class TextIndirectBranchTransformPass(VisitorPassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
from uuid import UUID
import functools

from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.utils.misc import distinguish_edges, generate_distinct_label_name
from NaHCO3.config import SYMBOL_SUFFIX, BLACKLIST_FUNCTION_NAMES
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.utils.misc import distinguish_edges, generate_distinct_label_name
from teapot.config import SYMBOL_SUFFIX, BLACKLIST_FUNCTION_NAMES


class TextInitializeLibraryPass(VisitorPassMixin):
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
from typing import List, Set, Optional
import itertools

from NaHCO3.config import SYMBOL_SUFFIX, TAG_ATTACKER, TAG_ATTACKER_INDIRECT, TAG_SECRET, TAG_SECRET_INDIRECT
from NaHCO3.passes.mixins import InstVisitorPassMixin
from NaHCO3.patch_helpers import (asan_check_snippet, dift_add_reg_tag_snippet, conditional_patch_wrapper,
from teapot.config import SYMBOL_SUFFIX, TAG_ATTACKER, TAG_ATTACKER_INDIRECT, TAG_SECRET, TAG_SECRET_INDIRECT
from teapot.passes.mixins import InstVisitorPassMixin
from teapot.patch_helpers import (asan_check_snippet, dift_add_reg_tag_snippet, conditional_patch_wrapper,
report_gadget_snippet)
from NaHCO3.utils.rewriting import mem_access_to_symbolic_str, get_cmov_conditional
from NaHCO3.utils.dift import reg_to_dift_reg_id
from teapot.utils.rewriting import mem_access_to_symbolic_str, get_cmov_conditional
from teapot.utils.dift import reg_to_dift_reg_id


class TransientMemOperandPoliciesPass(InstVisitorPassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
from typing import List, Set, Optional
import itertools

from NaHCO3.config import SYMBOL_SUFFIX, TAG_ATTACKER, TAG_SECRET, TAG_SECRET_INDIRECT
from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.patch_helpers import (asan_check_snippet, dift_add_reg_tag_snippet, conditional_patch_wrapper,
from teapot.config import SYMBOL_SUFFIX, TAG_ATTACKER, TAG_SECRET, TAG_SECRET_INDIRECT
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.patch_helpers import (asan_check_snippet, dift_add_reg_tag_snippet, conditional_patch_wrapper,
report_gadget_snippet)
from NaHCO3.utils.misc import distinguish_edges
from NaHCO3.utils.rewriting import mem_access_to_symbolic_str, get_cmov_conditional
from NaHCO3.utils.dift import reg_to_dift_reg_id
from teapot.utils.misc import distinguish_edges
from teapot.utils.rewriting import mem_access_to_symbolic_str, get_cmov_conditional
from teapot.utils.dift import reg_to_dift_reg_id


class TransientPortContentionPolicyPass(VisitorPassMixin, RegInstAwarePassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
from capstone_gt import CsInsn, CS_OP_MEM
from gtirb_live_register_analysis import LiveRegisterManager

from NaHCO3.preprocess.create_guards import create_guards
from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.utils.misc import distinguish_edges
from NaHCO3.config import SYMBOL_SUFFIX, SCRATCHPAD_SIZE, BLACKLIST_FUNCTION_NAMES
from teapot.preprocess.create_guards import create_guards
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.utils.misc import distinguish_edges
from teapot.config import SYMBOL_SUFFIX, SCRATCHPAD_SIZE, BLACKLIST_FUNCTION_NAMES


class TransientCoveragePass(VisitorPassMixin, RegInstAwarePassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
from gtirb_capstone.x86 import mem_access_to_str, operand_symbolic_expression
from capstone_gt import CsInsn, CS_OP_MEM
from gtirb_live_register_analysis import LiveRegisterManager
from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.datacls.copied_section_mapping import CopiedSectionMapping
from NaHCO3.utils.misc import distinguish_edges
from NaHCO3.config import SYMBOL_SUFFIX
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.datacls.copied_section_mapping import CopiedSectionMapping
from teapot.utils.misc import distinguish_edges
from teapot.config import SYMBOL_SUFFIX


class TransientIndirectBranchCheckDestPass(VisitorPassMixin, RegInstAwarePassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
import functools
import itertools

from NaHCO3.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from NaHCO3.utils.misc import distinguish_edges
from NaHCO3.config import SYMBOL_SUFFIX, ROB_LEN
from teapot.passes.mixins import VisitorPassMixin, RegInstAwarePassMixin
from teapot.utils.misc import distinguish_edges
from teapot.config import SYMBOL_SUFFIX, ROB_LEN


class TransientInsertRestorePointsPass(VisitorPassMixin, RegInstAwarePassMixin):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
from typing import List, Set, Optional
import itertools

from NaHCO3.config import ASAN_SHADOW_OFFSET, SYMBOL_SUFFIX
from NaHCO3.passes.mixins import InstVisitorPassMixin
from NaHCO3.patch_helpers import asan_check_snippet, memlog_snippet, conditional_patch_wrapper
from NaHCO3.utils.rewriting import (mem_access_to_symbolic_str, get_cmov_conditional,
from teapot.config import ASAN_SHADOW_OFFSET, SYMBOL_SUFFIX
from teapot.passes.mixins import InstVisitorPassMixin
from teapot.patch_helpers import asan_check_snippet, memlog_snippet, conditional_patch_wrapper
from teapot.utils.rewriting import (mem_access_to_symbolic_str, get_cmov_conditional,
mem_operand_is_write_capstone_workaround)


Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional
from gtirb_rewriting import Register, RewritingContext

from NaHCO3.config import ASAN_SHADOW_OFFSET
from teapot.config import ASAN_SHADOW_OFFSET


def asan_check_snippet(addr_reg: Register, access_size: int, check_ok_label: str, *,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from gtirb_rewriting import Register

from NaHCO3.utils.dift import reg_to_dift_reg_id
from teapot.utils.dift import reg_to_dift_reg_id


def dift_add_reg_tag_snippet(tag_reg: Register, *, reg_add: Register):
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import Optional


from NaHCO3.config import SCRATCHPAD_SIZE
from teapot.config import SCRATCHPAD_SIZE


def report_gadget_snippet(gadget_type: str, *,
Expand Down
Loading

0 comments on commit d265242

Please sign in to comment.