Xian-Ling Mao

176 papers A* 24A 3B 4C 1Journal 100Unranked 40
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Guo-Biao Zhang, Ding-Yuan Liu, Da-Yi Wu, Tian Lan, Heyan Huang, Zhijing Wu, Xian-Ling Mao
2026 J jnl
CoRR
Yang-Hao Zhou, Haitian Li, Rexar Lin, Heyan Huang, Jinxing Zhou, Changsen Yuan, Tian Lan, Ziqin Zhou, Yudong Li, Jiajun Xu, Jingyun Liao, Yi-Ming Cheng, Xuefeng Chen, Xian-Ling Mao, Yousheng Feng
2026 ed.
NLPCC (1)
Xian-Ling Mao, Zhaochun Ren, Muyun Yang
2026 ed.
NLPCC (2)
Xian-Ling Mao, Zhaochun Ren, Muyun Yang
2026 ed.
NLPCC (3)
Xian-Ling Mao, Zhaochun Ren, Muyun Yang
2026 ed.
NLPCC (4)
Xian-Ling Mao, Zhaochun Ren, Muyun Yang
2026 A* conf
AAAI
Guo-Biao Zhang, Zhijing Wu, Tian Lan, Ding-Yuan Liu, Yu-Shi Zhu, Xian-Ling Mao
2025 C conf
CSCWD
Sihan Guo, Xian-Ling Mao, Heyan Huang
2025 J jnl
Knowl. Based Syst.
Hongli Mao, Xian-Ling Mao, Hanlin Tang, Xiaoyan Gao, Chun Xu, Heyan Huang
2025 J jnl
CoRR
Tian Lan, Yang-Hao Zhou, Zi-Ao Ma, Fanshu Sun, Rui-qing Sun, Junyu Luo, Rong-Cheng Tu, Heyan Huang, Chen Xu, Zhijing Wu, Xian-Ling Mao
2025 J jnl
ACM Trans. Multim. Comput. Commun. Appl.
Yang-Hao Zhou, Heyan Huang, Cunhan Guo, Rong-Cheng Tu, Zeyu Xiao, Bo Wang, Xian-Ling Mao
2025 J jnl
ACM Trans. Inf. Syst.
Heng-Da Xu, Xian-Ling Mao, Fanshu Sun, Tian-Yi Che, Chun Xu, Heyan Huang
2025 conf
NLPCC (2)
Shu-Hang Liu, Tian Lan, Yun-He Zhang, Ran Liu, Heyan Huang, Chen Xu, Zhijing Wu, Xian-Ling Mao
2025 conf
ACL (1)
Rong-Cheng Tu, Zi-Ao Ma, Tian Lan, Yuehao Zhao, Heyan Huang, Xian-Ling Mao
2025 J jnl
Inf. Process. Manag.
Yi-Kun Tang, Heyan Huang, Xuewen Shi, Xian-Ling Mao
2025 J jnl
Knowl. Based Syst.
Ran Liu, Xian-Ling Mao, Heyan Huang
2025 A* conf
AAAI
Jin-Yu Liu, Xian-Ling Mao, Tian-Yi Che, Rong-Cheng Tu
2025 A* conf
ACM Multimedia
Shu-Xun Yang, Xian-Ling Mao, Heyan Huang
2025 J jnl
CoRR
Rui-qing Sun, Xingshan Yao, Tian Lan, Jia-Ling Shi, Chenhao Cui, Hui-Yang Zhao, Zhijing Wu, Chen Yang, Xian-Ling Mao
2025 J jnl
Knowl. Based Syst.
Yu-Ming Shang, Hongli Mao, Tian Tian, Heyan Huang, Xian-Ling Mao
2025 J jnl
CoRR
Rui-qing Sun, Ang Li, Zhijing Wu, Tian Lan, Qianyu Lu, Xingshan Yao, Chen Xu, Xian-Ling Mao
2025 J jnl
CoRR
Puhai Yang, Heyan Huang, Heng-Da Xu, Fanshu Sun, Xian-Ling Mao, Chaoxu Mu
2025 J jnl
Expert Syst. Appl.
Chun Xu, Xian-Ling Mao, Tian-Yi Che, Hongli Mao, Heyan Huang
2025 conf
ACL (1)
Yi-Fan Lu, Xian-Ling Mao, Tian Lan, Tong Zhang, Yu-Shi Zhu, Heyan Huang
2025 J jnl
CoRR
Yi-Fan Lu, Xian-Ling Mao, Tian Lan, Tong Zhang, Yu-Shi Zhu, Heyan Huang
2025 A* conf
EMNLP
Heng-Da Xu, Xian-Ling Mao, Fanshu Sun, Tian-Yi Che, Cheng-Xin Xin, Heyan Huang
2025 J jnl
CoRR
Zi-Ao Ma, Tian Lan, Rong-Cheng Tu, Shu-Hang Liu, Heyan Huang, Zhijing Wu, Chen Xu, Xian-Ling Mao
2025 J jnl
IEEE Trans. Knowl. Data Eng.
Shu-Xun Yang, Xian-Ling Mao, Yu-Ming Shang, Heyan Huang
2025 conf
EMNLP (Findings)
Tian Lan, Wenwei Zhang, Chengqi Lyu, Shuaibin Li, Chen Xu, Heyan Huang, Dahua Lin, Xian-Ling Mao, Kai Chen
2024 J jnl
CoRR
Tian-Yi Che, Xian-Ling Mao, Chun Xu, Cheng-Xin Xin, Heng-Da Xu, Jin-Yu Liu, Heyan Huang
2024 A* conf
KDD
Tian-Yi Che, Xian-Ling Mao, Tian Lan, Heyan Huang
2024 J jnl
CoRR
Rong-Cheng Tu, Zi-Ao Ma, Tian Lan, Yuehao Zhao, Heyan Huang, Xian-Ling Mao
2024 J jnl
CoRR
Yi-Fan Lu, Xian-Ling Mao, Tian Lan, Chen Xu, Heyan Huang
2024 A* conf
WWW
Yi-Kun Tang, Heyan Huang, Xuewen Shi, Xian-Ling Mao
2024 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Zewen Chi, Heyan Huang, Luyang Liu, Yu Bai, Xiaoyan Gao, Xian-Ling Mao
2024 A* conf
NeurIPS
Tian Lan, Wenwei Zhang, Chen Xu, Heyan Huang, Dahua Lin, Kai Chen, Xian-Ling Mao
2024 J jnl
Knowl. Based Syst.
Heng-Da Xu, Xian-Ling Mao, Puhai Yang, Fanshu Sun, Heyan Huang
2024 conf
NLPCC (3)
Guanqi Zhao, Xian-Ling Mao, Rong-Cheng Tu, Wenjin Ji, Heyan Huang
2024 J jnl
Inf. Process. Manag.
Heyan Huang, Yi-Kun Tang, Xuewen Shi, Xian-Ling Mao
2024 J jnl
CoRR
Jin-Yu Liu, Xian-Ling Mao, Tian-Yi Che, Rong-Cheng Tu
2024 J jnl
CoRR
Yi-Fan Lu, Xian-Ling Mao, Bo Wang, Xiao Liu, Heyan Huang
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Ziyang Wang, Wei Wei, Shanshan Feng, Xian-Ling Mao, Minghui Qiu, Dangyang Chen, Rui Fang
2024 J jnl
Knowl. Based Syst.
Yiting Yu, Zanbo Wang, Wei Wei, Ruihan Zhang, Xian-Ling Mao, Shanshan Feng, Fei Wang, Zhiyong He, Sheng Jiang
2024 J jnl
ACM Trans. Inf. Syst.
Tian Lan, Deng Cai, Yan Wang, Yixuan Su, Heyan Huang, Xian-Ling Mao
2024 J jnl
Pattern Recognit.
Ziyang Wang, Wei Wei, Ding Zou, Yifan Liu, Xiao-Li Li, Xian-Ling Mao, Minghui Qiu
2024 J jnl
Knowl. Based Syst.
Chun Xu, Xian-Ling Mao, Cheng-Xin Xin, Yu-Ming Shang, Tian-Yi Che, Hongli Mao, Heyan Huang
2024 conf
NAACL-HLT
Yuxiang Nie, Heyan Huang, Xian-Ling Mao, Lizi Liao
2024 J jnl
CoRR
Yuxiang Nie, Heyan Huang, Xian-Ling Mao, Lizi Liao
2024 J jnl
CoRR
Zi-Ao Ma, Tian Lan, Rong-Cheng Tu, Yong Hu, Heyan Huang, Xian-Ling Mao
2024 J jnl
Knowl. Based Syst.
Heyan Huang, Puhai Yang, Wei Wei, Shumin Shi, Xian-Ling Mao
2024 conf
ACL (Findings)
Shixuan Fan, Wei Wei, Xiaofei Wen, Xian-Ling Mao, Jixiong Chen, Dangyang Chen
2024 A* conf
IJCAI
Shixuan Fan, Wei Wei, Wendi Li, Xian-Ling Mao, Wenfeng Xie, Dangyang Chen
2024 J jnl
CoRR
Shixuan Fan, Wei Wei, Wendi Li, Xian-Ling Mao, Wenfeng Xie, Dangyang Chen
2024 conf
ACL (1)
Le Zhuo, Zewen Chi, Minghao Xu, Heyan Huang, Jianan Zhao, Heqi Zheng, Conghui He, Xian-Ling Mao, Wentao Zhang
2024 J jnl
CoRR
Le Zhuo, Zewen Chi, Minghao Xu, Heyan Huang, Heqi Zheng, Conghui He, Xian-Ling Mao, Wentao Zhang
2024 conf
ACL (1)
Heng-Da Xu, Xian-Ling Mao, Puhai Yang, Fanshu Sun, Heyan Huang
2024 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Puhai Yang, Heyan Huang, Shumin Shi, Xian-Ling Mao
2024 conf
LREC/COLING
Xiao Zhang, Heqi Zheng, Yuxiang Nie, Heyan Huang, Xian-Ling Mao
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Rong-Cheng Tu, Xian-Ling Mao, Jinyu Liu, Yatai Ji, Wei Wei, Heyan Huang
2024 A* conf
AAAI
Hongli Mao, Xian-Ling Mao, Hanlin Tang, Yuming Shang, Heyan Huang
2024 A* conf
IJCAI
Hongli Mao, Xian-Ling Mao, Hanlin Tang, Yu-Ming Shang, Xiaoyan Gao, Ao-Jie Ma, Heyan Huang
2024 J jnl
ACM Trans. Inf. Syst.
Tian Lan, Xian-Ling Mao, Wei Wei, Xiaoyan Gao, Heyan Huang
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Ding Zou, Sen Zhao, Wei Wei, Xian-Ling Mao, Ruixuan Li, Dangyang Chen, Rui Fang, Yuanyuan Fu
2024 J jnl
CoRR
Tian Lan, Wenwei Zhang, Chengqi Lyu, Shuaibin Li, Chen Xu, Heyan Huang, Dahua Lin, Xian-Ling Mao, Kai Chen
2023 A* conf
IJCAI
Daowan Peng, Wei Wei, Xian-Ling Mao, Yuanyuan Fu, Dangyang Chen
2023 J jnl
CoRR
Daowan Peng, Wei Wei, Xian-Ling Mao, Yuanyuan Fu, Dangyang Chen
2023 conf
ACL (Findings)
Yuxiang Nie, Heyan Huang, Wei Wei, Xian-Ling Mao
2023 J jnl
CoRR
Yuxiang Nie, Heyan Huang, Wei Wei, Xian-Ling Mao
2023 conf
ACL (1)
Xiao Zhang, Heyan Huang, Zewen Chi, Xian-Ling Mao
2023 conf
ACL (Findings)
Zewen Chi, Heyan Huang, Xian-Ling Mao
2023 J jnl
CoRR
Tian Lan, Deng Cai, Yan Wang, Heyan Huang, Xian-Ling Mao
2023 A* conf
ICLR
Tian Lan, Deng Cai, Yan Wang, Heyan Huang, Xian-Ling Mao
2023 A* conf
SIGIR
Rong-Cheng Tu, Xian-Ling Mao, Wenjin Ji, Wei Wei, Heyan Huang
2023 J jnl
IEEE Trans. Knowl. Data Eng.
Rong-Cheng Tu, Xian-Ling Mao, Rongxin Tu, Bin-Bin Bian, Chengfei Cai, Hongfa Wang, Wei Wei, Heyan Huang
2023 J jnl
IEEE Trans. Multim.
Yuhang Liu, Wei Wei, Daowan Peng, Xian-Ling Mao, Zhiyong He, Pan Zhou
2023 conf
NLPCC (2)
Hao Wang, Jing-Jing Zhu, Wei Wei, Heyan Huang, Xian-Ling Mao
2023 J jnl
CoRR
Ziming Huang, Zhuoxuan Jiang, Ke Wang, Juntao Li, Shanshan Feng, Xian-Ling Mao
2023 J jnl
IEEE Trans. Knowl. Data Eng.
Jia-Nan Guo, Xian-Ling Mao, Wei Wei, Heyan Huang
2023 J jnl
IEEE Trans. Knowl. Data Eng.
Jia-Nan Guo, Xian-Ling Mao, Tian Lan, Rongxin Tu, Wei Wei, Heyan Huang
2023 J jnl
ACM Trans. Inf. Syst.
Yuming Shang, Heyan Huang, Xin Sun, Wei Wei, Xian-Ling Mao
2023 J jnl
CoRR
Zewen Chi, Heyan Huang, Xian-Ling Mao
2023 conf
EMNLP (Findings)
Zhenyi Lu, Wei Wei, Xiaoye Qu, Xian-Ling Mao, Dangyang Chen, Jixiong Chen
2023 A* conf
SIGIR
Sen Zhao, Wei Wei, Xian-Ling Mao, Shuai Zhu, Minghui Yang, Zujie Wen, Dangyang Chen, Feida Zhu
2023 J jnl
CoRR
Sen Zhao, Wei Wei, Xian-Ling Mao, Shuai Zhu, Minghui Yang, Zujie Wen, Dangyang Chen, Feida Zhu
2023 J jnl
ACM Trans. Asian Low Resour. Lang. Inf. Process.
Yi-Kun Tang, Heyan Huang, Xuewen Shi, Xian-Ling Mao
2023 conf
NLPCC (3)
Xiao Zhang, Heqi Zheng, Yuxiang Nie, Xian-Ling Mao
2023 A* conf
AAAI
Shuo Liang, Wei Wei, Xian-Ling Mao, Yuanyuan Fu, Rui Fang, Dangyang Chen
2023 J jnl
CoRR
Xiao Zhang, Heqi Zheng, Yuxiang Nie, Heyan Huang, Xian-Ling Mao
2023 conf
ACL (1)
Wendi Li, Wei Wei, Xiaoye Qu, Xian-Ling Mao, Ye Yuan, Wenfeng Xie, Dangyang Chen
2023 J jnl
CoRR
Wendi Li, Wei Wei, Xiaoye Qu, Xian-Ling Mao, Ye Yuan, Wenfeng Xie, Dangyang Chen
2023 A* conf
IJCAI
Sen Zhao, Wei Wei, Yifan Liu, Ziyang Wang, Wendi Li, Xian-Ling Mao, Shuai Zhu, Minghui Yang, Zujie Wen
2023 J jnl
CoRR
Sen Zhao, Wei Wei, Yifan Liu, Ziyang Wang, Wendi Li, Xian-Ling Mao, Shuai Zhu, Minghui Yang, Zujie Wen
2023 J jnl
IEEE Trans. Multim.
Rong-Cheng Tu, Xian-Ling Mao, Qinghong Lin, Wenjin Ji, Weize Qin, Wei Wei, Heyan Huang
2023 J jnl
Proc. ACM Manag. Data
Rong-Cheng Tu, Xian-Ling Mao, Kevin Qinghong Lin, Chengfei Cai, Weize Qin, Wei Wei, Hongfa Wang, Heyan Huang
2022 conf
EEKE@JCDL
Hao Wang, Xian-Ling Mao, Heyan Huang
2022 J jnl
Inf. Sci.
Yuming Shang, Heyan Huang, Xin Sun, Wei Wei, Xian-Ling Mao
2022 conf
ACL (Findings)
Shuo Liang, Wei Wei, Xian-Ling Mao, Fei Wang, Zhiyong He
2022 J jnl
CoRR
Shuo Liang, Wei Wei, Xian-Ling Mao, Fei Wang, Zhiyong He
2022 J jnl
CoRR
Xiao Zhang, Heyan Huang, Zewen Chi, Xian-Ling Mao
2022 A* conf
EMNLP
Yuxiang Nie, Heyan Huang, Wei Wei, Xian-Ling Mao
2022 J jnl
CoRR
Yuxiang Nie, Heyan Huang, Wei Wei, Xian-Ling Mao
2022 conf
ACL (1)
Heqi Zheng, Xiao Zhang, Zewen Chi, Heyan Huang, Yan Tan, Tian Lan, Wei Wei, Xian-Ling Mao
2022 J jnl
CoRR
Heqi Zheng, Xiao Zhang, Zewen Chi, Heyan Huang, Tan Yan, Tian Lan, Wei Wei, Xian-Ling Mao
2022 J jnl
IEEE Trans. Knowl. Data Eng.
Rong-Cheng Tu, Xian-Ling Mao, Bing Ma, Yong Hu, Tan Yan, Wei Wei, Heyan Huang
2022 B conf
COLING
Xiao Zhang, Heyan Huang, Zewen Chi, Xian-Ling Mao
2022 J jnl
CoRR
Xiao Zhang, Heyan Huang, Zewen Chi, Xian-Ling Mao
2022 J jnl
Inf. Sci.
Xiaoyan Gao, Fuli Feng, Heyan Huang, Xian-Ling Mao, Tian Lan, Zewen Chi
2022 B conf
COLING
Ziming Huang, Zhuoxuan Jiang, Ke Wang, Juntao Li, Shanshan Feng, Xian-Ling Mao
2022 conf
EMNLP (Findings)
Ruihan Zhang, Wei Wei, Xian-Ling Mao, Rui Fang, Dangyang Chen
2022 A conf
CIKM
Sheng-Fu Wang, Shu-Hang Liu, Tian-Yi Che, Yi-Fan Lu, Song-Xiao Yang, Heyan Huang, Xian-Ling Mao
2022 J jnl
CoRR
Sheng-Fu Wang, Shu-Hang Liu, Tian-Yi Che, Yi-Fan Lu, Song-Xiao Yang, Heyan Huang, Xian-Ling Mao
2022 A conf
CIKM
Ding Zou, Wei Wei, Ziyang Wang, Xian-Ling Mao, Feida Zhu, Rui Fang, Dangyang Chen
2022 J jnl
CoRR
Ding Zou, Wei Wei, Ziyang Wang, Xian-Ling Mao, Feida Zhu, Rui Fang, Dangyang Chen
2022 J jnl
CoRR
Tian Lan, Yixuan Su, Shu-Hang Liu, Heyan Huang, Xian-Ling Mao
2022 A conf
CIKM
Ziyang Wang, Huoyu Liu, Wei Wei, Yue Hu, Xian-Ling Mao, Shaojian He, Rui Fang, Dangyang Chen
2022 J jnl
CoRR
Ziyang Wang, Huoyu Liu, Wei Wei, Yue Hu, Xian-Ling Mao, Shaojian He, Rui Fang, Dangyang Chen
2022 A* conf
SIGIR
Ding Zou, Wei Wei, Xian-Ling Mao, Ziyang Wang, Minghui Qiu, Feida Zhu, Xin Cao
2022 J jnl
CoRR
Ding Zou, Wei Wei, Xian-Ling Mao, Ziyang Wang, Minghui Qiu, Feida Zhu, Xin Cao
2022 A* conf
NeurIPS
Zewen Chi, Li Dong, Shaohan Huang, Damai Dai, Shuming Ma, Barun Patra, Saksham Singhal, Payal Bajaj, Xia Song, Xian-Ling Mao, Heyan Huang, Furu Wei
2022 J jnl
CoRR
Yuming Shang, Heyan Huang, Xian-Ling Mao
2022 J jnl
CoRR
Ziyang Wang, Wei Wei, Chenwei Xu, Jun Xu, Xian-Ling Mao
2022 J jnl
Neurocomputing
Ziyang Wang, Wei Wei, Chenwei Xu, Jun Xu, Xian-Ling Mao
2022 A* conf
IJCAI
Yuming Shang, Heyan Huang, Xin Sun, Wei Wei, Xian-Ling Mao
2022 J jnl
CoRR
Yuming Shang, Heyan Huang, Xin Sun, Wei Wei, Xian-Ling Mao
2022 J jnl
CoRR
Shuo Liang, Wei Wei, Xian-Ling Mao, Yuanyuan Fu, Rui Fang, Dangyang Chen
2022 conf
EMNLP (Findings)
Xiaofei Wen, Wei Wei, Xian-Ling Mao
2022 A* conf
KDD
Puhai Yang, Heyan Huang, Wei Wei, Xian-Ling Mao
2022 J jnl
CoRR
Rong-Cheng Tu, Xian-Ling Mao, Kevin Qinghong Lin, Chengfei Cai, Weize Qin, Hongfa Wang, Wei Wei, Heyan Huang
2022 B conf
COLING
Yuxiang Nie, Heyan Huang, Zewen Chi, Xian-Ling Mao
2022 J jnl
CoRR
Yuxiang Nie, Heyan Huang, Zewen Chi, Xian-Ling Mao
2022 J jnl
Pattern Recognit.
Ziyang Wang, Wei Wei, Xian-Ling Mao, Guibing Guo, Pan Zhou, Sheng Jiang
2022 conf
ACL (1)
Zewen Chi, Shaohan Huang, Li Dong, Shuming Ma, Bo Zheng, Saksham Singhal, Payal Bajaj, Xia Song, Xian-Ling Mao, Heyan Huang, Furu Wei
2021 conf
ICBK
Xiao Zhang, Heqi Zheng, Heyan Huang, Zewen Chi, Xian-Ling Mao
2021 J jnl
CoRR
Houjin Yu, Xian-Ling Mao, Zewen Chi, Wei Wei, Heyan Huang
2021 conf
ACL/IJCNLP (1)
Puhai Yang, Heyan Huang, Xian-Ling Mao
2021 J jnl
CoRR
Puhai Yang, Heyan Huang, Xian-Ling Mao
2021 conf
EMNLP (Findings)
Weiran Pan, Wei Wei, Xian-Ling Mao
2021 J jnl
CoRR
Weiran Pan, Wei Wei, Xian-Ling Mao
2021 J jnl
CoRR
Zewen Chi, Heyan Huang, Luyang Liu, Yu Bai, Xian-Ling Mao
2021 J jnl
Inf. Sci.
Jia-Nan Guo, Xian-Ling Mao, Shu-Yang Lin, Wei Wei, Heyan Huang
2021 J jnl
CoRR
Tian Lan, Deng Cai, Yan Wang, Yixuan Su, Xian-Ling Mao, Heyan Huang
2021 conf
NLPCC (2)
Heng-Da Xu, Xian-Ling Mao, Zewen Chi, Fanshu Sun, Jing-Jing Zhu, Heyan Huang
2021 J jnl
CoRR
Ziyang Wang, Wei Wei, Gao Cong, Xiao-Li Li, Xian-Ling Mao, Minghui Qiu
2021 conf
ACL/IJCNLP (Findings)
Rong-Cheng Tu, Lei Ji, Huaishao Luo, Botian Shi, Heyan Huang, Nan Duan, Xian-Ling Mao
2021 conf
ACL/IJCNLP (1)
Zewen Chi, Li Dong, Bo Zheng, Shaohan Huang, Xian-Ling Mao, Heyan Huang, Furu Wei
2021 J jnl
CoRR
Zewen Chi, Li Dong, Bo Zheng, Shaohan Huang, Xian-Ling Mao, Heyan Huang, Furu Wei
2021 conf
NAACL-HLT
Zewen Chi, Li Dong, Furu Wei, Nan Yang, Saksham Singhal, Wenhui Wang, Xia Song, Xian-Ling Mao, Heyan Huang, Ming Zhou
2021 A* conf
WWW
Rong-Cheng Tu, Xian-Ling Mao, Jia-Nan Guo, Wei Wei, Heyan Huang
2021 conf
ACL/IJCNLP (Findings)
Heng-Da Xu, Zhongli Li, Qingyu Zhou, Chao Li, Zizhen Wang, Yunbo Cao, Heyan Huang, Xian-Ling Mao
2021 J jnl
CoRR
Heng-Da Xu, Zhongli Li, Qingyu Zhou, Chao Li, Zizhen Wang, Yunbo Cao, Heyan Huang, Xian-Ling Mao
2021 conf
APWeb/WAIM (2)
Shu-ying Yu, Xian-Ling Mao, Wei Wei, Heyan Huang
2021 A* conf
ACM Multimedia
Rong-Cheng Tu, Xian-Ling Mao, Cihang Kong, Zihang Shao, Zelin Li, Wei Wei, Heyan Huang
2021 conf
EMNLP (1)
Zewen Chi, Li Dong, Shuming Ma, Shaohan Huang, Saksham Singhal, Xian-Ling Mao, Heyan Huang, Xia Song, Furu Wei
2021 J jnl
CoRR
Zewen Chi, Li Dong, Shuming Ma, Shaohan Huang, Xian-Ling Mao, Heyan Huang, Furu Wei
2020 conf
NLPCC (1)
Yong Hu, Heyan Huang, Anfan Chen, Xian-Ling Mao
2020 conf
ICKG
Houjin Yu, Xian-Ling Mao, Zewen Chi, Wei Wei, Heyan Huang
2020 conf
NLPCC (1)
Hongli Mao, Hanlin Tang, Wen Zhang, Heyan Huang, Xian-Ling Mao
2020 A* conf
AAAI
Zewen Chi, Li Dong, Furu Wei, Wenhui Wang, Xian-Ling Mao, Heyan Huang
2020 J jnl
CoRR
Rong-Cheng Tu, Xian-Ling Mao, Rongxin Tu, Wei Wei, Heyan Huang
2020 J jnl
CoRR
Jia-Nan Guo, Xian-Ling Mao, Shu-Yang Lin, Wei Wei, Heyan Huang
2020 J jnl
CoRR
Ziyang Wang, Wei Wei, Gao Cong, Xian-Ling Mao, Xiao-Li Li, Shanshan Feng
2020 J jnl
CoRR
Ziyang Wang, Wei Wei, Gao Cong, Xiao-Li Li, Xian-Ling Mao, Minghui Qiu, Shanshan Feng
2020 J jnl
CoRR
Heng-Da Xu, Xian-Ling Mao, Zewen Chi, Jing-Jing Zhu, Fanshu Sun, Heyan Huang
2020 conf
ICKG
Ping Jiang, Xian-Ling Mao, Bin-Bin Bian, Heyan Huang
2020 J jnl
CoRR
Zewen Chi, Li Dong, Furu Wei, Nan Yang, Saksham Singhal, Wenhui Wang, Xia Song, Xian-Ling Mao, Heyan Huang, Ming Zhou
2020 conf
APWeb/WAIM (1)
Yong Hu, Heyan Huang, Tian Lan, Xiaochi Wei, Yuxiang Nie, Jiarui Qi, Liner Yang, Xian-Ling Mao
2020 J jnl
ACM Trans. Inf. Syst.
Tian Lan, Xian-Ling Mao, Wei Wei, Xiaoyan Gao, Heyan Huang
2020 conf
NLPCC (1)
Tan Yan, Heyan Huang, Xian-Ling Mao
2020 J jnl
CoRR
Tian Lan, Xian-Ling Mao, Zhipeng Zhao, Wei Wei, Heyan Huang
2020 J jnl
CoRR
Tian Lan, Xian-Ling Mao, Xiaoyan Gao, Wei Wei, Heyan Huang
2020 J jnl
CoRR
Ziyang Wang, Wei Wei, Xian-Ling Mao, Guibing Guo, Pan Zhou, Shanshan Feng
2020 conf
NLP4COVID@EMNLP
Yong Hu, Heyan Huang, Anfan Chen, Xian-Ling Mao
2020 J jnl
CoRR
Tian Lan, Xian-Ling Mao, Wei Wei, Heyan Huang
2019 J jnl
CoRR
Zhuoxuan Jiang, Ziming Huang, Dong Sheng Li, Xian-Ling Mao
2019 B conf
SIGdial
Zhuoxuan Jiang, Xian-Ling Mao, Ziming Huang, Jie Ma, Shaochun Li
2019 J jnl
CoRR
Zhuoxuan Jiang, Xian-Ling Mao, Ziming Huang, Jie Ma, Shaochun Li
redb/ext/spoof_check.py
← Index redb/ext/spoof_check.py python
import copy
import struct
from enum import Enum

"""
Checks that the metadata within a file's Rich header does not contradict the
other metadata contained within it.

References:
    https://gist.github.com/skochinsky/07c8e95e33d9429d81a75622b5d24c8b
    https://www.sec.in.tum.de/i20/publications/finding-the-needle-a-study-of-
    the-pe32-rich-header-and-respective-malware-triage
"""

KNOWN_PRODUCT_IDS = {
    0: "Unknown",
    1: "Import0",
    2: "Linker510",
    3: "Cvtomf510",
    4: "Linker600",
    5: "Cvtomf600",
    6: "Cvtres500",
    7: "Utc11_Basic",
    8: "Utc11_C",
    9: "Utc12_Basic",
    10: "Utc12_C",
    11: "Utc12_CPP",
    12: "AliasObj60",
    13: "VisualBasic60",
    14: "Masm613",
    15: "Masm710",
    16: "Linker511",
    17: "Cvtomf511",
    18: "Masm614",
    19: "Linker512",
    20: "Cvtomf512",
    21: "Utc12_C_Std",
    22: "Utc12_CPP_Std",
    23: "Utc12_C_Book",
    24: "Utc12_CPP_Book",
    25: "Implib700",
    26: "Cvtomf700",
    27: "Utc13_Basic",
    28: "Utc13_C",
    29: "Utc13_CPP",
    30: "Linker610",
    31: "Cvtomf610",
    32: "Linker601",
    33: "Cvtomf601",
    34: "Utc12_1_Basic",
    35: "Utc12_1_C",
    36: "Utc12_1_CPP",
    37: "Linker620",
    38: "Cvtomf620",
    39: "AliasObj70",
    40: "Linker621",
    41: "Cvtomf621",
    42: "Masm615",
    43: "Utc13_LTCG_C",
    44: "Utc13_LTCG_CPP",
    45: "Masm620",
    46: "ILAsm100",
    47: "Utc12_2_Basic",
    48: "Utc12_2_C",
    49: "Utc12_2_CPP",
    50: "Utc12_2_C_Std",
    51: "Utc12_2_CPP_Std",
    52: "Utc12_2_C_Book",
    53: "Utc12_2_CPP_Book",
    54: "Implib622",
    55: "Cvtomf622",
    56: "Cvtres501",
    57: "Utc13_C_Std",
    58: "Utc13_CPP_Std",
    59: "Cvtpgd1300",
    60: "Linker622",
    61: "Linker700",
    62: "Export622",
    63: "Export700",
    64: "Masm700",
    65: "Utc13_POGO_I_C",
    66: "Utc13_POGO_I_CPP",
    67: "Utc13_POGO_O_C",
    68: "Utc13_POGO_O_CPP",
    69: "Cvtres700",
    70: "Cvtres710p",
    71: "Linker710p",
    72: "Cvtomf710p",
    73: "Export710p",
    74: "Implib710p",
    75: "Masm710p",
    76: "Utc1310p_C",
    77: "Utc1310p_CPP",
    78: "Utc1310p_C_Std",
    79: "Utc1310p_CPP_Std",
    80: "Utc1310p_LTCG_C",
    81: "Utc1310p_LTCG_CPP",
    82: "Utc1310p_POGO_I_C",
    83: "Utc1310p_POGO_I_CPP",
    84: "Utc1310p_POGO_O_C",
    85: "Utc1310p_POGO_O_CPP",
    86: "Linker624",
    87: "Cvtomf624",
    88: "Export624",
    89: "Implib624",
    90: "Linker710",
    91: "Cvtomf710",
    92: "Export710",
    93: "Implib710",
    94: "Cvtres710",
    95: "Utc1310_C",
    96: "Utc1310_CPP",
    97: "Utc1310_C_Std",
    98: "Utc1310_CPP_Std",
    99: "Utc1310_LTCG_C",
    100: "Utc1310_LTCG_CPP",
    101: "Utc1310_POGO_I_C",
    102: "Utc1310_POGO_I_CPP",
    103: "Utc1310_POGO_O_C",
    104: "Utc1310_POGO_O_CPP",
    105: "AliasObj710",
    106: "AliasObj710p",
    107: "Cvtpgd1310",
    108: "Cvtpgd1310p",
    109: "Utc1400_C",
    110: "Utc1400_CPP",
    111: "Utc1400_C_Std",
    112: "Utc1400_CPP_Std",
    113: "Utc1400_LTCG_C",
    114: "Utc1400_LTCG_CPP",
    115: "Utc1400_POGO_I_C",
    116: "Utc1400_POGO_I_CPP",
    117: "Utc1400_POGO_O_C",
    118: "Utc1400_POGO_O_CPP",
    119: "Cvtpgd1400",
    120: "Linker800",
    121: "Cvtomf800",
    122: "Export800",
    123: "Implib800",
    124: "Cvtres800",
    125: "Masm800",
    126: "AliasObj800",
    127: "PhoenixPrerelease",
    128: "Utc1400_CVTCIL_C",
    129: "Utc1400_CVTCIL_CPP",
    130: "Utc1400_LTCG_MSIL",
    131: "Utc1500_C",
    132: "Utc1500_CPP",
    133: "Utc1500_C_Std",
    134: "Utc1500_CPP_Std",
    135: "Utc1500_CVTCIL_C",
    136: "Utc1500_CVTCIL_CPP",
    137: "Utc1500_LTCG_C",
    138: "Utc1500_LTCG_CPP",
    139: "Utc1500_LTCG_MSIL",
    140: "Utc1500_POGO_I_C",
    141: "Utc1500_POGO_I_CPP",
    142: "Utc1500_POGO_O_C",
    143: "Utc1500_POGO_O_CPP",
    144: "Cvtpgd1500",
    145: "Linker900",
    146: "Export900",
    147: "Implib900",
    148: "Cvtres900",
    149: "Masm900",
    150: "AliasObj900",
    151: "Resource900",
    152: "AliasObj1000",
    154: "Cvtres1000",
    155: "Export1000",
    156: "Implib1000",
    157: "Linker1000",
    158: "Masm1000",
    170: "Utc1600_C",
    171: "Utc1600_CPP",
    172: "Utc1600_CVTCIL_C",
    173: "Utc1600_CVTCIL_CPP",
    174: "Utc1600_LTCG_C ",
    175: "Utc1600_LTCG_CPP",
    176: "Utc1600_LTCG_MSIL",
    177: "Utc1600_POGO_I_C",
    178: "Utc1600_POGO_I_CPP",
    179: "Utc1600_POGO_O_C",
    180: "Utc1600_POGO_O_CPP",
    183: "Linker1010",
    184: "Export1010",
    185: "Implib1010",
    186: "Cvtres1010",
    187: "Masm1010",
    188: "AliasObj1010",
    199: "AliasObj1100",
    201: "Cvtres1100",
    202: "Export1100",
    203: "Implib1100",
    204: "Linker1100",
    205: "Masm1100",
    206: "Utc1700_C",
    207: "Utc1700_CPP",
    208: "Utc1700_CVTCIL_C",
    209: "Utc1700_CVTCIL_CPP",
    210: "Utc1700_LTCG_C ",
    211: "Utc1700_LTCG_CPP",
    212: "Utc1700_LTCG_MSIL",
    213: "Utc1700_POGO_I_C",
    214: "Utc1700_POGO_I_CPP",
    215: "Utc1700_POGO_O_C",
    216: "Utc1700_POGO_O_CPP",
    219: "Cvtres1200",
    220: "Export1200",
    221: "Implib1200",
    222: "Linker1200",
    223: "Masm1200",
    # Speculation
    224: "AliasObj1200",
    237: "Cvtres1210",
    238: "Export1210",
    239: "Implib1210",
    240: "Linker1210",
    241: "Masm1210",
    # Speculation
    242: "Utc1810_C",
    243: "Utc1810_CPP",
    244: "Utc1810_CVTCIL_C",
    245: "Utc1810_CVTCIL_CPP",
    246: "Utc1810_LTCG_C ",
    247: "Utc1810_LTCG_CPP",
    248: "Utc1810_LTCG_MSIL",
    249: "Utc1810_POGO_I_C",
    250: "Utc1810_POGO_I_CPP",
    251: "Utc1810_POGO_O_C",
    252: "Utc1810_POGO_O_CPP",
    255: "Cvtres1400",
    256: "Export1400",
    257: "Implib1400",
    258: "Linker1400",
    259: "Masm1400",
    260: "Utc1900_C",
    261: "Utc1900_CPP",
    # Speculation
    262: "Utc1900_CVTCIL_C",
    263: "Utc1900_CVTCIL_CPP",
    264: "Utc1900_LTCG_C ",
    265: "Utc1900_LTCG_CPP",
    266: "Utc1900_LTCG_MSIL",
    267: "Utc1900_POGO_I_C",
    268: "Utc1900_POGO_I_CPP",
    269: "Utc1900_POGO_O_C",
    270: "Utc1900_POGO_O_CPP",
}


class Result(Enum):
    VALID = 0
    INVALID = 1
    UNABLE_TO_PARSE = 2


def _rol(val, num):
    """Rotates val to the left by num bits."""
    return ((val << (num % 32)) & 0xFFFFFFFF) | (val >> (32 - (num % 32)))


def checksum_test(pe, rich_header):
    """Tests that the Rich header checksum is valid.

    Computes what the Rich header checksum should be. If the Rich header
    contains a different checksum value, this function returns INVALID
    This indicates that either the Rich header or MS-DOS stub has been modified

    The Rich header checksum is computed from the following:
        Length of the MS-DOS stub
        Contents of the MS-DOS stub, with e_lfanew zeroed out
        Rich header @Comp.IDs and lowest 5 bits of each count
    """
    if rich_header is None:
        rich_header = {}
    # Checksum stored in Rich header
    rich_checksum = rich_header.get("checksum", None)

    # Get DOS header data
    if pe.DOS_HEADER.e_lfanew > len(pe.__data__):
        return Result.UNABLE_TO_PARSE
    data = pe.__data__[: pe.DOS_HEADER.e_lfanew]

    # Get start marker
    mask = 0x536E6144  # DanS (little-endian)
    start_marker = struct.pack(
        "<LLLL", rich_checksum ^ mask, rich_checksum, rich_checksum, rich_checksum
    )
    if not len(start_marker):
        return Result.UNABLE_TO_PARSE

    # Get index of start marker
    start_index = data.find(start_marker)
    if start_index == -1:
        return Result.UNABLE_TO_PARSE

    # Get list of @Comp.IDs and counts from Rich header
    # Elements in rich_fields at even indices are @Comp.IDs
    # Elements in rich_fields at odd indices are counts
    rich_fields = copy.deepcopy(rich_header.get("values", None))
    if len(rich_fields) % 2 != 0:
        return Result.UNABLE_TO_PARSE

    # Compute cd as MS-DOS stub portion of checksum
    # Zero out e_lfanew from 0x3c to 0x3f
    cd = 0
    for i in range(start_index):
        if i >= 0x3C and i <= 0x3F:
            cd += _rol(0, i)
        else:
            cd += _rol(data[i], i)

    # Compute cd as Rich header portion of checksum
    cr = 0
    while len(rich_fields):
        compid = rich_fields.pop(0)
        count = rich_fields.pop(0)
        cr += _rol(compid, count & 0x1F)

    # Compute checksum from MS-DOS stub start index, cd, cr
    # Only keep lowest 32 bits
    checksum = (start_index + cd + cr) & 0xFFFFFFFF

    # Compare computed checksum with the checksum in the Rich header
    if checksum != rich_checksum:
        return Result.INVALID
    else:
        return Result.VALID


def duplicate_test(pe, rich_header):
    """Checks for duplicate @Comp.IDs in the Rich header.

    If the Rich header contains duplicate entries, returns INVALID
    This indicates that the Rich header has been modified
    """
    if rich_header is None:
        rich_header = {}

    # Get list of @Comp.IDs and counts from Rich header
    # Elements in rich_fields at even indices are @Comp.IDs
    # Elements in rich_fields at odd indices are counts
    rich_fields = copy.deepcopy(rich_header.get("values", None))
    if len(rich_fields) % 2 != 0:
        return Result.UNABLE_TO_PARSE

    # Get a list of @Comp.IDs in rich_fields
    compids = []
    for i in range(len(rich_fields)):
        if i % 2 == 0:
            compids.append(rich_fields[i])

    # Check if any @Comp.IDs are duplicates
    if len(compids) != len(set(compids)):
        return Result.INVALID

    return Result.VALID


def linker_test(pe, rich_header):
    """Checks that the Rich and PE header linker versions do not conflict.

    Certain Rich Header ProdIDs correspond to linker versions
    Although they are undocumented, we have used prior research as well as our
    own to determine many of them
    There are likely more linker version ProdIDs that we have not identified

    If the linker versions conflict, this function returns INVALID
    This indicates that the Rich header or PE header has been modified
    """
    if rich_header is None:
        rich_header = {}

    # Get list of @Comp.IDs and counts from Rich header
    # Elements in rich_fields at even indices are @Comp.IDs
    # Elements in rich_fields at odd indices are counts
    rich_fields = copy.deepcopy(rich_header.get("values", None))
    if len(rich_fields) % 2 != 0:
        return Result.UNABLE_TO_PARSE

    # Get list of ProdIDs from rich_fields
    prodids = []
    for i in range(len(rich_fields)):
        if i % 2 == 0:
            prodids.append(rich_fields[i] >> 16)

    # Parse major and minor linker versions from PE header
    pe_major = pe.OPTIONAL_HEADER.MajorLinkerVersion
    pe_minor = pe.OPTIONAL_HEADER.MinorLinkerVersion

    # Iterate over Rich header ProdIDs
    found_linker = False
    for prodid in prodids:

        # Only interested in ProdIDs that correspond to linker versions
        if KNOWN_PRODUCT_IDS.get(prodid) is None:
            continue
        prodid_name = KNOWN_PRODUCT_IDS[prodid]
        if not prodid_name.startswith("Linker"):
            continue

        found_linker = True

        # Parse major and minor linker version from ProdID
        prodid_name = prodid_name[6:]
        if prodid_name.endswith("p"):
            prodid_name = prodid_name[:-1]
        rich_major = int(prodid_name[:-2])
        rich_minor = int(prodid_name[-2:])

        # Check whether the Rich and PE linker versions match
        if pe_major == rich_major and pe_minor == rich_minor:
            return Result.VALID

    if not found_linker:
        return Result.UNABLE_TO_PARSE

    return Result.INVALID


def import_count_test(pe, rich_header):
    """Checks that import0 does not conflict with the IAT import count.

    The Rich header contains a ProdID called import0
    It is related to the number of imports in the IAT, but we are unsure how
    It is never less than the number of imports in the IAT

    If import0 is less than IAT import count, this function returns INVALID
    This indicates that the Rich header or IAT has been modified
    """
    if rich_header is None:
        rich_header = {}

    # Check whether the file has an IAT
    if not hasattr(pe, "DIRECTORY_ENTRY_IMPORT"):
        return Result.UNABLE_TO_PARSE

    # Get the number of imports in the IAT
    iat_count = 0
    for entry in pe.DIRECTORY_ENTRY_IMPORT:
        for imported_function in entry.imports:
            iat_count += 1

    # Get list of @Comp.IDs and counts from Rich header
    # Elements in rich_fields at even indices are @Comp.IDs
    # Elements in rich_fields at odd indices are counts
    rich_fields = copy.deepcopy(rich_header.get("values", None))
    if len(rich_fields) % 2 != 0:
        return Result.INVALID

    # Get @Comp.ID 65536 (ProdID Import0)
    import0_count = None
    while len(rich_fields):
        compid = rich_fields.pop(0)
        count = rich_fields.pop(0)
        if compid == 65536:
            import0_count = count

    # Legitimate files never have import0_count < iat_count
    if import0_count is None:
        return Result.VALID

    if import0_count < iat_count:
        return Result.INVALID

    return Result.VALID