Xiangwei Wang

34 papers A* 3A 3B 1C 1Journal 21Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Comput. Methods Programs Biomed.
Jiang Zhao, Jingwei Zhao, Wei Huang, Weijie Lin, Kuangzheng Jie, Zihang Wu, Benyi Li, Lixin Fan, Xiangwei Wang
2026 J jnl
CoRR
Xiangwei Wang, Wei Wang, Ken Chen, Nanduni Nimalsiri, Saman K. Halgamuge
2026 J jnl
CoRR
Zhaoyuan Qiu, Ken Chen, Xiangwei Wang, Yu Xia, Sachith Seneviratne, Saman K. Halgamuge
2026 A conf
CGO
Ruifeng Zhang, Xiangwei Wang, Ang Li, Xipeng Shen
2026 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Jiayi Tian, Jinming Lu, Hai Li, Xiangwei Wang, Cong Callie Hao, Ian A. Young, Zheng Zhang
2025 J jnl
Proc. ACM Program. Lang.
Xiangwei Wang, Xinning Hui, Chunhua Liao, Xipeng Shen
2025 J jnl
CoRR
Jiayi Tian, Jinming Lu, Hai Li, Xiangwei Wang, Cong Hao, Ian A. Young, Zheng Zhang
2025 J jnl
Comput. Networks
Fan Wu, Xiaolong Xu, Muhammad Bilal, Xiangwei Wang, Hao Cheng, Siyu Wu
2024 J jnl
Robotics Auton. Syst.
Jixin Gao, Jianjun Sha, Yanheng Wang, Xiangwei Wang, Cong Tan
2024 J jnl
BioData Min.
Jiang Zhao, Qian Zhang, Cunle Zhu, Yuqi Wu, Guohui Zhang, Qianliang Wang, Xingyou Dong, Benyi Li, Xiangwei Wang
2024 J jnl
Remote. Sens.
Yanchen Gao, Jiahui Yang, Xiaoyu Chen, Xiangwei Wang, Jinbo Li, Nasrin Azad, Francis Zvomuya, Hailong He
2024 J jnl
CoRR
Fan Wu, Xiaolong Xu, Muhammad Bilal, Xiangwei Wang, Hao Cheng, Siyu Wu
2023 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Hongfei Wang, Zhanfei Wu, Xiangwei Wang, Longyun Bian, Hai Jin
2023 J jnl
CoRR
Xiangwei Wang, Rui Han, Chi Harold Liu
2023 J jnl
Remote. Sens.
Ming Han, Jianjun Sha, Yanheng Wang, Xiangwei Wang
2022 J jnl
IEEE Trans. Multim.
Hui Zhang, Xiangwei Wang, Xiaochuan Yin, Mingxiao Du, Chengju Liu, Qijun Chen
2022 conf
MMSports@MM
Silvio Giancola, Anthony Cioppa, Adrien Deliège, Floriane Magera, Vladimir Somers, Le Kang, Xin Zhou, Olivier Barnich, Christophe De Vleeschouwer, Alexandre Alahi, Bernard Ghanem, Marc Van Droogenbroeck, Abdulrahman Darwish, Adrien Maglo, Albert Clapés, Andreas Luyts, Andrei Boiarov, Artur Xarles, Astrid Orcesi, Avijit Shah, Baoyu Fan, Bharath Comandur, Chen Chen, Chen Zhang, Chen Zhao, Chengzhi Lin, Cheuk-Yiu Chan, Chun Chuen Hui, Dengjie Li, Fan Yang, Fan Liang, Fang Da, Feng Yan, Fufu Yu, Guanshuo Wang, H. Anthony Chan, He Zhu, Hongwei Kan, Jiaming Chu, Jianming Hu, Jianyang Gu, Jin Chen, João V. B. Soares, Jonas Theiner, Jorge De Corte, José Henrique Brito, Jun Zhang, Junjie Li, Junwei Liang, Leqi Shen, Lin Ma, Lingchi Chen, Miguel Santos Marques, Mike Azatov, Nikita Kasatkin, Ning Wang, Qiong Jia, Quoc-Cuong Pham, Ralph Ewerth, Ran Song, Rengang Li, Rikke Gade, Ruben Debien, Runze Zhang, Sangrok Lee, Sergio Escalera, Shan Jiang, Shigeyuki Odashima, Shimin Chen, Shoichi Masui, Shouhong Ding, Sin-wai Chan, Siyu Chen, Tallal El Shabrawy, Tao He, Thomas B. Moeslund, Wan-Chi Siu, Wei Zhang, Wei Li, Xiangwei Wang, Xiao Tan, Xiaochuan Li, Xiaolin Wei, Xiaoqing Ye, Xing Liu, Xinying Wang, Yandong Guo, Yaqian Zhao, Yi Yu, Yingying Li, Yue He, Yujie Zhong, Zhenhua Guo, Zhiheng Li
2022 J jnl
CoRR
Silvio Giancola, Anthony Cioppa, Adrien Deliège, Floriane Magera, Vladimir Somers, Le Kang, Xin Zhou, Olivier Barnich, Christophe De Vleeschouwer, Alexandre Alahi, Bernard Ghanem, Marc Van Droogenbroeck, Abdulrahman Darwish, Adrien Maglo, Albert Clapés, Andreas Luyts, Andrei Boiarov, Artur Xarles, Astrid Orcesi, Avijit Shah, Baoyu Fan, Bharath Comandur, Chen Chen, Chen Zhang, Chen Zhao, Chengzhi Lin, Cheuk-Yiu Chan, Chun Chuen Hui, Dengjie Li, Fan Yang, Fan Liang, Fang Da, Feng Yan, Fufu Yu, Guanshuo Wang, H. Anthony Chan, He Zhu, Hongwei Kan, Jiaming Chu, Jianming Hu, Jianyang Gu, Jin Chen, João V. B. Soares, Jonas Theiner, Jorge De Corte, José Henrique Brito, Jun Zhang, Junjie Li, Junwei Liang, Leqi Shen, Lin Ma, Lingchi Chen, Miguel Santos Marques, Mike Azatov, Nikita Kasatkin, Ning Wang, Qiong Jia, Quoc-Cuong Pham, Ralph Ewerth, Ran Song, Rengang Li, Rikke Gade, Ruben Debien, Runze Zhang, Sangrok Lee, Sergio Escalera, Shan Jiang, Shigeyuki Odashima, Shimin Chen, Shoichi Masui, Shouhong Ding, Sin-wai Chan, Siyu Chen, Tallal El Shabrawy, Tao He, Thomas B. Moeslund, Wan-Chi Siu, Wei Zhang, Wei Li, Xiangwei Wang, Xiao Tan, Xiaochuan Li, Xiaolin Wei, Xiaoqing Ye, Xing Liu, Xinying Wang, Yandong Guo, Yaqian Zhao, Yi Yu, Yingying Li, Yue He, Yujie Zhong, Zhenhua Guo, Zhiheng Li
2021 J jnl
IEEE Access
Yanpo Song, Xiangwei Wang
2021 J jnl
IEEE Trans. Parallel Distributed Syst.
Rui Han, Shilin Li, Xiangwei Wang, Chi Harold Liu, Gaofeng Xin, Lydia Y. Chen
2020 J jnl
IEEE Access
Xiangwei Wang, Hui Zhang
2020 A conf
IROS
Wenshan Wang, Delong Zhu, Xiangwei Wang, Yaoyu Hu, Yuheng Qiu, Chen Wang, Yafei Hu, Ashish Kapoor, Sebastian A. Scherer
2020 J jnl
CoRR
Wenshan Wang, Delong Zhu, Xiangwei Wang, Yaoyu Hu, Yuheng Qiu, Chen Wang, Yafei Hu, Ashish Kapoor, Sebastian A. Scherer
2020 conf
ECML/PKDD (3)
Yugang Ji, Mingyang Yin, Yuan Fang, Hongxia Yang, Xiangwei Wang, Tianrui Jia, Chuan Shi
2019 A conf
IROS
Xiangwei Wang, Daniel Maturana, Shichao Yang, Wenshan Wang, Qijun Chen, Sebastian A. Scherer
2019 A* conf
IJCAI
Yifeng Zhao, Xiangwei Wang, Hongxia Yang, Le Song, Jie Tang
2018 A* conf
ICRA
Xiangwei Wang, Hui Zhang, Xiaochuan Yin, Mingxiao Du, Qijun Chen
2018 J jnl
CoRR
Xiaochuan Yin, Henglai Wei, Penghong Lin, Xiangwei Wang, Qijun Chen
2017 B conf
SMC
Mingxiao Du, Xiaofeng Ma, Zhe Zhang, Xiangwei Wang, Qijun Chen
2017 C conf
ICVS
Hui Zhang, Xiangwei Wang, Xiaoguo Du, Ming Liu, Qijun Chen
2017 A* conf
ICCV
Xiaochuan Yin, Xiangwei Wang, Xiaoguo Du, Qijun Chen
2015 conf
WAIM
Chunying Zhu, Qingzhong Li, Lanju Kong, Xiangwei Wang, Xiaoguang Hong
2015 conf
WAIM
Min Zhu, Tianchen Zhu, Zhaohui Peng, Guang Yang, Yang Xu, Senzhang Wang, Xiangwei Wang, Xiaoguang Hong
2015 conf
ICIRA (3)
Xiangwei Wang, Qijun Chen
redb/extractors/decompiler/_archive/ghidra-test.py
← Index redb/extractors/decompiler/_archive/ghidra-test.py python
import subprocess
import json
import os
import tempfile
import uuid
import shutil
import sys
import time


def run_command(cmd, env=None):
    try:
        print(f"Starting command: {' '.join(cmd)}")
        start_time = time.time()
        process = subprocess.Popen(
            cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
        )

        while True:
            output = process.stdout.readline()
            if output:
                print(output.strip())
            if process.poll() is not None:
                break

        stdout, stderr = process.communicate()
        end_time = time.time()

        print(f"Command finished. Execution time: {end_time - start_time:.2f} seconds")
        print(f"Return code: {process.returncode}")

        if process.returncode != 0:
            print(f"Error output:\n{stderr}")
            return None
        return stdout
    except Exception as e:
        print(f"Error running command {' '.join(cmd)}: {e}")
        return None


def analyze_binary(ghidra_path, binary_path, java_script_path):
    print(f"Ghidra path: {ghidra_path}")
    print(f"Binary path: {binary_path}")
    print(f"Java script path: {java_script_path}")

    # Check if Java script exists
    if not os.path.exists(java_script_path):
        print(f"Error: Java script not found at {java_script_path}")
        return None

    # Set up environment variables
    env = os.environ.copy()
    java_home = "/usr/lib/jvm/java-17-openjdk-amd64"  # Adjust this path if needed
    env["JAVA_HOME"] = java_home
    env["PATH"] = f"{java_home}/bin:{env['PATH']}"
    env["LD_LIBRARY_PATH"] = f"{java_home}/lib:{env.get('LD_LIBRARY_PATH', '')}"

    # Print environment variables for debugging
    print(f"JAVA_HOME: {env['JAVA_HOME']}")
    print(f"PATH: {env['PATH']}")
    print(f"LD_LIBRARY_PATH: {env['LD_LIBRARY_PATH']}")

    # Check Ghidra installation
    analyzeHeadless_path = f"{ghidra_path}/support/analyzeHeadless"
    print(f"analyzeHeadless exists: {os.path.exists(analyzeHeadless_path)}")

    print(f"Binary file exists: {os.path.exists(binary_path)}")

    # Check Java
    java_version = run_command(["java", "-version"], env=env)
    print(f"Java version: {java_version}")

    # Create a temporary project directory
    project_path = tempfile.gettempdir() + "/ghidra_" + str(uuid.uuid4())
    os.makedirs(project_path, exist_ok=True)
    print(f"Created temporary project path: {project_path}")
    output_file = ""

    try:
        # Run Ghidra's headless analyzer
        analyze_cmd = [
            analyzeHeadless_path,
            project_path,
            "TempProject",
            "-import",
            binary_path,
            "-postScript",
            java_script_path,
            "-deleteProject",
        ]

        result = run_command(analyze_cmd, env=env)
        if result is None:
            return None

        # Read the output JSON file
        output_file = "ghidra_output.json"
        if os.path.exists(output_file):
            with open(output_file, "r") as f:
                functions = json.load(f)
            return functions
        else:
            print(
                f"Output file {output_file} not found. Ghidra analysis may have failed."
            )
            # List files in the current directory
            print("Files in the current directory:")
            print("\n".join(os.listdir(".")))
            return None
    finally:
        # Clean up
        if os.path.exists(output_file):
            os.remove(output_file)
        if os.path.exists(project_path):
            shutil.rmtree(project_path)


# Example usage
if __name__ == "__main__":
    # if len(sys.argv) != 4:
    #     print("Usage: python script.py <ghidra_path> <binary_path> <java_script_path>")
    #     sys.exit(1)

    # ghidra_path = sys.argv[1]
    # binary_path = sys.argv[2]
    # java_script_path = sys.argv[3]

    ghidra_path = "/opt/ghidra"
    binary_path = "/home/p4c0/dev/redb/test_files/hello"
    java_script_path = (
        "/opt/ghidra/Ghidra/Features/Base/ghidra_scripts/GhidraDecompilerScript.java"
    )

    functions = analyze_binary(ghidra_path, binary_path, java_script_path)

    if functions:
        print(f"Extracted functions from {binary_path}:")
        for func in functions:
            print(f"\nFunction: {func['name']}")
            print(f"Address: {func['address']}")
            print(f"Decompiled code:\n{func['decompiled']}")
    else:
        print("Failed to extract functions.")