Haifeng Sun

217 papers A* 40A 20B 15C 7Misc 7Journal 91Unranked 37
YearRankTypeTitle / Venue / Authors
2026 A conf
IUI
Xiang Chen, Xiayang Zhou, Xufeng Jian, Lei Zhou, Linpei Zhang, Haifeng Sun, Qi Qi, Jing Wang, Jingyu Wang
2026 A* conf
AAAI
Huazheng Wang, Yongcheng Jing, Haifeng Sun, Jingyu Wang, Jianxin Liao, Leszek Rutkowski, Dacheng Tao
2026 J jnl
CoRR
Yafeng Nan, Haifeng Sun, Zirui Zhuang, Qi Qi, Guojun Chu, Jianxin Liao, Dan Pei, Jingyu Wang
2026 A conf
WSDM
Yichi Zhang, Cheng Zhang, Haifeng Sun, Qi Qi, Lejian Zhang, Jing Wang, Jingyu Wang
2026 A* conf
CHI
Xufeng Jian, Qi Qi, Linpei Zhang, Haifeng Sun, Pengfei Ren, Xiang Chen, Guangtian Liu, Shule Cao, Jingyu Wang
2026 J jnl
IEEE Trans. Netw. Serv. Manag.
Jingyu Wang, Bo He, Jinyu Zhao, Yixin Xuan, Haifeng Sun, Qi Qi, Junzhe Liang, Zirui Zhuang, Jianxin Liao
2026 J jnl
IEEE Trans. Dependable Secur. Comput.
Yuhan Jing, Jingyu Wang, Lei Zhang, Haifeng Sun, Bo He, Zirui Zhuang, Chengsen Wang, Qi Qi, Jianxin Liao
2026 J jnl
CoRR
Chaoyi Ruan, Geng Luo, Xinyi Wan, Long Zhao, Qinghe Wang, Jiaan Zhu, Duling Xu, Guanbin Xu, Dehui Wei, Xiang Liu, Cheng Li, Haifeng Sun, Congcong Miao, Jialin Li
2026 J jnl
IEEE Trans. Netw.
Bo He, Mingxiao Ma, Yuehan Zhang, Lingqi Guo, Chenyang Zhao, Qi Qi, Zirui Zhuang, Haifeng Sun, Gong Zhang, Jianxin Liao, Cheng Huang, Jingyu Wang
2026 A* conf
VR
Xiang Chen, Lei Zhou, Xufeng Jian, Guangtian Liu, Xiayang Zhou, Haifeng Sun, Qi Qi, Pengfei Ren, Shan Jiang, Jing Wang, Jianxin Liao, Jingyu Wang
2025 A* conf
ACM Multimedia
Shuang Hao, Pengfei Ren, Lei Zhang, Haifeng Sun, Pan Ting, Menghao Zhang, Cong Liu, Qi Qi, Jianxin Liao, Jingyu Wang
2025 J jnl
IEEE Trans. Software Eng.
Guojun Chu, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Bo He, Yuhan Jing, Lei Zhang, Jianxin Liao
2025 A conf
EuroSys
Mingxiao Ma, Yuehan Zhang, Jingyu Wang, Bo He, Chenyang Zhao, Qi Qi, Zirui Zhuang, Haifeng Sun, Lingqi Guo, Yuebin Guo, Gong Zhang, Jianxin Liao
2025 A* conf
IJCAI
Geng Chen, Xufeng Jian, Yuchen Chen, Pengfei Ren, Jingyu Wang, Haifeng Sun, Qi Qi, Jing Wang, Jianxin Liao
2025 A* conf
IJCAI
Jiahong Xiong, Chengsen Wang, Haifeng Sun, Yuhan Jing, Qi Qi, Zirui Zhuang, Lei Zhang, Jianxin Liao, Jingyu Wang
2025 A* conf
AAAI
Chengsen Wang, Qi Qi, Jingyu Wang, Haifeng Sun, Zirui Zhuang, Jinming Wu, Lei Zhang, Jianxin Liao
2025 conf
ACL (1)
Minwei Zhang, Haifeng Sun, Jingyu Wang, Shaolong Li, Wanyi Ning, Qi Qi, Zirui Zhuang, Jianxin Liao
2025 A* conf
IJCAI
Shuxi Guo, Zikang Xu, Jiahao Liu, Jinyi Zhang, Qi Qi, Haifeng Sun, Jun Huang, Jianxin Liao, Jingyu Wang
2025 J jnl
CoRR
Huazheng Wang, Yongcheng Jing, Haifeng Sun, Yingjie Wang, Jingyu Wang, Jianxin Liao, Dacheng Tao
2025 conf
NAACL (Long Papers)
Yixiao He, Haifeng Sun, Pengfei Ren, Jingyu Wang, Huazheng Wang, Qi Qi, Zirui Zhuang, Jing Wang
2025 J jnl
IEEE Trans. Netw.
Jingyu Wang, Chenyang Zhao, Zirui Zhuang, Qi Qi, Yuebin Guo, Haifeng Sun, Lingqi Guo, Jianxin Liao
2025 B conf
SRDS
Yuzhe Zhang, Zirui Zhuang, Qi Qi, Haifeng Sun, Shaoxiong Zhu, Xiaoyuan Fu, Jing Wang
2025 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Wanyi Ning, Jingyu Wang, Qi Qi, Haifeng Sun, Daixuan Cheng, Cong Liu, Lei Zhang, Zirui Zhuang, Jianxin Liao
2025 J jnl
IEEE Trans. Intell. Transp. Syst.
Jingyu Wang, Songyang Li, Dezhi Chen, Qianlong Fu, Qi Qi, Haifeng Sun, Bo He, Jianxin Liao
2025 A* conf
ACM Multimedia
Yuhan Jing, Bo He, Haifeng Sun, Qi Qi, Zirui Zhuang, Lei Zhang, Jianxin Liao, Jingyu Wang
2025 conf
DASFAA (2)
Shiyi Lin, Zirui Zhuang, Qi Qi, Jingyu Wang, Jianxin Liao, Jiachang Hao, Haifeng Sun
2025 J jnl
IEEE Trans. Mob. Comput.
Jingyu Wang, Lingqi Guo, Jianyu Wu, Caijun Yan, Haifeng Sun, Lei Zhang, Zirui Zhuang, Qi Qi, Jianxin Liao
2025 J jnl
IEEE Trans. Netw. Sci. Eng.
Jingyu Wang, Bing Ma, Yafeng Nan, Yixiao He, Haifeng Sun, Cong Liu, Shimin Tao, Qi Qi, Jianxin Liao
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Lingqi Guo, Lei Zhang, Jingyu Wang, Jianyu Wu, Yuhang Yan, Haifeng Sun, Bo He, Qi Qi, Jianxin Liao
2025 J jnl
IEEE Trans. Serv. Comput.
Guojun Chu, Jingyu Wang, Tao Sun, Qi Qi, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2025 J jnl
ACM Trans. Knowl. Discov. Data
Chengsen Wang, Qi Qi, Jinming Wu, Haifeng Sun, Zirui Zhuang, Yuhan Jing, Lianyuan Li, Jingyu Wang
2025 A conf
ICME
Qiao Wang, Menghao Zhang, Lei Zhang, Qi Qi, Haifeng Sun, Pengfei Ren, Bo He, Jing Wang, Jingyu Wang
2025 J jnl
CoRR
Jinguang Wang, Jingyu Wang, Haifeng Sun, Tingting Yang, Zirui Zhuang, Wanyi Ning, Yuexi Yin, Qi Qi, Jianxin Liao
2025 A conf
ICME
Yixiao He, Haifeng Sun, Qi Qi, Zirui Zhuang, Pengfei Ren, Huazheng Wang, Yafeng Nan, Jing-Yu Wang
2025 conf
USENIX ATC
Zhaoyang Wan, Rongxin Han, Haifeng Sun, Qi Qi, Zirui Zhuang, Bo He, Liang Zhang, Jianxin Liao, Jingyu Wang
2025 A* conf
INFOCOM
Rongxin Han, Jingyu Wang, Haifeng Sun, Zengteng Jiang, Qi Qi, Zirui Zhuang, Yuan Zhang, Jianxin Liao
2025 J jnl
CoRR
Yuhan Jing, Jingyu Wang, Lei Zhang, Haifeng Sun, Bo He, Zirui Zhuang, Chengsen Wang, Qi Qi, Jianxin Liao
2025 A* conf
CVPR
Kaixin Fan, Pengfei Ren, Jingyu Wang, Haifeng Sun, Qi Qi, Zirui Zhuang, Jianxin Liao
2025 Misc conf
ICASSP
Jinguang Wang, Yuexi Yin, Haifeng Sun, Tingting Yang, Qi Qi, Zirui Zhuang, Jingyu Wang
2025 conf
COLING (Industry)
Shuxi Guo, Qi Qi, Haifeng Sun, Jianxin Liao, Jingyu Wang
2025 conf
NAACL (Findings)
Yuanyi Wang, Han Li, Haifeng Sun, Lei Zhang, Bo He, Wei Tang, Tianhao Yan, Qi Qi, Jingyu Wang
2025 J jnl
IEEE Commun. Mag.
Jing Wang, Lingqi Guo, Cheng Zhou, Zhixian Chu, Jianyu Wu, Qi Qi, Zirui Zhuang, Haifeng Sun, Jianxin Liao
2025 A conf
WSDM
Xingyu Zeng, Han Li, Qi Qi, Jingyu Wang, Haodong Deng, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2025 A* conf
ACM Multimedia
Pengfei Ren, Jingyu Wang, Haifeng Sun, Qi Qi, Jing Wang, Jianxin Liao
2025 conf
ACL (Findings)
Zixuan Xia, Haifeng Sun, Jingyu Wang, Qi Qi, Huazheng Wang, Xiaoyuan Fu, Jianxin Liao
2025 J jnl
Proc. ACM Hum. Comput. Interact.
Guangtian Liu, Haonan Su, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Pengfei Ren, Jianxin Liao
2025 J jnl
ACM Trans. Knowl. Discov. Data
Haifeng Sun, Yuanyi Wang, Han Li, Wei Tang, Zirui Zhuang, Qi Qi, Jingyu Wang
2025 J jnl
CoRR
Chengsen Wang, Qi Qi, Jingyu Wang, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2025 A* conf
EMNLP
Yiran Yang, Haifeng Sun, Jingyu Wang, Qi Qi, Zirui Zhuang, Huazheng Wang, Pengfei Ren, Jing Wang, Jianxin Liao
2024 conf
FMANO@SIGCOMM
Tianyi Kou, Haifeng Sun, Zirui Zhuang, Qi Qi, Jingyu Wang, Jianxin Liao
2024 B conf
IWQoS
Yuexi Yin, Zirui Zhuang, Jingyu Wang, Qi Qi, Haifeng Sun, Xiaoyuan Fu, Jianxin Liao
2024 J jnl
CoRR
Chengsen Wang, Qi Qi, Jingyu Wang, Haifeng Sun, Zirui Zhuang, Jinming Wu, Lei Zhang, Jianxin Liao
2024 conf
ECCV (51)
Xingyu Liu, Pengfei Ren, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2024 J jnl
IEEE Trans. Serv. Comput.
Menghao Zhang, Jingyu Wang, Qi Qi, Zirui Zhuang, Haifeng Sun, Jianxin Liao
2024 conf
LREC/COLING
Junzhe Liang, Haifeng Sun, Zirui Zhuang, Qi Qi, Jingyu Wang, Jianxin Liao
2024 J jnl
IEEE/ACM Trans. Netw.
Rongxin Han, Jingyu Wang, Qi Qi, Dezhi Chen, Zirui Zhuang, Haifeng Sun, Xiaoyuan Fu, Jianxin Liao, Song Guo
2024 A* conf
CVPR
Pengfei Ren, Yuanyuan Gao, Haifeng Sun, Qi Qi, Jingyu Wang, Jianxin Liao
2024 Misc conf
NSDI
Chenyang Zhao, Yuebin Guo, Jingyu Wang, Qi Qi, Zirui Zhuang, Haifeng Sun, Lingqi Guo, Yuming Xie, Jianxin Liao
2024 conf
INFOCOM (Workshops)
Yuexi Yin, Zirui Zhuang, Jingyu Wang, Qi Qi, Haifeng Sun, Xiaoyuan Fu, Jianxin Liao
2024 B conf
IJCNN
Haodong Ru, Menghao Zhang, Cheng Zhou, Pengfei Ren, Haifeng Sun, Qi Qi, Lejian Zhang, Jingyu Wang
2024 conf
Euro-Par (2)
Mengde Zhu, Wanyi Ning, Qi Qi, Jingyu Wang, Zirui Zhuang, Haifeng Sun, Jun Huang, Jianxin Liao
2024 A* conf
NeurIPS
Wanyi Ning, Jingyu Wang, Qi Qi, Mengde Zhu, Haifeng Sun, Daixuan Cheng, Jianxin Liao, Ce Zhang
2024 A conf
IPDPS
Zicheng Wang, Zirui Zhuang, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2024 J jnl
IEEE/ACM Trans. Netw.
Haifeng Sun, Xingjian Liao, Jingyu Wang, Qi Qi, Zirui Zhuang, Jianxin Liao, Dapeng Oliver Wu
2024 B conf
ICNP
Lingqi Guo, Jingyu Wang, Jianyu Wu, Caijun Yan, Haifeng Sun, Zirui Zhuang, Qi Qi, Yi Dong, Haibao Ren, Jianxin Liao
2024 J jnl
CoRR
Yuanyi Wang, Haifeng Sun, Jingyu Wang, Qi Qi, Shaoling Sun, Jianxin Liao
2024 conf
NAACL (Industry Track)
Ruilong Ma, Xiang Yang, Jingyu Wang, Qi Qi, Haifeng Sun, Jing Wang, Zirui Zhuang, Jianxin Liao
2024 A* conf
ICDM
Yuanyi Wang, Haifeng Sun, Chengsen Wang, Mengde Zhu, Jingyu Wang, Wei Tang, Qi Qi, Zirui Zhuang, Jianxin Liao
2024 J jnl
CoRR
Yuanyi Wang, Haifeng Sun, Chengsen Wang, Mengde Zhu, Jingyu Wang, Wei Tang, Qi Qi, Zirui Zhuang, Jianxin Liao
2024 A* conf
AAAI
Xingyu Liu, Pengfei Ren, Yuanyuan Gao, Jingyu Wang, Haifeng Sun, Qi Qi, Zirui Zhuang, Jianxin Liao
2024 conf
NIER@ICSE
Jiabo Wang, Guojun Chu, Jingyu Wang, Haifeng Sun, Qi Qi, Yuanyi Wang, Ji Qi, Jianxin Liao
2024 conf
NAACL-HLT
Huazheng Wang, Jinming Wu, Haifeng Sun, Zixuan Xia, Daixuan Cheng, Jingyu Wang, Qi Qi, Jianxin Liao
2024 A* conf
CVPR
Menghao Zhang, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Pengfei Ren, Ruilong Ma, Jianxin Liao
2024 conf
ASPLOS (3)
Rongxin Han, Jingyu Wang, Qi Qi, Haifeng Sun, Chaowei Xu, Zhaoyang Wan, Zirui Zhuang, Yichuan Yu, Jianxin Liao
2024 J jnl
CoRR
Jinguang Wang, Yuexi Yin, Haifeng Sun, Qi Qi, Jingyu Wang, Zirui Zhuang, Tingting Yang, Jianxin Liao
2024 J jnl
IEEE Trans. Mob. Comput.
Xiang Yang, Zikang Xu, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao, Song Guo
2024 conf
Tiny Papers @ ICLR
Zhenglong Wu, Qi Qi, Zirui Zhuang, Haifeng Sun, Jingyu Wang
2024 A* conf
MobiCom
Haoran Zhao, Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2024 A* conf
NeurIPS
Chengsen Wang, Qi Qi, Jingyu Wang, Haifeng Sun, Zirui Zhuang, Jinming Wu, Jianxin Liao
2024 J jnl
CoRR
Chengsen Wang, Qi Qi, Jingyu Wang, Haifeng Sun, Zirui Zhuang, Jinming Wu, Jianxin Liao
2024 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Haifeng Sun, Xiaozheng Zheng, Pengfei Ren, Jingyu Wang, Qi Qi, Jianxin Liao
2024 conf
ACL (Findings)
Huazheng Wang, Haifeng Sun, Jingyu Wang, Qi Qi, Zixuan Xia, Menghao Zhang, Jianxin Liao
2024 A* conf
IJCAI
Menghao Zhang, Jingyu Wang, Qi Qi, Pengfei Ren, Haifeng Sun, Zirui Zhuang, Lei Zhang, Jianxin Liao
2024 A* conf
ICDE
Yuanyi Wang, Haifeng Sun, Jiabo Wang, Jingyu Wang, Wei Tang, Qi Qi, Shaoling Sun, Jianxin Liao
2024 J jnl
CoRR
Yuanyi Wang, Haifeng Sun, Jiabo Wang, Jingyu Wang, Wei Tang, Qi Qi, Shaoling Sun, Jianxin Liao
2024 J jnl
CoRR
Yuanyi Wang, Wei Tang, Haifeng Sun, Zirui Zhuang, Xiaoyuan Fu, Jingyu Wang, Qi Qi, Jianxin Liao
2024 A* conf
ACM Multimedia
Menghao Zhang, Jingyu Wang, Qi Qi, Pengfei Ren, Haifeng Sun, Zirui Zhuang, Huazheng Wang, Lei Zhang, Jianxin Liao
2023 J jnl
CoRR
Xiang Yang, Dezhi Chen, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao, Song Guo
2023 J jnl
CoRR
Yukai Miao, Yu Bai, Li Chen, Dan Li, Haifeng Sun, Xizheng Wang, Ziqiu Luo, Yanyu Ren, Dapeng Sun, Xiuting Xu, Qi Zhang, Chao Xiang, Xinchi Li
2023 A conf
ICDCS
Jinyu Zhao, Haifeng Sun, Jingyu Wang, Qi Qi, Zirui Zhuang, Shimin Tao, Jianxin Liao
2023 J jnl
IEEE Trans. Knowl. Data Eng.
Wei Tang, Haifeng Sun, Jingyu Wang, Qi Qi, Huangxun Chen, Li Chen
2023 A* conf
ICCV
Pengfei Ren, Chao Wen, Xiaozheng Zheng, Zhou Xue, Haifeng Sun, Qi Qi, Jingyu Wang, Jianxin Liao
2023 A* conf
NeurIPS
Chengsen Wang, Zirui Zhuang, Qi Qi, Jingyu Wang, Xingyu Wang, Haifeng Sun, Jianxin Liao
2023 J jnl
IEEE Trans. Dependable Secur. Comput.
Guojun Chu, Jingyu Wang, Qi Qi, Haifeng Sun, Shimin Tao, Hao Yang, Jianxin Liao, Zhu Han
2023 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Jiachang Hao, Haifeng Sun, Pengfei Ren, Yiming Zhong, Jingyu Wang, Qi Qi, Jianxin Liao
2023 conf
DSN-S
Zhixian Chu, Lingqi Guo, Jingyu Wang, Qi Qi, Zirui Zhuang, Haifeng Sun, Cheng Zhou
2023 A conf
ECAI
Huazheng Wang, Daixuan Cheng, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao, Jing Wang, Cong Liu
2023 J jnl
CoRR
Huazheng Wang, Daixuan Cheng, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao, Jing Wang, Cong Liu
2023 J jnl
IEEE Trans. Serv. Comput.
Wei Tang, Haifeng Sun, Jingyu Wang, Cong Liu, Qi Qi, Jing Wang, Jianxin Liao
2023 Misc conf
ICASSP
Wei Tang, Zuyao Ma, Haifeng Sun, Jingyu Wang
2023 J jnl
IEEE Trans. Cogn. Commun. Netw.
Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao, Lu Lu, Zhu Han
2023 conf
Middleware Industry
Haoyu Zheng, Guojun Chu, Haifeng Sun, Jingyu Wang, Shimin Tao, Hao Yang
2023 A* conf
SIGIR
Wei Tang, Haifeng Sun, Jingyu Wang, Qi Qi, Jing Wang, Hao Yang, Shimin Tao
2023 J jnl
J. Commun. Inf. Networks
Jingyu Wang, Lei Zhang, Yiran Yang, Zirui Zhuang, Qi Qi, Haifeng Sun, Lu Lu, Junlan Feng, Jianxin Liao
2023 A* conf
IJCAI
Jinming Wu, Qi Qi, Jingyu Wang, Haifeng Sun, Zhikang Wu, Zirui Zhuang, Jianxin Liao
2023 J jnl
IEEE Trans. Cybern.
Pengfei Ren, Haifeng Sun, Jiachang Hao, Qi Qi, Jingyu Wang, Jianxin Liao
2023 A* conf
SIGCOMM
Ruilong Ma, Jingyu Wang, Qi Qi, Xiang Yang, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2023 J jnl
IEEE Trans. Mob. Comput.
Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2023 A conf
ECAI
Peiyao Hua, Haifeng Sun, Jiachang Hao, Cong Liu, Jingyu Wang, Qi Qi, Jianxin Liao
2023 A conf
ECAI
Yuchen Chen, Pengfei Ren, Jingyu Wang, Haifeng Sun, Qi Qi, Jing Wang, Jianxin Liao
2023 Misc conf
ICASSP
Menghao Zhang, Jingyu Wang, Jing Wang, Qi Qi, Zirui Zhuang, Haifeng Sun, Ning Xiao
2023 A* conf
WWW
Xingyu Liu, Pengfei Ren, Yuchen Chen, Cong Liu, Jing Wang, Haifeng Sun, Qi Qi, Jingyu Wang
2023 Misc conf
ICASSP
Xingyu Liu, Pengfei Ren, Yuchen Chen, Cong Liu, Jing Wang, Haifeng Sun, Qi Qi, Jing-Yu Wang
2023 A* conf
AAAI
Ce Ge, Jingyu Wang, Qi Qi, Haifeng Sun, Tong Xu, Jianxin Liao
2023 J jnl
CoRR
Pengfei Ren, Chao Wen, Xiaozheng Zheng, Zhou Xue, Haifeng Sun, Qi Qi, Jing-Yu Wang, Jianxin Liao
2023 A* conf
AAAI
Ce Ge, Jingyu Wang, Qi Qi, Haifeng Sun, Tong Xu, Jianxin Liao
2023 B conf
ICNP
Xingjian Liao, Haifeng Sun, Jingyu Wang, Qi Qi, Zirui Zhuang, Jianxin Liao, Guang Yang
2023 J jnl
IEEE/ACM Trans. Netw.
Tianjian Dong, Qi Qi, Jingyu Wang, Zirui Zhuang, Haifeng Sun, Jianxin Liao, Zhu Han
2023 A conf
ECAI
Yiming Zhong, Haifeng Sun, Jiachang Hao, Jing Wang, Cheng Zhou, Qi Qi, Jingyu Wang, Jianxin Liao
2023 A* conf
AAAI
Pengfei Ren, Yuchen Chen, Jiachang Hao, Haifeng Sun, Qi Qi, Jingyu Wang, Jianxin Liao
2023 J jnl
Int. J. Intell. Syst.
Ming Liu, Jianxin Liao, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Cong Liu
2023 A conf
WSDM
Wei Tang, Fenglong Su, Haifeng Sun, Qi Qi, Jingyu Wang, Shimin Tao, Hao Yang
2022 J jnl
IEEE Trans. Image Process.
Pengfei Ren, Haifeng Sun, Jiachang Hao, Qi Qi, Jingyu Wang, Jianxin Liao
2022 conf
ICSOC Workshops
Qianlong Fu, Dezhi Chen, Haifeng Sun, Qi Qi, Jingyu Wang, Jianxin Liao
2022 conf
ECCV (36)
Jiachang Hao, Haifeng Sun, Pengfei Ren, Jingyu Wang, Qi Qi, Jianxin Liao
2022 J jnl
CoRR
Jiachang Hao, Haifeng Sun, Pengfei Ren, Jingyu Wang, Qi Qi, Jianxin Liao
2022 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Haifeng Sun, Jiaqing Xu, Jingyu Wang, Qi Qi, Ce Ge, Jianxin Liao
2022 conf
HPCC/DSS/SmartCity/DependSys
Long Zhang, Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Cong Liu, Jianxin Liao
2022 conf
StudentWorkshop@CoNEXT
Long Zhang, Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2022 J jnl
IEEE Trans. Image Process.
Ce Ge, Haifeng Sun, Yi-Zhe Song, Zhanyu Ma, Jianxin Liao
2022 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Bing Ma, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao
2022 B conf
ICMR
Shaoxiong Zhu, Qi Qi, Zirui Zhuang, Jingyu Wang, Haifeng Sun, Jianxin Liao
2022 J jnl
IEEE J. Sel. Areas Commun.
Wanyi Ning, Haifeng Sun, Xiaoyuan Fu, Xiang Yang, Qi Qi, Jingyu Wang, Jianxin Liao, Zhu Han
2022 J jnl
IEEE Trans. Cloud Comput.
Haifeng Sun, Zhiyi Gui, Song Guo, Qi Qi, Jingyu Wang, Jianxin Liao
2022 J jnl
IEEE Trans. Cogn. Commun. Netw.
Tianjian Dong, Zirui Zhuang, Qi Qi, Jingyu Wang, Haifeng Sun, F. Richard Yu, Tao Sun, Cheng Zhou, Jianxin Liao
2022 J jnl
IEEE Trans. Emerg. Top. Comput.
Qi Qi, Yan Lu, Jiashi Li, Jing-Yu Wang, Haifeng Sun, Jianxin Liao
2022 A* conf
CVPR
Pengfei Ren, Haifeng Sun, Jiachang Hao, Jingyu Wang, Qi Qi, Jianxin Liao
2022 B conf
COLING
Longfeng Li, Haifeng Sun, Qi Qi, Jingyu Wang, Jing Wang, Jianxin Liao
2022 J jnl
CoRR
Xiang Yang, Zikang Xu, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao, Song Guo
2022 conf
INFOCOM Workshops
Haoran Zhao, Bo He, He Zhou, Jiangyin Zhou, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao
2022 J jnl
Neurocomputing
Jiachang Hao, Haifeng Sun, Pengfei Ren, Jingyu Wang, Qi Qi, Jianxin Liao
2022 J jnl
IEEE Wirel. Commun.
Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Haibo Zhou, Long Zhang, Kaixin Liu, Jianxin Liao
2022 A* conf
SIGCOMM
Huangxun Chen, Yukai Miao, Li Chen, Haifeng Sun, Hong Xu, Libin Liu, Gong Zhang, Wei Wang
2022 J jnl
IEEE Trans. Cloud Comput.
Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2021 C conf
IPCCC
Jianan Chen, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao
2021 J jnl
IEEE Commun. Mag.
Jie Xu, F. Richard Yu, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2021 C conf
KSEM
Ming Liu, Jianxin Liao, Jingyu Wang, Qi Qi, Haifeng Sun
2021 A* conf
ACM Multimedia
Jiaqing Xu, Haifeng Sun, Qi Qi, Jingyu Wang, Ce Ge, Lejian Zhang, Jianxin Liao
2021 J jnl
Neurocomputing
Wei Tang, Jingyu Wang, Qi Qi, Haifeng Sun, Shimin Tao, Hao Yang
2021 J jnl
IEEE Trans. Netw. Serv. Manag.
Bo He, Jing-Yu Wang, Qi Qi, Haifeng Sun, Jianxin Liao, Chunning Du, Xiang-Yang Alex Liu, Zhu Han
2021 J jnl
J. Grid Comput.
Jie Xu, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao, Di Yang
2021 C conf
KSEM
Zhengyang Mu, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao
2021 J jnl
IEEE Trans. Netw. Serv. Manag.
Tianjian Dong, Qi Qi, Jingyu Wang, Alex X. Liu, Haifeng Sun, Zirui Zhuang, Jianxin Liao
2021 conf
ISPA/BDCloud/SocialCom/SustainCom
Zhiyi Gui, Xiang Yang, Hao Yang, Wei Li, Lei Zhang, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao
2021 conf
CCKS
Shimin Tao, Ying Qin, Yimeng Chen, Chunning Du, Haifeng Sun, Weibin Meng, Yanghua Xiao, Jiaxin Guo, Chang Su, Minghan Wang, Min Zhang, Yuxia Wang, Hao Yang
2021 A conf
BMVC
Xiaozheng Zheng, Pengfei Ren, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao
2021 conf
ICICT (1)
Lingqi Guo, Haifeng Sun, Qi Qi, Jingyu Wang
2021 J jnl
J. Netw. Comput. Appl.
Jie Xu, Jingyu Wang, Qi Qi, Jianxin Liao, Haifeng Sun, Zhu Han, Tonghong Li
2021 conf
IEEE BigData
Daixuan Cheng, Haifeng Sun, Qi Qi, Jingyu Wang, Yan Qi
2021 J jnl
Inf. Process. Manag.
Haifeng Sun, Daixuan Cheng, Jingyu Wang, Qi Qi, Jianxin Liao
2021 A* conf
ICDE
Guojun Chu, Jingyu Wang, Qi Qi, Haifeng Sun, Shimin Tao, Jianxin Liao
2021 A* conf
ISMAR
Xiaozheng Zheng, Pengfei Ren, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao
2021 C conf
ACML
Yiwen Zhan, Yuchen Chen, Pengfei Ren, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao
2021 J jnl
IEEE Netw.
Qi Qi, Runye Shen, Jingyu Wang, Haifeng Sun, Song Guo, Jianxin Liao
2021 J jnl
Neurocomputing
Pengfei Ren, Haifeng Sun, Weiting Huang, Jiachang Hao, Daixuan Cheng, Qi Qi, Jingyu Wang, Jianxin Liao
2021 J jnl
Appl. Soft Comput.
Chunning Du, Jingyu Wang, Haifeng Sun, Qi Qi, Jianxin Liao
2020 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Qi Qi, Xiaolu Wang, Haifeng Sun, Jingyu Wang, Xiao Liang, Jianxin Liao
2020 A* conf
AAAI
Weiting Huang, Pengfei Ren, Jingyu Wang, Qi Qi, Haifeng Sun
2020 J jnl
CoRR
Weiting Huang, Pengfei Ren, Jingyu Wang, Qi Qi, Haifeng Sun
2020 A* conf
ACL
Chunning Du, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao
2020 J jnl
EURASIP J. Wirel. Commun. Netw.
Zhifeng Han, Jianxin Liao, Qi Qi, Haifeng Sun, Jingyu Wang
2020 B conf
ICPP
Bo He, Jingyu Wang, Qi Qi, Haifeng Sun, Zirui Zhuang, Cong Liu, Jianxin Liao
2020 A conf
ECAI
Ming Liu, Jianxin Liao, Jingyu Wang, Qi Qi, Haifeng Sun
2020 conf
ICC
Shiqi Li, Qi Qi, Jingyu Wang, Haifeng Sun, Yujian Li, F. Richard Yu
2020 J jnl
Comput. Speech Lang.
Bing Ma, Qi Qi, Jianxin Liao, Haifeng Sun, Jingyu Wang
2020 conf
ECCV (23)
Anil Armagan, Guillermo Garcia-Hernando, Seungryul Baek, Shreyas Hampali, Mahdi Rad, Zhaohui Zhang, Shipeng Xie, Mingxiu Chen, Boshen Zhang, Fu Xiong, Yang Xiao, Zhiguo Cao, Junsong Yuan, Pengfei Ren, Weiting Huang, Haifeng Sun, Marek Hrúz, Jakub Kanis, Zdenek Krnoul, Qingfu Wan, Shile Li, Linlin Yang, Dongheui Lee, Angela Yao, Weiguo Zhou, Sijia Mei, Yunhui Liu, Adrian Spurr, Umar Iqbal, Pavlo Molchanov, Philippe Weinzaepfel, Romain Brégier, Grégory Rogez, Vincent Lepetit, Tae-Kyun Kim
2020 J jnl
CoRR
Anil Armagan, Guillermo Garcia-Hernando, Seungryul Baek, Shreyas Hampali, Mahdi Rad, Zhaohui Zhang, Shipeng Xie, Mingxiu Chen, Boshen Zhang, Fu Xiong, Yang Xiao, Zhiguo Cao, Junsong Yuan, Pengfei Ren, Weiting Huang, Haifeng Sun, Marek Hrúz, Jakub Kanis, Zdenek Krnoul, Qingfu Wan, Shile Li, Linlin Yang, Dongheui Lee, Angela Yao, Weiguo Zhou, Sijia Mei, Yunhui Liu, Adrian Spurr, Umar Iqbal, Pavlo Molchanov, Philippe Weinzaepfel, Romain Brégier, Grégory Rogez, Vincent Lepetit, Tae-Kyun Kim
2020 A conf
ECAI
Xiaolu Wang, Haifeng Sun, Qi Qi, Jingyu Wang
2020 J jnl
IEEE Trans. Veh. Technol.
Qi Qi, Lingxin Zhang, Jingyu Wang, Haifeng Sun, Zirui Zhuang, Jianxin Liao, F. Richard Yu
2020 Misc conf
ICASSP
Bing Ma, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao
2020 J jnl
IEEE Internet Things J.
Haifeng Sun, Shiqi Li, F. Richard Yu, Qi Qi, Jingyu Wang, Jianxin Liao
2020 J jnl
IEEE Syst. J.
Zirui Zhuang, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2020 J jnl
Comput. Ind.
Ce Ge, Jing Wang, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2020 J jnl
IEEE Trans. Multim.
Tongtong Feng, Haifeng Sun, Qi Qi, Jingyu Wang, Jianxin Liao
2019 conf
IEEE BigData
Bing Ma, Haifeng Sun, Jingyu Wang, Qi Qi
2019 B conf
IJCNN
Shuainan Wang, Tong Xu, Wei Li, Haifeng Sun
2019 conf
EMNLP/IJCNLP (1)
Chunning Du, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao, Tong Xu, Ming Liu
2019 J jnl
IEEE Access
Haifeng Sun, Yunming Xiao, Jing Wang, Jingyu Wang, Qi Qi, Jianxin Liao, Xiulei Liu
2019 conf
EMNLP/IJCNLP (1)
Chunning Du, Haifeng Sun, Jingyu Wang, Qi Qi, Jianxin Liao, Chun Wang, Bing Ma
2019 J jnl
IEEE Trans. Veh. Technol.
Qi Qi, Jingyu Wang, Zhanyu Ma, Haifeng Sun, Yufei Cao, Lingxin Zhang, Jianxin Liao
2019 conf
IEEE BigData
Lingxin Zhang, Qi Qi, Jingyu Wang, Haifeng Sun, Jianxin Liao
2019 A* conf
CVPR
Jiashi Li, Qi Qi, Jingyu Wang, Ce Ge, Yujian Li, Zhangzhang Yue, Haifeng Sun
2019 J jnl
CoRR
Jiashi Li, Qi Qi, Jingyu Wang, Ce Ge, Yujian Li, Zhangzhang Yue, Haifeng Sun
2019 J jnl
IEEE Access
Qi Qi, Qiming Huo, Jingyu Wang, Haifeng Sun, Yufei Cao, Jianxin Liao
2019 J jnl
Wirel. Commun. Mob. Comput.
Zhifeng Han, Jianxin Liao, Qi Qi, Haifeng Sun, Jingyu Wang
2019 A conf
BMVC
Pengfei Ren, Haifeng Sun, Qi Qi, Jingyu Wang, Weiting Huang
2018 B conf
ICCCN
Zhenguang Yu, Jingyu Wang, Qi Qi, Haifeng Sun, Jian Zou
2018 C conf
IPCCC
Zirui Zhuang, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2018 C conf
CollaborateCom
Bo He, Jingyu Wang, Qi Qi, Haifeng Sun
2018 A conf
ICWS
Jie Xu, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2018 J jnl
Wirel. Pers. Commun.
Qi Qi, Jingyu Wang, Yufei Cao, Jing Wang, Haifeng Sun, Jianxin Liao
2018 B conf
LCN
Yunming Xiao, Haifeng Sun, Zirui Zhuang, Jingyu Wang, Qi Qi
2018 conf
MLSP
Jun Xu, Jingyu Wang, Qi Qi, Haifeng Sun, Bo He
2018 B conf
ICCCN
Jian Zou, Jingyu Wang, Qi Qi, Haifeng Sun, Zhenguang Yu, Jun Xu
2018 A conf
BMVC
Ce Ge, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2018 B conf
LCN
Zirui Zhuang, Jingyu Wang, Qi Qi, Haifeng Sun, Jianxin Liao
2018 B conf
SECON
Jun Xu, Jingyu Wang, Qi Qi, Haifeng Sun, Bo He
2018 J jnl
Neurocomputing
Haifeng Sun, Jianxin Liao, Jingyu Wang, Qi Qi
2018 J jnl
IEEE Access
Jianxin Liao, Tongcun Liu, Meilian Liu, Jingyu Wang, Yulong Wang, Haifeng Sun
2018 conf
KSEM (1)
Qiming Huo, Jingyu Wang, Qi Qi, Haifeng Sun, Ce Ge, Yu Zhao
2017 Misc conf
DICTA
Hesen Chen, Jingyu Wang, Qi Qi, Yujian Li, Haifeng Sun
2017 J jnl
Comput. Networks
Jianxin Liao, Haifeng Sun, Jingyu Wang, Qi Qi, Kai Li, Tonghong Li
2016 J jnl
IEEE Trans. Smart Grid
Haifeng Sun, Zhaoyu Wang, Jianhui Wang, Zhen Huang, NichelleLe Carrington, Jianxin Liao
2016 J jnl
Multim. Tools Appl.
Jianxin Liao, Di Yang, Tonghong Li, Qi Qi, Jingyu Wang, Haifeng Sun
2014 B conf
ICPADS
Di Yang, Jianxin Liao, Qi Qi, Jingyu Wang, Haifeng Sun, Shan Jiang
2014 C conf
APNOMS
Di Yang, Jianxin Liao, Jingyu Wang, Qi Qi, Haifeng Sun
2012 A conf
ICWS
Jianxin Liao, Xiulei Liu, Xiaomin Zhu, Tong Xu, Jingyu Wang, Haifeng Sun
redb/extractors/decompiler/bninja/analysis/disassembly.py
← Index redb/extractors/decompiler/bninja/analysis/disassembly.py python
import re
import time

import binaryninja
from binaryninja.enums import (
    InstructionTextTokenType,
)

# Support both package and standalone imports
try:
    from ..function_type import FunctionTypeAnalysis
    from ..utils.hashes import calculate_sha256
except ImportError:
    # Fallback to absolute imports (for multiprocessing spawned processes)
    from redb.extractors.decompiler.bninja.function_type import FunctionTypeAnalysis
    from redb.extractors.decompiler.bninja.utils.hashes import calculate_sha256


class DisassemblyAnalysis:
    INVALID_STACK_SIZE = -1

    def __init__(self, arch, function, bv, logger):
        self.arch = arch
        self.function = function
        self.bv = bv
        self.logger = logger
        if self.function is not None and hasattr(self.function, "instructions"):
            self.instructions = self.function.instructions
        else:
            self.instructions = []
        self.errors = []
        return

    def log_error(
        self, message, function_name, address, exception=None, error_location="unknown"
    ):
        """Log an error during processing."""
        error_msg = f"Error in function {function_name} at {address}: {message}"
        if exception:
            error_msg += f" - {str(exception)}"
        self.logger.error(error_msg)

        # Add to errors list
        error = {
            "function_name": function_name,
            "function_address": str(address),
            "error_location": error_location,
            "error_message": message,
            "error_details": str(exception) if exception else "",
            "error_type": type(exception).__name__ if exception else "Unknown",
            "timestamp": int(time.time() * 1000),
        }
        self.errors.append(error)

    def get_json(self):
        try:
            # Build disassembly string and normalized versions
            disassembly_builder = [[], []]  # Address and instruction text

            # Create a dictionary mapping addresses to instruction tokens
            instr_tokens_by_addr = {}
            for instr_tokens, addr in self.instructions:
                instr_tokens_by_addr[addr] = instr_tokens

            addresses = sorted(instr_tokens_by_addr.keys())
            for address in addresses:
                # Original disassembly with addresses
                # instr_tokens, address = instruction
                instr_tokens = instr_tokens_by_addr[address]
                disassembly_builder[0].append(address)
                disassembly_builder[1].append("".join(map(str, instr_tokens)))

            # Join with newlines
            disassembly_str = "\n".join(disassembly_builder[1])
            disassembly_with_addresses = "\n".join(
                f"{hex(address)}: {instr_text}"
                for address, instr_text in zip(
                    disassembly_builder[0], disassembly_builder[1], strict=False
                )
            )

            disassembly_json = {
                "disassembled_function_hash": calculate_sha256(disassembly_str),
                "disassembled_function": disassembly_with_addresses,
                "disassembled_function_no_addresses": disassembly_str,
                "disassembled_function_name": self.function.name,
                "disassembled_function_address": self.function.start,
                "instructions_count": len(instr_tokens_by_addr.keys()),
                "function_type": FunctionTypeAnalysis(self.function)
                .get_function_type()
                .name,
            }

            # Add additional metrics
            type_frequencies = self.collect_instruction_types()
            disassembly_json["instructions_types"] = list(type_frequencies.keys())
            disassembly_json["control_flow_count"] = (
                self.count_control_flow_instructions()
            )
            disassembly_json["memory_access_pattern"] = self.collect_memory_patterns()
            disassembly_json["register_usage"] = self.collect_register_usage()
            disassembly_json["data_references_count"] = self.count_data_references()
            disassembly_json["max_block_size"] = self.compute_max_block_size()
            disassembly_json["num_calls"] = self.compute_num_calls()
            disassembly_json["stack_size"] = self.estimate_stack_size()

            return disassembly_json, self.errors

        except Exception as e:
            self.log_error(
                "Failed to collect instruction types",
                self.function.name,
                self.function.start,
                e,
                "collect_instruction_types",
            )
            raise ValueError(e) from e

    def collect_instruction_types(self):
        """Collect instruction type frequencies from a function."""
        type_frequencies = {}

        try:
            # Iterate through all instructions in the function
            for instruction in self.instructions:
                instr_tokens = instruction[0]  # Get the instruction tokens

                # Extract the mnemonic from the instruction tokens
                mnemonic = None
                for token in instr_tokens:
                    if token.type == InstructionTextTokenType.InstructionToken:
                        mnemonic = token.text
                        break

                if not mnemonic:
                    continue

                # Use normalize_opcode to get standardized opcode
                normalized = self.normalize_opcode(mnemonic)

                # Get category from opcode_categories or use the instruction type directly
                category = self.arch.opcode_categories.get(normalized)
                if category:
                    self._increment_frequency(type_frequencies, category)

        except Exception as e:
            self.log_error(
                "Failed to collect instruction types",
                self.function.name,
                self.function.start,
                e,
                "collect_instruction_types",
            )

        return type_frequencies

    def normalize_opcode(self, opcode):
        return opcode.upper()

    def collect_memory_patterns(self):
        """Collect memory access patterns from a function."""
        patterns = []
        try:
            for instruction in self.instructions:
                instr_tokens = instruction[0]

                # We need to capture memory operands between BeginMemoryOperandToken and EndMemoryOperandToken
                in_memory_operand = False
                memory_operand_text = ""

                for token in instr_tokens:
                    if token.type == InstructionTextTokenType.BeginMemoryOperandToken:
                        in_memory_operand = True
                        memory_operand_text = ""
                    elif token.type == InstructionTextTokenType.EndMemoryOperandToken:
                        in_memory_operand = False

                        # Process the captured memory operand text
                        if memory_operand_text:
                            # Categorize memory access pattern
                            if (
                                "+" in memory_operand_text
                                and "*" in memory_operand_text
                            ):
                                if "MEM_SCALED_INDEX" not in patterns:
                                    patterns.append("MEM_SCALED_INDEX")
                            elif (
                                "+" in memory_operand_text or "-" in memory_operand_text
                            ):
                                if "MEM_BASE_OFFSET" not in patterns:
                                    patterns.append("MEM_BASE_OFFSET")
                            else:
                                if "MEM_DIRECT" not in patterns:
                                    patterns.append("MEM_DIRECT")

                            # Check for stack accesses
                            if any(
                                reg in memory_operand_text
                                for reg in ["SP", "BP", "ESP", "EBP", "RSP", "RBP"]
                            ):
                                if "MEM_STACK" not in patterns:
                                    patterns.append("MEM_STACK")
                            # Check for string operations
                            elif (
                                any(
                                    reg in memory_operand_text
                                    for reg in ["SI", "DI", "ESI", "EDI", "RSI", "RDI"]
                                )
                                and "MEM_STRING" not in patterns
                            ):
                                patterns.append("MEM_STRING")
                    elif in_memory_operand:
                        # Accumulate token text while inside a memory operand
                        memory_operand_text += token.text
        except Exception as e:
            self.log_error(
                "Failed to collect memory patterns",
                self.function.name,
                self.function.start,
                e,
                "collect_memory_patterns",
            )
        return patterns

    def collect_register_usage(self):
        """Collect register usage from a function."""
        registers = []
        try:
            # Define register groups we're interested in tracking
            register_groups = {
                "GPR": [
                    "RAX",
                    "RBX",
                    "RCX",
                    "RDX",
                    "R9",
                    "R10",
                    "R11",
                    "R12",
                    "R13",
                    "R14",
                    "R15",
                    "EAX",
                    "EBX",
                    "ECX",
                    "EDX",
                    "R9D",
                    "R10D",
                    "R11D",
                    "R12D",
                    "R13D",
                    "R14D",
                    "AX",
                    "BX",
                    "CX",
                    "DX",
                ],
                "GPR_INDEX": ["RSI", "RDI", "ESI", "EDI", "SI", "DI"],
                "GPR_STACK": ["RSP", "RBP", "ESP", "EBP", "SP", "BP"],
                "SIMD": ["XMM", "YMM", "ZMM"],
                "FPU": ["ST", "ST0", "ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7"],
                "FLAGS": ["FLAGS", "EFLAGS", "RFLAGS"],
                "CONTROL_REGISTER": ["CR0", "CR2", "CR3", "CR4", "CR8"],
                "DEBUG_REGISTER": ["DR0", "DR1", "DR2", "DR3", "DR6", "DR7"],
            }

            # Extract registers from instructions
            for instruction in self.instructions:
                instr_tokens = instruction[0]
                for token in instr_tokens:
                    if token.type == InstructionTextTokenType.RegisterToken:
                        reg = token.text.upper()
                        # Check which group this register belongs to
                        for group, regs in register_groups.items():
                            # if any(r in reg for r in regs) or any(reg.startswith(r) for r in regs):
                            if any(reg == r or reg.startswith(r) for r in regs):
                                if group not in registers:
                                    registers.append(group)
                                break
        except Exception as e:
            self.log_error(
                "Failed to collect register usage",
                self.function.name,
                self.function.start,
                e,
                "collect_register_usage",
            )
        return registers

    def count_data_references(self):
        """Count the number of data references in a function."""
        count = 0
        try:

            if self.function.mlil is None:
                return 0

            for block in self.function.mlil:
                for instr in block:
                    instr_str = str(instr)
                    logged = False
                    src = None

                    # Check for constant dereferencing or symbolic refs
                    if hasattr(instr, "src"):
                        src = instr.src
                        if isinstance(
                            src,
                            (
                                binaryninja.mediumlevelil.MediumLevelILConstPtr,
                                binaryninja.mediumlevelil.MediumLevelILConst,
                            ),
                        ):
                            count += 1
                            logged = True

                    # Check full string for hardcoded addresses or symbol-like tokens
                    if re.search(r"\b0x[0-9A-Fa-f]{3,}\b", instr_str) and not logged:
                        count += 1
                        logged = True

                    if "_" in instr_str and not logged:
                        count += 1
                        logged = True

                    # Only check for MediumLevelILConstPtr if src exists
                    if src is not None and isinstance(
                        src, binaryninja.mediumlevelil.MediumLevelILConstPtr
                    ):
                        addr = src.constant
                        # Check if address is in data sections
                        segment = self.bv.get_segment_at(addr)
                        if segment and segment.writable:
                            # print(f"[{function.name}] Matched data section reference in: {instr_str}")
                            count += 1
                            logged = True
        except Exception as e:
            self.logger.warning(
                f"Failed to use MLIL for counting data references in {self.function.name} at {self.function.start}: {e}"
            )
        return count

    def compute_max_block_size(self):
        """Compute the maximum basic block size in a function."""
        max_size = 0
        if self.function is None:
            return 0

        for block in self.function.basic_blocks:
            try:
                # Count instructions in this block using the direct length approach
                # This avoids UTF-8 decoding issues entirely
                block_size = block.instruction_count
                max_size = max(max_size, block_size)
            except Exception as e:
                self.log_error(
                    f"[HandledError] computing max block size: {e}",
                    self.function.name,
                    self.function.start,
                    e,
                    "compute_max_block_size",
                )
        return max_size

    def count_control_flow_instructions(self):
        """Count the number of control flow instructions in a function."""
        count = 0
        try:
            for instruction in self.instructions:
                instr_tokens = instruction[0]
                if self.arch.is_control_flow_instruction(instr_tokens):
                    count += 1
        except Exception as e:
            self.log_error(
                "Failed to count control flow instructions",
                self.function.name,
                self.function.start,
                e,
                "count_control_flow_instructions",
            )
        return count

    def compute_num_calls(self) -> int:
        """Compute the number of call instructions in a function."""
        num_calls = 0
        try:
            for instruction in self.instructions:
                instr_tokens = instruction[0]
                # Extract the mnemonic
                for token in instr_tokens:
                    if token.type == InstructionTextTokenType.InstructionToken:
                        if token.text.upper() == "CALL":
                            num_calls += 1
                        break
        except Exception as e:
            self.log_error(
                "Failed to compute number of calls",
                self.function.name,
                self.function.start,
                e,
                "compute_num_calls",
            )
        return num_calls

    def _increment_frequency(self, frequencies, type_name):
        """Increment the frequency count for an instruction type."""
        if type_name in frequencies:
            frequencies[type_name] += 1
        else:
            frequencies[type_name] = 1

    def estimate_stack_size(self):
        """Estimate the stack size used by a function."""
        try:
            # Binary Ninja provides a stack adjustment value for functions
            # Need to convert OffsetWithConfidence to a plain integer
            stack_adjust = self.function.stack_adjustment
            if hasattr(stack_adjust, "value"):  # Handle OffsetWithConfidence objects
                return stack_adjust.value
            return stack_adjust
        except Exception as e:
            self.log_error(
                "Failed to estimate stack size",
                self.function.name,
                self.function.start,
                e,
                "estimate_stack_size",
            )
            return self.INVALID_STACK_SIZE