Wei Fu

25 papers C 7Journal 18
YearRankTypeTitle / Venue / Authors
2026 J jnl
Inf. Fusion
Ting Lu, Huiting Wu, Wei Fu, Leyuan Fang, Shutao Li
2025 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Kexing Ding, Ting Lu, Wei Fu, Leyuan Fang
2025 J jnl
IEEE Trans. Geosci. Remote. Sens.
Ting Lu, Jiacheng Lu, Wei Fu, Yifan Xi
2024 J jnl
IEEE Trans. Geosci. Remote. Sens.
Wei Fu, Kai Xie, Leyuan Fang
2024 J jnl
IEEE Trans. Geosci. Remote. Sens.
Ting Lu, Yuxin Fang, Wei Fu, Kexing Ding, Xudong Kang
2024 C conf
IGARSS
Jialin Zheng, Zhen Li, Puhong Duan, Xudong Kang, Wei Fu
2024 J jnl
IEEE Geosci. Remote. Sens. Lett.
Wei Fu, Kexing Ding, Xudong Kang, Dong Wang
2024 C conf
IGARSS
Wei Fu, Kai Xie, Xingbei Du, Leyuan Fang
2023 J jnl
Inf. Fusion
Ting Lu, Kexing Ding, Wei Fu, Shutao Li, Anjing Guo
2023 J jnl
IEEE Trans. Geosci. Remote. Sens.
Ting Lu, Mengkai Liu, Wei Fu, Xudong Kang
2022 C conf
IGARSS
Mengkai Liu, Wei Fu, Ting Lu
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Beifang Bai, Wei Fu, Ting Lu, Shutao Li
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Kexing Ding, Ting Lu, Wei Fu, Shutao Li, Fuyan Ma
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Ting Lu, Yaochen Hu, Wei Fu, Kexing Ding, Beifang Bai, Leyuan Fang
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Shuzhen Zhang, Ting Lu, Shutao Li, Wei Fu
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Shuzhen Zhang, Ting Lu, Wei Fu, Shutao Li
2020 J jnl
IEEE Trans. Geosci. Remote. Sens.
Wei Fu, Ting Lu, Shutao Li
2018 J jnl
IEEE Trans. Geosci. Remote. Sens.
Wei Fu, Shutao Li, Leyuan Fang, Jón Atli Benediktsson
2018 C conf
IGARSS
Wei Fu, Shutao Li
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Wei Fu, Shutao Li, Leyuan Fang, Jón Atli Benediktsson
2017 J jnl
Remote. Sens.
Shuzhen Zhang, Shutao Li, Wei Fu, Leyuan Fang
2017 C conf
IGARSS
Wei Fu, Shutao Li, Leyuan Fang, Jón Atli Benediktsson
2016 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Wei Fu, Shutao Li, Leyuan Fang, Xudong Kang, Jón Atli Benediktsson
2015 C conf
IGARSS
Wei Fu, Shutao Li, Leyuan Fang
2014 C conf
IGARSS
Wei Fu, Shutao Li, Leyuan Fang, Xudong Kang, Jón Atli Benediktsson
redb/extractors/decompiler/bninja/analysis/medium_level_normalization.py
← Index redb/extractors/decompiler/bninja/analysis/medium_level_normalization.py python
from binaryninja import (
    MediumLevelILInstruction,
    Variable, SSAVariable,
    ILIntrinsic,
)


class MediumLevelNormalization:
    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 isinstance(op, MediumLevelILInstruction):
                self._collect_ops(op, ops)
            elif isinstance(op, (list, tuple)):
                for sub in op:
                    if isinstance(sub, MediumLevelILInstruction):
                        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, SSAVariable):
            return "SSA_VAR"
        if isinstance(val, Variable):
            return "VAR"
        if isinstance(val, ILIntrinsic):
            return "INTRINSIC"
        if isinstance(val, bool):
            return "BOOL"
        if isinstance(val, float):
            return "FLOAT_CONST"
        if isinstance(val, int):
            return "CONST"
        if isinstance(val, str):
            return "STR"
        return type(val).__name__.upper()

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

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