Xiaohui Wei

43 papers C 2Misc 1Journal 31Unranked 8
YearRankTypeTitle / Venue / Authors
2026 J jnl
Future Gener. Comput. Syst.
Jingweijia Tan, Zhanyuntian Li, Weiren Wang, Jiashuo Wang, Kaige Yan, Xiaohui Wei
2025 J jnl
Comput. Mater. Continua
Xiaohui Wei, Fengyu Yang, Fa Zhong, Guangdong Zeng
2025 J jnl
Neural Networks
Dongyuan Tian, Yucheng Wang, Peiliang Gong, Zhewen Xu, Zhenghua Chen, Xiaohui Wei, Min Wu
2025 J jnl
Eng. Appl. Artif. Intell.
Fengyu Yang, Hong Yan, Yu Xiong, Xiaohui Wei, Yihui Zhong
2025 J jnl
Signal Process.
Jun Zhang, Yaoxin Tan, Xiaohui Wei
2024 J jnl
CoRR
Zhewen Xu, Baoxiang Pan, Hongliang Li, Xiaohui Wei
2024 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Taotao Liang, Yin Yin, Xiaohui Wei, Hong Nie, Yucheng Wang
2023 J jnl
Int. J. Control
Wei Liao, Taotao Liang, Xiaohui Wei, Jizhou Lai
2023 J jnl
Vis. Comput.
Changlin Wan, Jianzhong Cao, Xiaohui Wei, Jingqiu Huang, Zhiming Chen, Deming Xu, Feng Qiu
2023 J jnl
Int. J. Emerg. Technol. Learn.
Man Zhang, Xiaohui Wei
2023 J jnl
Int. J. Mach. Learn. Cybern.
Bingyi Sun, Xiaohui Wei, Jiaxu Cui, Yan Wu
2022 C ed.
NPC
Shaoshan Liu, Xiaohui Wei
2022 J jnl
Appl. Math. Comput.
Wei Liao, Taotao Liang, Xiaohui Wei, Qiaozhi Yin
2021 J jnl
IEEE Access
Xubo Li, Yuan Wang, Xiaohui Wei, Qiaozhi Yin
2021 J jnl
CoRR
Wei Liao, Taotao Liang, Xiaohui Wei, Jizhou Lai
2021 J jnl
CoRR
Wei Liao, Taotao Liang, Xiaohui Wei, Jizhou Lai
2021 J jnl
CoRR
Wei Liao, Xiaohui Wei, Jizhou Lai
2021 conf
AICAS
Zhen Gao, Han Zhang, Xiaohui Wei, Jiajun Xiao, Shulin Zeng, Guangjun Ge, Yu Wang, Pedro Reviriego
2021 J jnl
Neural Comput. Appl.
Xiaohui Wei, Wanling Chen, Xiao Li
2021 J jnl
J. Intell. Fuzzy Syst.
Wei Liao, Xiaohui Wei, Jizhou Lai
2021 J jnl
CoRR
Wei Liao, Taotao Liang, Xiaohui Wei, Qiaozhi Yin
2021 J jnl
CoRR
Wei Liao, Xiaohui Wei, Jizhou Lai
2021 J jnl
Int. J. Technol. Manag.
Xiaohui Wei, Yingji Li
2020 J jnl
Trans. Inst. Meas. Control
Wei Liao, Xiaohui Wei, Jizhou Lai, Hao Sun
2020 J jnl
CoRR
Wei Liao, Xiaohui Wei, Jizhou Lai
2020 J jnl
IEEE Access
Wei Liao, Xiaohui Wei, Jizhou Lai, Hao Sun
2020 conf
DFT
Zhen Gao, Xiaohui Wei, Han Zhang, Wenshuo Li, Guangjun Ge, Yu Wang, Pedro Reviriego
2020 conf
DFT
Zhen Gao, Han Zhang, Xiaohui Wei, Tong Yan, Kangkang Guo, Wenshuo Li, Yu Wang, Pedro Reviriego
2020 J jnl
Int. J. Perform. Eng.
Xiaohui Wei, Bingyi Sun, Jiaxu Cui
2018 J jnl
Sensors
Dafeng Long, Xiaoming Zhang, Xiaohui Wei, Zhongliang Luo, Jianzhong Cao
2018 Misc conf
ICMLC
Changling Wan, Jianzhong Cao, Jingqiu Huang, Deming Xu, Xiaohui Wei
2017 J jnl
Ind. Robot
Chunlei Wang, Ting Zhang, Xiaohui Wei, Yongjun Long, Shigang Wang
2017 J jnl
Adv. Robotics
Chunlei Wang, Ting Zhang, Xiaohui Wei, Yongjun Long, Shigang Wang
2015 J jnl
Adv. Robotics
Xiaohui Wei, Chunlei Wang, Yongjun Long, Shigang Wang
2011 conf
ChinaGrid
Xiaohui Wei, Haibin Wang, Hongliang Li, Lei Zou
2011 J jnl
Comput. Syst. Sci. Eng.
Xiaohui Wei, Hongliang Li, Qingnan Guo, Na Jiang, Liang Hu
2010 conf
ICEE
Jianhua Jiang, Peng Cheng, Ming Ma, Gaochao Xu, Xiaohui Wei
2010 conf
FCST
Xiaohui Wei, Lixian Xi, Hongliang Li, Haibin Wang, Wilfred W. Li, Jingyuan Ren
2010 ed.
FCST
Ivan Stojmenovic, Gerald E. Farin, Minyi Guo, Hai Jin, Keqiu Li, Liang Hu, Xiaohui Wei, Xiangjiu Che
2010 conf
FCST
Xiaohui Wei, Hongliang Li, Liang Hu, Qingnan Guo, Na Jiang
2008 J jnl
J. Comput.
Jianhua Jiang, Huifang Ji, Gaochao Xu, Xiaohui Wei
2007 C conf
APSCC
Xiaohui Wei, Jishan Gao, Xiao lei Ding, Shutao Yuan
2006 conf
GCA
Xiaohui Wei, Zhaohui Ding, Shutao Yuan, Chang Hou, Huizhen Li
redb/extractors/decompiler/bninja/analysis/scores.py
← Index redb/extractors/decompiler/bninja/analysis/scores.py python
from collections import deque
from binaryninja import highlevelil
from binaryninja.enums import HighLevelILOperation


class ObfuscationScores:
    def __init__(self, hlil_function):
        self.function = hlil_function
        self._basic_blocks = list(hlil_function.basic_blocks) if hlil_function and hlil_function.basic_blocks else []
        self._block_count = len(self._basic_blocks)

    def flattened_score(self):
        """
        A heuristic for detecting control flow flattening from Tim Blazytko.
        Source: https://www.synthesis.to/2021/03/03/flattening_detection.html
        """
        if self._block_count == 0:
            return 0.0

        max_flattening_ratio = 0.0

        for basic_block in self._basic_blocks:
            dominated = get_dominated_by(basic_block)
            if not any(edge.source in dominated for edge in basic_block.incoming_edges):
                continue
            ratio = len(dominated) / self._block_count
            if ratio > max_flattening_ratio:
                max_flattening_ratio = ratio

        return max_flattening_ratio

    def MBA_score(self):
        """
        Score for MBA is obtained by the number of instructions that have at least one arithmetic operation and
        one logic operation DIVIDED by the number of instructions.
        """
        total = 0
        mba_count = 0

        for ins in self.function.instructions:
            total += 1
            if uses_mba(ins):
                mba_count += 1

        if total == 0:
            return 0.0

        return mba_count / total

def get_dominated_by(dominator):
    """
    Get the dominators that are dominated by the given dominator.
    (To recall the theory, a basic block B is called dominator for A if every path from START
    to A must include B)
    """
    result = set()
    worklist = deque([dominator])

    while worklist:
        block = worklist.popleft()
        if block in result:
            continue
        result.add(block)
        worklist.extend(block.dominator_tree_children)

    return result

_ARITHMETIC_OPS = frozenset({
    HighLevelILOperation.HLIL_ADD,
    HighLevelILOperation.HLIL_NEG,
    HighLevelILOperation.HLIL_SUB,
    HighLevelILOperation.HLIL_MUL,
    HighLevelILOperation.HLIL_DIVS,
    HighLevelILOperation.HLIL_MODS,
})

_LOGIC_OPS = frozenset({
    HighLevelILOperation.HLIL_NOT,
    HighLevelILOperation.HLIL_AND,
    HighLevelILOperation.HLIL_OR,
    HighLevelILOperation.HLIL_XOR,
    HighLevelILOperation.HLIL_LSR,
    HighLevelILOperation.HLIL_LSL,
})

_MBA_OPS = _ARITHMETIC_OPS | _LOGIC_OPS

def uses_mba(hlil_instruction):
    uses_logic = False
    uses_arithmetic = False
    stack = [hlil_instruction]

    while stack:
        instruction = stack.pop()

        if not isinstance(instruction, highlevelil.HighLevelILInstruction):
            continue

        op = instruction.operation

        if op not in _MBA_OPS:
            for operand in instruction.operands:
                if isinstance(operand, highlevelil.HighLevelILInstruction):
                    stack.append(operand)
            continue

        if op in _ARITHMETIC_OPS:
            uses_arithmetic = True
        else:
            uses_logic = True

        if uses_logic and uses_arithmetic:
            return True

        for operand in instruction.operands:
            if isinstance(operand, highlevelil.HighLevelILInstruction):
                stack.append(operand)

    return False