Kaoru Takemure

16 papers C 1Journal 11Unranked 4
YearRankTypeTitle / Venue / Authors
2026 J jnl
IACR Cryptol. ePrint Arch.
Giacomo Borin, Sofía Celi, Rafaël del Pino, Thomas Espitau, Shuichi Katsumata, Guilhem Niot, Thomas Prest, Kaoru Takemure
2025 J jnl
IACR Cryptol. ePrint Arch.
Guilhem Niot, Michael Reichle, Kaoru Takemure
2025 J jnl
J. Cryptol.
Thomas Espitau, Shuichi Katsumata, Kaoru Takemure
2025 conf
CRYPTO (6)
Rafaël del Pino, Shuichi Katsumata, Guilhem Niot, Michael Reichle, Kaoru Takemure
2025 J jnl
IACR Cryptol. ePrint Arch.
Rafaël del Pino, Shuichi Katsumata, Guilhem Niot, Michael Reichle, Kaoru Takemure
2024 conf
CRYPTO (7)
Shuichi Katsumata, Michael Reichle, Kaoru Takemure
2024 J jnl
IACR Cryptol. ePrint Arch.
Shuichi Katsumata, Michael Reichle, Kaoru Takemure
2024 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Kaoru Takemure, Yusuke Sakai, Bagus Santoso, Goichiro Hanaoka, Kazuo Ohta
2024 conf
TCC (3)
Goichiro Hanaoka, Shuichi Katsumata, Kei Kimura, Kaoru Takemure, Shota Yamada
2024 J jnl
IACR Cryptol. ePrint Arch.
Goichiro Hanaoka, Shuichi Katsumata, Kei Kimura, Kaoru Takemure, Shota Yamada
2024 conf
CRYPTO (7)
Thomas Espitau, Shuichi Katsumata, Kaoru Takemure
2024 J jnl
IACR Cryptol. ePrint Arch.
Thomas Espitau, Shuichi Katsumata, Kaoru Takemure
2023 J jnl
IACR Cryptol. ePrint Arch.
Kaoru Takemure, Yusuke Sakai, Bagus Santoso, Goichiro Hanaoka, Kazuo Ohta
2021 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Kaoru Takemure, Yusuke Sakai, Bagus Santoso, Goichiro Hanaoka, Kazuo Ohta
2020 C conf
ProvSec
Kaoru Takemure, Yusuke Sakai, Bagus Santoso, Goichiro Hanaoka, Kazuo Ohta
2020 J jnl
IACR Cryptol. ePrint Arch.
Goichiro Hanaoka, Kazuo Ohta, Yusuke Sakai, Bagus Santoso, Kaoru Takemure, Yunlei Zhao
redb/extractors/decompiler/bninja/analysis/low_level_normalization.py
← Index redb/extractors/decompiler/bninja/analysis/low_level_normalization.py python
from binaryninja import (
    ILRegister, ILRegisterStack, ILFlag,
    ILIntrinsic, ILSemanticFlagGroup,
)

class LowLevelNormalization:
    def __init__(self):
        return

    def _collect_ops(self, il, ops):
        if il is None:
            return
        ops.append(int(il.operation))
        operands = getattr(il, "operands", None)
        if not operands:
            return
        for op in operands:
            if hasattr(op, "operation"):
                self._collect_ops(op, ops)
            elif isinstance(op, (list, tuple)):
                for sub in op:
                    if hasattr(sub, "operation"):
                        self._collect_ops(sub, ops)

    def normalize_instruction_all_levels(self, instr_il):
        ops = []
        self._collect_ops(instr_il, ops)

        return ops

    def _leaf_type(self, val):
        if isinstance(val, ILRegister):
            return "REG"
        if isinstance(val, ILRegisterStack):
            return "REG_STACK"
        if isinstance(val, ILFlag):
            return "FLAG"
        if isinstance(val, ILSemanticFlagGroup):
            return "FLAG_GROUP"
        if isinstance(val, ILIntrinsic):
            return "INTRINSIC"
        if isinstance(val, bool):
            return "BOOL"
        if isinstance(val, int):
            return "CONST"
        return type(val).__name__.upper()

    def _collect(self, il, out):
        if il is None:
            return
        out.append(int(il.operation))
        operands = getattr(il, "operands", None)
        if not operands:
            return
        for op in operands:
            if hasattr(op, "operation"):
                self._collect(op, out)
            elif isinstance(op, (list, tuple)):
                for sub in op:
                    if hasattr(sub, "operation"):
                        self._collect(sub, out)
                    else:
                        out.append(self._leaf_type(sub))
            else:
                out.append(self._leaf_type(op))

    def normalize_instr_with_operands(self, instr_il):
        ops = []
        self._collect(instr_il, ops)
        return ops