Ram Nevatia

189 papers A* 39A 25B 19Misc 1Journal 66Unranked 39
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Raja Kumar, Arka Sadhu, Ram Nevatia
2024 J jnl
CoRR
Xuefeng Hu, Ke Zhang, Min Sun, Albert Chen, Cheng-Hao Kuo, Ram Nevatia
2024 A conf
WACV
Zhaoheng Zheng, Haidong Zhu, Ram Nevatia
2024 conf
ECCV (6)
Haidong Zhu, Tianyu Ding, Tianyi Chen, Ilya Zharkov, Ram Nevatia, Luming Liang
2024 A conf
WACV
Zhuoming Liu, Xuefeng Hu, Ram Nevatia
2024 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Wanrong Zheng, Haidong Zhu, Zhaoheng Zheng, Ram Nevatia
2024 J jnl
CoRR
Wanrong Zheng, Haidong Zhu, Zhaoheng Zheng, Ram Nevatia
2024 A* conf
CVPR
Zhaoheng Zheng, Jingmin Wei, Xuefeng Hu, Haidong Zhu, Ram Nevatia
2024 A conf
WACV
Arka Sadhu, Ram Nevatia
2024 A conf
WACV
Xuefeng Hu, Ke Zhang, Lu Xia, Albert Chen, Jiajia Luo, Yuyin Sun, Ken Wang, Nan Qiao, Xiao Zeng, Min Sun, Cheng-Hao Kuo, Ram Nevatia
2024 A* conf
CVPR
Haidong Zhu, Pranav Budhwant, Zhaoheng Zheng, Ram Nevatia
2024 A conf
WACV
Haidong Zhu, Wanrong Zheng, Zhaoheng Zheng, Ram Nevatia
2023 B conf
IJCB
Kien Nguyen, Clinton Fookes, Sridha Sridharan, Feng Liu, Xiaoming Liu, Arun Ross, Dana Michalski, Huy Nguyen, Debayan Deb, Mahak Kothari, Manisha Saini, Dawei Du, Scott McCloskey, Gabriel Bertocco, Fernanda A. Andaló, Terrance E. Boult, Anderson Rocha, Haidong Zhu, Zhaoheng Zheng, Ram Nevatia, Zaigham A. Randhawa, Sinan Sabri, Gianfranco Doretto
2023 J jnl
CoRR
Zhaoheng Zheng, Haidong Zhu, Ram Nevatia
2023 conf
CVPR Workshops
Haidong Zhu, Zhaoheng Zheng, Wanrong Zheng, Ram Nevatia
2023 J jnl
CoRR
Haidong Zhu, Zhaoheng Zheng, Wanrong Zheng, Ram Nevatia
2023 J jnl
CoRR
Haidong Zhu, Tianyu Ding, Tianyi Chen, Ilya Zharkov, Ram Nevatia, Luming Liang
2023 J jnl
CoRR
Zhuoming Liu, Xuefeng Hu, Ram Nevatia
2023 A conf
WACV
Haidong Zhu, Zhaoheng Zheng, Ram Nevatia
2023 B conf
IJCB
Haidong Zhu, Wanrong Zheng, Zhaoheng Zheng, Ram Nevatia
2023 J jnl
CoRR
Haidong Zhu, Wanrong Zheng, Zhaoheng Zheng, Ram Nevatia
2023 J jnl
CoRR
Zhaoheng Zheng, Jingmin Wei, Xuefeng Hu, Haidong Zhu, Ram Nevatia
2023 A* conf
ICRA
Haidong Zhu, Yuyin Sun, Chi Liu, Lu Xia, Jiajia Luo, Nan Qiao, Ram Nevatia, Cheng-Hao Kuo
2023 A conf
WACV
Ke Xu, Yao Xiao, Zhaoheng Zheng, Kaijie Cai, Ram Nevatia
2023 J jnl
CoRR
Xuefeng Hu, Ke Zhang, Lu Xia, Albert Chen, Jiajia Luo, Yuyin Sun, Ken Wang, Nan Qiao, Xiao Zeng, Min Sun, Cheng-Hao Kuo, Ram Nevatia
2023 J jnl
CoRR
Haidong Zhu, Wanrong Zheng, Zhaoheng Zheng, Ram Nevatia
2022 J jnl
CoRR
Haidong Zhu, Zhaoheng Zheng, Ram Nevatia
2022 B conf
ICPR
Yizhou Zhang, Zhaoheng Zheng, Ram Nevatia, Yan Liu
2022 B conf
ICPR
Haidong Zhu, Ye Yuan, Yiheng Zhu, Xiao Yang, Ram Nevatia
2022 J jnl
CoRR
Ke Xu, Yao Xiao, Zhaoheng Zheng, Kaijie Cai, Ram Nevatia
2022 Misc conf
ICASSP
Haidong Zhu, Zhaoheng Zheng, Mohammad Soleymani, Ram Nevatia
2022 B conf
ICPR
Haidong Zhu, Zhaoheng Zheng, Ram Nevatia
2021 B conf
ICIP
Zhaoheng Zheng, Arka Sadhu, Ram Nevatia
2021 J jnl
CoRR
Zhaoheng Zheng, Arka Sadhu, Ram Nevatia
2021 J jnl
CoRR
Xuefeng Hu, M. Gökhan Uzunbas, Sirius Chen, Rui Wang, Ashish Shah, Ram Nevatia, Ser-Nam Lim
2021 A* conf
CVPR
Zijian Hu, Zhengyu Yang, Xuefeng Hu, Ram Nevatia
2021 J jnl
CoRR
Zijian Hu, Zhengyu Yang, Xuefeng Hu, Ram Nevatia
2021 A conf
WACV
Haidong Zhu, Arka Sadhu, Zhaoheng Zheng, Ram Nevatia
2021 conf
NAACL-HLT
Arka Sadhu, Kan Chen, Ram Nevatia
2021 J jnl
CoRR
Arka Sadhu, Kan Chen, Ram Nevatia
2021 A* conf
CVPR
Arka Sadhu, Tanmay Gupta, Mark Yatskar, Ram Nevatia, Aniruddha Kembhavi
2021 J jnl
CoRR
Arka Sadhu, Tanmay Gupta, Mark Yatskar, Ram Nevatia, Aniruddha Kembhavi
2020 conf
CVPR Workshops
Chuanzi He, Haidong Zhu, Jiyang Gao, Kan Chen, Ram Nevatia
2020 J jnl
CoRR
Chuanzi He, Haidong Zhu, Jiyang Gao, Kan Chen, Ram Nevatia
2020 conf
ECCV (8)
Yueqi Duan, Haidong Zhu, He Wang, Li Yi, Ram Nevatia, Leonidas J. Guibas
2020 J jnl
CoRR
Yueqi Duan, Haidong Zhu, He Wang, Li Yi, Ram Nevatia, Leonidas J. Guibas
2020 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Chenxu Luo, Zhenheng Yang, Peng Wang, Yang Wang, Wei Xu, Ram Nevatia, Alan L. Yuille
2020 conf
ECCV (21)
Xuefeng Hu, Zhihan Zhang, Zhenye Jiang, Syomantak Chaudhuri, Zhenheng Yang, Ram Nevatia
2020 J jnl
CoRR
Xuefeng Hu, Zhihan Zhang, Zhenye Jiang, Syomantak Chaudhuri, Zhenheng Yang, Ram Nevatia
2020 J jnl
CoRR
Haidong Zhu, Arka Sadhu, Zhaoheng Zheng, Ram Nevatia
2020 A* conf
CVPR
Arka Sadhu, Kan Chen, Ram Nevatia
2020 J jnl
CoRR
Arka Sadhu, Kan Chen, Ram Nevatia
2020 conf
EMNLP (1)
Xisen Jin, Junyi Du, Arka Sadhu, Ram Nevatia, Xiang Ren
2019 A* conf
CVPR
Zhenheng Yang, Dhruv Mahajan, Deepti Ghadiyaram, Ram Nevatia, Vignesh Ramanathan
2019 J jnl
CoRR
Zhenheng Yang, Dhruv Mahajan, Deepti Ghadiyaram, Ram Nevatia, Vignesh Ramanathan
2019 J jnl
Int. J. Comput. Vis.
Feng-Ju Chang, Anh Tuan Tran, Tal Hassner, Iacopo Masi, Ram Nevatia, Gérard G. Medioni
2019 conf
TAC
Manling Li, Ying Lin, Ananya Subburathinam, Spencer Whitehead, Xiaoman Pan, Di Lu, Qingyun Wang, Tongtao Zhang, Lifu Huang, Heng Ji, Alireza Zareian, Hassan Akbari, Brian Chen, Bo Wu, Emily Allaway, Shih-Fu Chang, Kathleen R. McKeown, Yixiang Yao, Jennifer Chen, Eric Berquist, Kexuan Sun, Xujun Peng, Ryan Gabbard, Marjorie Freedman, Pedro A. Szekely, T. K. Satish Kumar, Arka Sadhu, Ram Nevatia, Miguel E. Rodríguez, Yifan Wang, Yang Bai, Ali Sadeghian, Daisy Zhe Wang
2019 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Iacopo Masi, Feng-Ju Chang, Jongmoo Choi, Shai Harel, Jungyeon Kim, KangGeon Kim, Jatuporn Toy Leksut, Stephen Rawls, Yue Wu, Tal Hassner, Wael AbdAlmageed, Gérard G. Medioni, Louis-Philippe Morency, Prem Natarajan, Ram Nevatia
2019 A conf
WACV
Runzhou Ge, Jiyang Gao, Kan Chen, Ram Nevatia
2019 A* conf
ICCV
Jiyang Gao, Jiang Wang, Shengyang Dai, Li-Jia Li, Ram Nevatia
2019 J jnl
CoRR
Feng-Ju Chang, Xiang Yu, Ram Nevatia, Manmohan Chandraker
2019 A* conf
ICCV
Arka Sadhu, Kan Chen, Ram Nevatia
2019 J jnl
CoRR
Arka Sadhu, Kan Chen, Ram Nevatia
2018 conf
ECCV (2)
Jiyang Gao, Kan Chen, Ram Nevatia
2018 J jnl
CoRR
Jiyang Gao, Kan Chen, Ram Nevatia
2018 J jnl
CoRR
Chenxu Luo, Zhenheng Yang, Peng Wang, Yang Wang, Wei Xu, Ram Nevatia, Alan L. Yuille
2018 conf
ECCV Workshops (5)
Zhenheng Yang, Peng Wang, Yang Wang, Wei Xu, Ram Nevatia
2018 J jnl
CoRR
Zhenheng Yang, Peng Wang, Yang Wang, Wei Xu, Ram Nevatia
2018 B conf
FG
Feng-Ju Chang, Anh Tuan Tran, Tal Hassner, Iacopo Masi, Ram Nevatia, Gérard G. Medioni
2018 J jnl
CoRR
Feng-Ju Chang, Anh Tuan Tran, Tal Hassner, Iacopo Masi, Ram Nevatia, Gérard G. Medioni
2018 conf
TAC
Tongtao Zhang, Ananya Subburathinam, Ge Shi, Lifu Huang, Di Lu, Xiaoman Pan, Manling Li, Boliang Zhang, Qingyun Wang, Spencer Whitehead, Heng Ji, Alireza Zareian, Hassan Akbari, Brian Chen, Ruiqi Zhong, Steven Shao, Emily Allaway, Shih-Fu Chang, Kathleen R. McKeown, Dongyu Li, Xin Huang, Kexuan Sun, Xujun Peng, Ryan Gabbard, Marjorie Freedman, Mayank Kejriwal, Ram Nevatia, Pedro A. Szekely, T. K. Satish Kumar, Ali Sadeghian, Giacomo Bergami, Sourav Dutta, Miguel E. Rodríguez, Daisy Zhe Wang
2018 A* conf
CVPR
Kan Chen, Jiyang Gao, Ram Nevatia
2018 J jnl
CoRR
Kan Chen, Jiyang Gao, Ram Nevatia
2018 A* conf
CVPR
Zhenheng Yang, Peng Wang, Yang Wang, Wei Xu, Ram Nevatia
2018 J jnl
CoRR
Zhenheng Yang, Peng Wang, Yang Wang, Wei Xu, Ram Nevatia
2018 J jnl
CoRR
Runzhou Ge, Jiyang Gao, Kan Chen, Ram Nevatia
2018 J jnl
Int. J. Multim. Inf. Retr.
Kan Chen, Rama Kovvuri, Jiyang Gao, Ram Nevatia
2018 A* conf
CVPR
Jiyang Gao, Runzhou Ge, Kan Chen, Ram Nevatia
2018 J jnl
CoRR
Jiyang Gao, Runzhou Ge, Kan Chen, Ram Nevatia
2018 J jnl
CoRR
Jiyang Gao, Jiang Wang, Shengyang Dai, Li-Jia Li, Ram Nevatia
2018 J jnl
CoRR
Rama Kovvuri, Ram Nevatia
2018 conf
ACCV (4)
Rama Kovvuri, Ram Nevatia
2018 J jnl
CoRR
Jiyang Gao, Ram Nevatia
2018 A* conf
AAAI
Elizabeth Bondi, Fei Fang, Mark Hamilton, Debarun Kar, Donnabell Dmello, Jongmoo Choi, Robert Hannaford, Arvind Iyer, Lucas Joppa, Milind Tambe, Ram Nevatia
2018 conf
ECCV Workshops (6)
Kan Chen, Chuanxi Zhang, Chen Fang, Zhaowen Wang, Trung Bui, Ram Nevatia
2017 A* conf
CVPR
Kan Chen, Trung Bui, Chen Fang, Zhaowen Wang, Ram Nevatia
2017 J jnl
CoRR
Kan Chen, Trung Bui, Fang Chen, Zhaowen Wang, Ram Nevatia
2017 A conf
BMVC
Jiyang Gao, Zhenheng Yang, Ram Nevatia
2017 J jnl
CoRR
Jiyang Gao, Zhenheng Yang, Ram Nevatia
2017 A* conf
AAAI
Chuang Gan, Chen Sun, Ram Nevatia
2017 conf
ICCV Workshops
Feng-Ju Chang, Anh Tuan Tran, Tal Hassner, Iacopo Masi, Ram Nevatia, Gérard G. Medioni
2017 J jnl
CoRR
Feng-Ju Chang, Anh Tuan Tran, Tal Hassner, Iacopo Masi, Ram Nevatia, Gérard G. Medioni
2017 J jnl
CoRR
Jiyang Gao, Zijian Guo, Zhen Li, Ram Nevatia
2017 B conf
ICMR
Kan Chen, Rama Kovvuri, Jiyang Gao, Ram Nevatia
2017 A* conf
ICCV
Kan Chen, Rama Kovvuri, Ram Nevatia
2017 J jnl
CoRR
Kan Chen, Rama Kovvuri, Ram Nevatia
2017 A conf
BMVC
Jiyang Gao, Zhenheng Yang, Ram Nevatia
2017 J jnl
CoRR
Jiyang Gao, Zhenheng Yang, Ram Nevatia
2017 A conf
BMVC
Zhenheng Yang, Jiyang Gao, Ram Nevatia
2017 J jnl
CoRR
Zhenheng Yang, Jiyang Gao, Ram Nevatia
2017 A* conf
ICCV
Jiyang Gao, Chen Sun, Zhenheng Yang, Ram Nevatia
2017 J jnl
CoRR
Jiyang Gao, Chen Sun, Zhenheng Yang, Ram Nevatia
2017 A* conf
ICCV
Jiyang Gao, Zhenheng Yang, Chen Sun, Kan Chen, Ram Nevatia
2017 J jnl
CoRR
Jiyang Gao, Zhenheng Yang, Chen Sun, Kan Chen, Ram Nevatia
2016 J jnl
CoRR
Zhenheng Yang, Ram Nevatia
2016 B conf
ICMR
Jiyang Gao, Chen Sun, Ram Nevatia
2016 J jnl
CoRR
Jiyang Gao, Chen Sun, Ram Nevatia
2016 A conf
WACV
Song Cao, Kan Chen, Ram Nevatia
2016 A conf
WACV
Song Cao, Kan Chen, Ram Nevatia
2016 B conf
ICPR
Song Cao, Ram Nevatia
2016 J jnl
CoRR
Wael Abd-Almageed, Yue Wu, Stephen Rawls, Shai Harel, Tal Hassner, Iacopo Masi, Jongmoo Choi, Jatuporn Toy Leksut, Jungyeon Kim, Prem Natarajan, Ram Nevatia, Gérard G. Medioni
2016 A conf
WACV
Wael Abd-Almageed, Yue Wu, Stephen Rawls, Shai Harel, Tal Hassner, Iacopo Masi, Jongmoo Choi, Jatuporn Toy Leksut, Jungyeon Kim, Prem Natarajan, Ram Nevatia, Gérard G. Medioni
2016 conf
ACCV (5)
Feng-Ju Chang, Ram Nevatia
2016 conf
ACCV (2)
Jiyang Gao, Ram Nevatia
2016 J jnl
CoRR
Jiyang Gao, Ram Nevatia
2016 A* conf
CVPR
Chen Sun, Manohar Paluri, Ronan Collobert, Ram Nevatia, Lubomir D. Bourdev
2016 B conf
ICPR
Rama Kovvuri, Ram Nevatia, Cees G. M. Snoek
2016 A conf
WACV
Arnav Agharwal, Rama Kovvuri, Ram Nevatia, Cees G. M. Snoek
2015 A conf
WACV
Pramod Sharma, Ram Nevatia
2015 J jnl
CoRR
Kan Chen, Jiang Wang, Liang-Chieh Chen, Haoyuan Gao, Wei Xu, Ram Nevatia
2015 A* conf
ICCV
Chen Sun, Chuang Gan, Ram Nevatia
2015 J jnl
CoRR
Chen Sun, Chuang Gan, Ram Nevatia
2015 A conf
WACV
Weijun Wang, Ram Nevatia, Bo Yang
2015 A conf
WACV
Song Cao, Ram Nevatia
2015 J jnl
CoRR
Chen Sun, Manohar Paluri, Ronan Collobert, Ram Nevatia, Lubomir D. Bourdev
2015 A* conf
ACM Multimedia
Chen Sun, Sanketh Shetty, Rahul Sukthankar, Ram Nevatia
2015 J jnl
CoRR
Chen Sun, Sanketh Shetty, Rahul Sukthankar, Ram Nevatia
2014 J jnl
Mach. Vis. Appl.
Sung Chun Lee, Ram Nevatia
2014 B conf
ICMR
Chen Sun, J. Brian Burns, Ram Nevatia, Cees Snoek, Bob Bolles, Gregory K. Myers, Wen Wang, Eric Yeh
2014 conf
ACCV (5)
Prithviraj Banerjee, Ram Nevatia
2014 conf
ECCV (1)
Chen Sun, Ram Nevatia
2014 conf
TRECVID
Robert C. Bolles, J. Brian Burns, James A. Herson, Gregory K. Myers, Julien van Hout, Wen Wang, Julie Wong, Eric Yeh, Amirhossein Habibian, Dennis C. Koelma, Thomas Mensink, Arnold W. M. Smeulders, Cees G. M. Snoek, Arnav Aggarwal, Song Cao, Kan Chen, Rama Kovvuri, Ram Nevatia, Pramod Sharma
2013 A* conf
ICCV
Chen Sun, Ram Nevatia
2013 B conf
AVSS
Furqan M. Khan, Sung Chun Lee, Ram Nevatia
2013 A* conf
CVPR
Pramod Sharma, Ram Nevatia
2013 A conf
WACV
Chen Sun, Ram Nevatia
2013 conf
TRECVID
Robert C. Bolles, J. Brian Burns, James A. Herson, Gregory K. Myers, Stephanie Pancoast, Julien van Hout, Wen Wang, Julie Wong, Eric Yeh, Amirhossein Habibian, Dennis C. Koelma, Zhenyang Li, Masoud Mazloom, Silvia-Laura Pintea, Arnold W. M. Smeulders, Cees G. M. Snoek, Sung Chun Lee, Ram Nevatia, Pramod Sharma, Chen Sun, Rémi Trichet
2012 A conf
WACV
Peter H. Tu, Ting Yu, Dashan Gao, Ram Nevatia, Sung Chun Lee, Hale Kim, Phill-Kyu Rhee, Joong-Hwan Baek
2012 A* conf
CVPR
Bo Yang, Ram Nevatia
2012 B conf
ICPR
Pramod Sharma, Chang Huang, Ram Nevatia
2012 A* conf
CVPR
Bo Yang, Ram Nevatia
2012 conf
ECCV (1)
Bo Yang, Ram Nevatia
2012 B conf
ICPR
Markus Roth, Martin Bäuml, Ram Nevatia, Rainer Stiefelhagen
2012 A conf
WACV
Furqan M. Khan, Vivek Kumar Singh, Ram Nevatia
2012 conf
TRECVID
Murat Akbacak, Robert C. Bolles, J. Brian Burns, Mark Elliot, Aaron Heller, James A. Herson, Gregory K. Myers, Ramesh Nallapati, Stephanie Pancoast, Julien van Hout, Eric Yeh, Amirhossein Habibian, Dennis C. Koelma, Zhenyang Li, Masoud Mazloom, Silvia-Laura Pintea, Koen E. A. van de Sande, Arnold W. M. Smeulders, Cees G. M. Snoek, Sung Chun Lee, Ram Nevatia, Pramod Sharma, Chen Sun, Rémi Trichet
2012 A* conf
CVPR
Pramod Sharma, Chang Huang, Ram Nevatia
2011 B conf
AVSS
Peter H. Tu, Ting Yu, Dashan Gao, Ram Nevatia, Sung Chun Lee, Hale Kim, Phill-Kyu Rhee, Joong-Hwan Baek
2011 A* conf
ICCV
Vivek Kumar Singh, Ram Nevatia
2011 A* conf
CVPR
Cheng-Hao Kuo, Ram Nevatia
2011 A* conf
CVPR
Bo Yang, Chang Huang, Ram Nevatia
2011 B conf
AVSS
Prithviraj Banerjee, Ram Nevatia
2011 J jnl
Comput. Vis. Image Underst.
Bo Yang, Chang Huang, Ram Nevatia
2011 J jnl
Vis. Comput.
Vivek Kumar Singh, Ram Nevatia
2011 conf
TRECVID
Murat Akbacak, Robert C. Bolles, J. Brian Burns, Mark Elliot, Aaron Heller, James A. Herson, Gregory K. Myers, Ramesh Nallapati, Eric Yeh, Dennis C. Koelma, Xirong Li, Masoud Mazloom, Koen E. A. van de Sande, Arnold W. M. Smeulders, Cees G. M. Snoek, Sung Chun Lee, Ram Nevatia, Pramod Sharma, Chen Sun, Rémi Trichet
2011 A conf
WACV
Bo Yang, Pramod Sharma, Ram Nevatia
2010 conf
ICVGIP
Pradeep Natarajan, Prithviraj Banerjee, Ram Nevatia
2010 B conf
AVSS
Prithviraj Banerjee, Ram Nevatia
2010 conf
ECCV (3)
Vivek Kumar Singh, Ram Nevatia, Chang Huang
2010 conf
ICVGIP
Vivek Kumar Singh, Ram Nevatia
2010 conf
ECCV (1)
Cheng-Hao Kuo, Chang Huang, Ram Nevatia
2010 A* conf
CVPR
Pradeep Natarajan, Vivek Kumar Singh, Ram Nevatia
2010 A* conf
CVPR
Cheng-Hao Kuo, Chang Huang, Ram Nevatia
2010 conf
CVPR Workshops
Vivek Kumar Singh, Furqan Muhammad Khan, Ram Nevatia
2009 J jnl
Int. J. Comput. Vis.
Bo Wu, Ram Nevatia
2009 A conf
WACV
Bo Yang, Chang Huang, Ram Nevatia
2009 A* conf
CVPR
Yuan Li, Chang Huang, Ram Nevatia
2008 conf
TRECVID
Sung Lee, Chang Huang, Ram Nevatia
2008 B conf
ICPR
Yuan Li, Bo Wu, Ram Nevatia
2008 conf
ECCV (4)
Yuan Li, Ram Nevatia
2008 A* conf
CVPR
Bo Wu, Ram Nevatia
2008 A* conf
CVPR
Bo Wu, Ram Nevatia, Yuan Li
2008 A* conf
CVPR
Pradeep Natarajan, Ram Nevatia
2007 A* conf
CVPR
Bo Wu, Ram Nevatia
2007 A* conf
CVPR
Li Zhang, Bo Wu, Ram Nevatia
2007 A* conf
CVPR
Bo Wu, Ram Nevatia
2007 conf
CLEAR
Sung Chun Lee, Ram Nevatia
2006 conf
CLEAR
Bo Wu, Xuefeng Song, Vivek Kumar Singh, Ram Nevatia
2006 A conf
ICME
Cyrus Shahabi, Yao-Yi Chiang, Kelvin Chung, Kai-Chen Huang, Jeff Khoshgozaran-Haghighi, Craig A. Knoblock, Sung Lee, Ulrich Neumann, Ram Nevatia, Arjun Rihan, Snehal Thakkar, Suya You
2006 conf
CLEAR
Xuefeng Song, Ram Nevatia
2006 conf
CLEAR
Bo Wu, Vivek Kumar Singh, Ram Nevatia, Chi-Wei Chu
2006 conf
CVPR Workshops
Bo Wu, Ram Nevatia
2006 conf
CVPR (1)
Bo Wu, Ram Nevatia
2005 J jnl
IEEE Multim.
Alexandre R. J. François, Ram Nevatia, Jerry R. Hobbs, Robert C. Bolles
2004 conf
CVPR Workshops
Ram Nevatia, Jerry R. Hobbs, Bob Bolles
2003 conf
CVPR Workshops
Ram Nevatia, Tao Zhao, Somboon Hongeng
1994 conf
ICPR (3)
Ram Nevatia, Craig C. Reinhart
1989 J jnl
Mach. Vis. Appl.
Steven L. Tanimoto, Sargur N. Srihari, Martin D. Levine, Warren P. Seering, Ram Nevatia
1983 J jnl
SIGART Newsl.
Ram Nevatia
1979 A* conf
IJCAI
Ram Nevatia, Keith E. Price, Felicia M. Vilnrotter
redb/extractors/macho_extractors/macho_segments.py
← Index redb/extractors/macho_extractors/macho_segments.py python
import hashlib
import inspect
import base64
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.macho_extractor import MachOExtractor
from redb.models.dataclasses import MachOSegment


class MachOSegmentExtractor(MachOExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            macho,
        )
        self.elastic_index = self.index_prefix + "-macho_segments"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def _is_empty_result(self, extracted_data) -> bool:
        """
        Override: Empty segments is an ERROR, not a valid empty case.
        A valid MachO file must have segments (at minimum __PAGEZERO, __TEXT).
        """
        # Always return False - empty segments should be treated as an error
        return False

    def tag(self):
        return Tag.MACHO_SEGMENT.value

    def _extract_segments_for_arch(self, arch_name):
        """Extract segment information for a specific architecture."""
        self.log.debug(f"Extracting segments for architecture: {arch_name}")
        segments = []

        try:
            # Get segments using new API with architecture parameter
            segments_data = self.macho.get_segments(arch=arch_name)
            if not segments_data:
                return segments

            # Extract segments for this architecture
            for segment in segments_data:
                try:
                    segment_name = segment.get('segname', 'Unknown')

                    # Calculate segment hash
                    segment_data = self._get_segment_data(segment)
                    if segment_data:
                        seg_sha256 = hashlib.sha256(segment_data).hexdigest()
                    else:
                        seg_sha256 = ""

                    # Use entropy already calculated by machofile module, rounded to 3 decimal places
                    seg_entropy = round(segment.get('entropy', 0.0), 3)

                    # Create segment dataclass with architecture info
                    macho_segment = MachOSegment(
                        segment_name=segment_name,
                        segment_vaddr=segment.get('vaddr', 0),
                        segment_vsize=segment.get('vsize', 0),
                        segment_offset=segment.get('offset', 0),
                        segment_size=segment.get('size', 0),
                        segment_max_vm_protection=segment.get('max_vm_protection', 0),
                        segment_initial_vm_protection=segment.get('initial_vm_protection', 0),
                        segment_nsects=segment.get('nsects', 0),
                        segment_flags=segment.get('flags', 0),
                        segment_entropy=seg_entropy,
                        segment_sha256=seg_sha256,
                    )
                    # Add architecture info to the segment
                    macho_segment.architecture = arch_name
                    segments.append(macho_segment)

                except Exception as e:
                    self.log.warning(
                        f'Unable to process segment "{segment.get("segname", "Unknown")}" for architecture {arch_name} in {self.hash.sha256}: {e}'
                    )
                    continue

            return segments

        except Exception as e:
            self.log.error(f"Error extracting MachO segments for architecture {arch_name}: {e}")
            return segments

    def _extract_segments(self):
        """Extract segment information from all architectures in the MachO binary."""
        self.log.debug(inspect.currentframe().f_code.co_name)
        segments = []

        if not self.macho:
            return segments

        try:
            # Get architectures using new API (already parsed in base class)
            architectures = self.macho.get_architectures()
            if not architectures:
                return segments

            # Process each architecture
            for arch_name in architectures:
                arch_segments = self._extract_segments_for_arch(arch_name)
                segments.extend(arch_segments)

            return segments

        except Exception as e:
            self.log.error(f"Error extracting MachO segments: {e}")
            return segments

    def _get_segment_data(self, segment):
        """Get the raw data for a segment."""
        try:
            offset = segment.get('offset', 0)
            size = segment.get('size', 0)
            
            if size == 0:
                return None
            
            # Read segment data from file
            with open(self.filepath, 'rb') as f:
                f.seek(offset)
                return f.read(size)
                
        except Exception as e:
            self.log.warning(f"Error reading segment data: {e}")
            return None

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            segments = self._extract_segments()
            return segments
        except Exception as e:
            self.log.error(f"Error extracting MachO segments: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            if not self.macho:
                return None

            # Get architectures (macho is already parsed in base class)
            try:
                architectures = self.macho.get_architectures()
                is_fat = len(architectures) > 1
            except Exception as e:
                self.log.error(f"Could not get architectures: {e}")
                return None

            data = []
            current_time = datetime.now(timezone.utc)

            # Loop through each architecture (1 for single, multiple for FAT)
            for arch_name in architectures:
                # Extract segments for this specific architecture
                segments = self._extract_segments_for_arch(arch_name)
                if not segments:
                    continue

                # Get architecture-specific sha256 and header info
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)

                    # Get raw architecture value
                    arch_header_raw = self.macho.get_macho_header(arch=arch_name)
                    arch_cputype_raw = arch_header_raw.get('cputype', 0) if arch_header_raw else 0
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific data for {arch_name}: {e}")
                    arch_sha256 = self.sha256
                    arch_cputype_raw = 0

                for segment in segments:
                    data.append([
                        arch_sha256,                          # sha256 (architecture-specific)
                        segment.segment_name,                 # segment_name
                        segment.segment_vaddr,                # segment_vaddr
                        segment.segment_vsize,                # segment_vsize
                        segment.segment_offset,               # segment_offset
                        segment.segment_size,                 # segment_size
                        segment.segment_max_vm_protection,    # segment_max_vm_protection
                        segment.segment_initial_vm_protection, # segment_initial_vm_protection
                        segment.segment_nsects,               # segment_nsects
                        segment.segment_flags,                # segment_flags
                        segment.segment_entropy,              # segment_entropy
                        segment.segment_sha256,               # segment_sha256
                        current_time,                         # analysis_date
                    ])

            column_names = [
                'sha256',
                'segment_name', 'segment_vaddr', 'segment_vsize', 'segment_offset',
                'segment_size', 'segment_max_vm_protection', 'segment_initial_vm_protection',
                'segment_nsects', 'segment_flags', 'segment_entropy', 'segment_sha256',
                'analysis_date'
            ]

            if not data:
                return None

            column_type_names = [
                'FixedString(64)',
                'String', 'UInt64', 'UInt64', 'UInt64',
                'UInt64', 'UInt32', 'UInt32',
                'UInt32', 'UInt32', 'Float64', 'FixedString(64)',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

        return None

    def get_clickhouse_table(self) -> str:
        return "redb_macho_segments"