Wei-Jen Wang

59 papers A 5B 1C 6Misc 1Journal 29Unranked 16
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Access
Anindita Suryarasmi, Chia-Yu Lin, Le-Chien Chu, Wei-Jen Wang, Deron Liang
2025 J jnl
IEEE Access
Yan-Qin Ni, Pei-Kai Huang, Ching-Han Yang, Chin-Chun Chang, Wei-Jen Wang, Deron Liang
2024 J jnl
J. Cloud Comput.
Ridlo Sayyidina Auliya, Yen-Lin Lee, Chia-Ching Chen, Deron Liang, Wei-Jen Wang
2024 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Philip Faster Eka Adipraja, Chin-Chun Chang, Hua-Sheng Yang, Wei-Jen Wang, Deron Liang
2024 A conf
IROS
Wei-Jen Wang, You-Sheng Do, Wen-Chieh Lin, Chieh-Chih Wang
2024 J jnl
IEEE Trans. Ind. Informatics
Ida Wahyuni, Chin-Chun Chang, Hua-Sheng Yang, Wei-Jen Wang, Deron Liang
2024 conf
CNIOT
Guan-Yu Wang, Hung-Jui Ko, Chang-Po Chiang, Wei-Jen Wang
2023 J jnl
BMC Bioinform.
Daniyal Rajput, Wei-Jen Wang, Chun-Chuan Chen
2023 J jnl
Telecommun. Syst.
Ridlo Sayyidina Auliya, Chia-Ching Chen, Po-Ru Lin, Deron Liang, Wei-Jen Wang
2023 conf
ICCE-Taiwan
Jia-Jeng Lee, Chun-Chuan Chen, Eric Hsiao-Kuang Wu, Shih-Ching Yeh, Wei-Jen Wang
2022 J jnl
Displays
Anindita Suryarasmi, Chin-Chun Chang, Rania Akhmalia, Maysa Marshallia, Wei-Jen Wang, Deron Liang
2022 A conf
ICS
Hao-Yu Weng, Min-Yi Tsai, Wei-Jen Wang, Cheng-Ta Huang
2022 A conf
ICS
Guan-Yu Wang, Hung-Jui Ko, Min-Yi Tsai, Wei-Jen Wang
2022 J jnl
IEEE Trans. Dependable Secur. Comput.
Yen-Lin Lee, Deron Liang, Wei-Jen Wang
2021 J jnl
Sensors
Yen-Lin Lee, Shinta Nuraisya Arizky, Yu-Ren Chen, Deron Liang, Wei-Jen Wang
2021 conf
ISPACS
Ida Wahyuni, Wei-Jen Wang, Deron Liang, Chin-Chun Chang
2020 A conf
ICS
Yen-Lin Lee, Ratri Abdatush Sholihah, Deron Liang, Wei-Jen Wang
2019 J jnl
IEEE Trans. Instrum. Meas.
I-Hsi Kao, Wei-Jen Wang, Yi-Horng Lai, Jau-Woei Perng
2019 conf
SICE
Wei-Jen Wang, Chien-Feng Wu, Zhi-Hao Zhang, Shun-You Lin, Tsung-Ming Hsu
2018 J jnl
J. Supercomput.
Cheng-Ta Huang, Cheng-Hsing Yang, Wei-Jen Wang, Shiau-Rung Tsui, Shiuh-Jeng Wang
2018 J jnl
J. Supercomput.
Cheng-Ta Huang, Min-Yi Tsai, Li-Chiun Lin, Wei-Jen Wang, Shiuh-Jeng Wang
2017 conf
SC²
Shao-Jui Chen, Hsueh-Wen Liu, Wei-Jen Wang
2017 J jnl
Int. J. Serv. Technol. Manag.
Shao-Jui Chen, Chia-Ching Chen, Hsiang-Lun Lu, Wei-Jen Wang
2017 J jnl
Int. J. Inf. Sec.
Cheng-Ta Huang, Yu Hong Zhang, Li-Chiun Lin, Wei-Jen Wang, Shiuh-Jeng Wang
2017 C conf
IWCIA
Wei-Jen Wang, Tsung-Ming Hsu, Tzu-Sung Wu
2016 J jnl
Multim. Tools Appl.
Wei-Jen Wang, Cheng-Ta Huang, Shiau-Rung Tsui, Shiuh-Jeng Wang
2015 conf
SmartCity
Hung-Lin Huang, Min-Huang Ho, Shao-Jui Chen, Yi-Feng Chen, Wei-Jen Wang
2015 conf
SmartCity
Chia-Ching Chen, Shao-Jui Chen, Fan Yin, Wei-Jen Wang
2015 conf
ICCST
Wei-Jen Wang, Hung-Lin Huang, Shan-Hao Chuang, Shao-Jui Chen, Chia Hung Kao, Deron Liang
2014 J jnl
Future Gener. Comput. Syst.
Cheng-Hsien Tang, Meng-Feng Tsai, Shan-Hao Chuang, Jen-Jung Cheng, Wei-Jen Wang
2014 C conf
IWDW
Wei-Jen Wang, Cheng-Ta Huang, Shiau-Rung Tsui, Shiuh-Jeng Wang
2014 A conf
ICS
Wei-Jen Wang, Shao-Jui Chen, Jui-Hao Yang, Tzu-Ming Chan
2014 J jnl
Peer-to-Peer Netw. Appl.
Wei-Jen Wang, Cheng-Ta Huang, Cheng-Hsing Yang, Shiuh-Jeng Wang
2013 J jnl
J. Inf. Hiding Multim. Signal Process.
Shiau-Rung Tsui, Cheng-Ta Huang, Wei-Jen Wang
2013 J jnl
Pers. Ubiquitous Comput.
Yue-Shan Chang, Wei-Jen Wang, Yung-Shuan Hung
2013 J jnl
J. Supercomput.
Wei-Jen Wang, Yue-Shan Chang, Win-Tsung Lo, Yi-Kang Lee
2013 J jnl
Telecommun. Syst.
Wei-Jen Wang
2013 J jnl
Inf. Sci.
Wei-Jen Wang, Cheng-Ta Huang, Chung-Min Liu, Po-Chyi Su, Shiuh-Jeng Wang
2013 J jnl
Int. J. Grid High Perform. Comput.
Shao-Jui Chen, Jing-Ying Huang, Cheng-Ta Huang, Wei-Jen Wang
2013 conf
IIH-MSP
Wei-Jen Wang, Yu Hong Zhang, Cheng-Ta Huang, Shiuh-Jeng Wang
2012 Misc conf
GrC
Min-Yi Tsai, Ping-Fang Chiang, Shao-Jui Chen, Wei-Jen Wang
2012 J jnl
NeuroImage
Chun-Chuan Chen, Stefan J. Kiebel, James Kilner, Nick S. Ward, Klaas E. Stephan, Wei-Jen Wang, Karl J. Friston
2012 J jnl
J. Supercomput.
Wei-Jen Wang, Yue-Shan Chang, Cheng-Hui Wu, Wei-Xiang Kang
2012 conf
UIC/ATC
Wei-Jen Wang, I-Fan Hsieh, Chun-Chuan Chen
2012 conf
UIC/ATC
Cheng-Ta Huang, Wei-Jen Wang, Min-Yi Tsai, Chin-Feng Lee
2012 conf
UIC/ATC
Chih-Tien Fan, Yue-Shan Chang, Wei-Jen Wang, Shyan-Ming Yuan
2012 conf
PAAP
Shiau-Rung Tsui, Wei-Jen Wang, Shi-Shan Chen, Lee Shu-Teng Chen, Chilung Wang
2012 conf
ICUIMC
Yu-Cheng Tso, Shiuh-Jeng Wang, Cheng-Ta Huang, Wei-Jen Wang
2011 C conf
HPCC
Chih-Tien Fan, Wei-Jen Wang, Yue-Shan Chang
2011 J jnl
IEEE J. Sel. Areas Commun.
Fu-Hau Hsu, Chang-Kuo Tso, Yi-Chun Yeh, Wei-Jen Wang, Li-Han Chen
2011 conf
FGIT-GDC
Min-Yi Tsai, Ping-Fang Chiang, Yen-Jan Chang, Wei-Jen Wang
2011 J jnl
Inf. Sci.
Cheng-Hsing Yang, Wei-Jen Wang, Cheng-Ta Huang, Shiuh-Jeng Wang
2011 J jnl
IEEE Syst. J.
Wei-Jen Wang, Cheng-Ta Huang, Shiuh-Jeng Wang
2010 C conf
GPC
Wei-Jen Wang, Carlos A. Varela, Fu-Hau Hsu, Cheng-Hsien Tang
2010 C conf
GPC
Cheng-Hsien Tang, Min-Feng Wang, Wei-Jen Wang, Meng-Feng Tsai, Yuji Urata, Chow-Choong Ngeow, Induk Lee, Kuiyun Huang, Wen-Ping Chen
2010 conf
ICUIMC
Wei-Jen Wang, Cheng-Ta Huang, Shiuh-Jeng Wang
2006 B conf
e-Science
Wei-Jen Wang, Kaoutar El Maghraoui, John Cummings, Jim Napolitano, Boleslaw K. Szymanski, Carlos A. Varela
2006 C conf
GPC
Wei-Jen Wang, Carlos A. Varela
2006
Wei-Jen Wang
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