Han Lee

11 papers Journal 8Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
J. Enterp. Inf. Manag.
Hsiu-Wen Liu, Han Lee, Chia-Wen Chang
2020 J jnl
Future Gener. Comput. Syst.
Han Lee, Maode Ma
2019 conf
SpaCCS
Han Lee, Maode Ma
2013 J jnl
Data Sci. J.
Kwang-Tsao Shao, Kun-Chi Lai, Jack Yung-Chang Lin, L. S. Chen, H. Y. Li, Cheng-Hsin Hsu, Han Lee, H. W. Hsu, Guan-Shuo Mai
2009 J jnl
IEICE Trans. Commun.
Ho-jin Lee, Jae Moung Kim, Byung-Seub Lee, Han Lee, Jang-Soo Ryoo
2008 J jnl
Commun. ACM
Stephen M. Blackburn, Kathryn S. McKinley, Robin Garner, Chris Hoffmann, Asjad M. Khan, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony L. Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanovic, Thomas VanDrunen, Daniel von Dincklage, Ben Wiedermann
2007 conf
IISWC
Richard M. Yoo, Hsien-Hsin S. Lee, Han Lee, Kingsum Chow
2007 J jnl
Data Sci. J.
Kwang-Tsao Shao, Ching-I Peng, Eric Yen, Kun-Chi Lai, Ming-Chih Wang, Jack Yung-Chang Lin, Han Lee, Yang Alan, Shin-Yu Chen
2006 conf
IISWC
Richard M. Yoo, Han Lee, Kingsum Chow, Hsien-Hsin S. Lee
1990 J jnl
IEEE Trans. Syst. Man Cybern.
Han Lee, Rae-Hong Park
1989 J jnl
Pattern Recognit. Lett.
Han Lee, Rae-Hong Park
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