V. Chandrasekar

232 papers B 5C 129Journal 71Unranked 27
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jason E. Hodkin, Edwin Lee, V. Chandrasekar
2025 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Steffy Benny, Swaroop Sahoo, S. Athira, V. Chandrasekar
2025 conf
SysCon
William Brooks, V. Chandrasekar, Robert Cifelli
2024 C conf
IGARSS
Eiichi Yoshikawa, V. Chandrasekar, Makoto Aoki, Hironori Iwai, Tomoo Ushio, Shoken Ishii
2024 C conf
IGARSS
Chandrasekar Radhakrishnan, V. Chandrasekar, Steven C. Reising, Shannon T. Brown
2024 C conf
IGARSS
Minda Le, V. Chandrasekar
2024 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Ivan Arias Hernandez, V. Chandrasekar
2024 conf
SysCon
William Brooks, V. Chandrasekar, Robert Cifelli
2024 J jnl
IEEE Trans. Geosci. Remote. Sens.
Sounak Kumar Biswas, Robert Cifelli, V. Chandrasekar
2023 J jnl
IEEE Trans. Geosci. Remote. Sens.
Shashank S. Joshil, V. Chandrasekar
2023 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Ivan Arias Hernandez, V. Chandrasekar
2023 C conf
IGARSS
Chandrasekar Radhakrishnan, V. Chandrasekar, Steven C. Reising, Shannon T. Brown
2023 J jnl
IEEE Trans. Geosci. Remote. Sens.
Minda Le, V. Chandrasekar
2023 C conf
IGARSS
William Blackwell, C. Kataria, William Moulder, Steven C. Reising, V. Chandrasekar
2023 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Shashank S. Joshil, V. Chandrasekar, David B. Wolff
2023 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Chandrasekar Radhakrishnan, V. Chandrasekar, Steven C. Reising, Wesley K. Berg, Shannon T. Brown
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Lei Han, Yangyang Zhao, Haonan Chen, V. Chandrasekar
2022 C conf
IGARSS
Albin J. Gasiewski, V. Chandrasekar
2022 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Chandrasekar Radhakrishnan, V. Chandrasekar, Steven C. Reising, Wesley K. Berg, Shannon T. Brown, Simone Tanelli, Ousmane O. Sy, Gian Franco Sacco
2022 C conf
IGARSS
Chandrasekar Radhakrishnan, V. Chandrasekar, Steven C. Reising, Wesley K. Berg, Shannon T. Brown
2022 J jnl
IEEE Trans. Geosci. Remote. Sens.
Joaquin Cuomo, V. Chandrasekar
2022 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Chandrasekar Radhakrishnan, V. Chandrasekar, Steven C. Reising, Wesley K. Berg
2022 C conf
IGARSS
Shashank S. Joshil, V. Chandrasekar, Kevin R. Maschhoff, Martin F. Ryba, Yanting Wang
2022 C conf
IGARSS
V. Chandrasekar, Minda Le
2021 conf
SysCon
William Brooks, V. Chandrasekar, Greg Pratt, Robert Cifelli
2021 C conf
IGARSS
Minda Le, V. Chandrasekar
2021 C conf
IGARSS
V. Chandrasekar, Chandrasekar Radhakrishnan, Steven C. Reising, Wesley K. Berg, Shannon T. Brown, Simone Tanelli, Ousmane O. Sy, Gian Franco Sacco
2021 C conf
IGARSS
Haonan Chen, V. Chandrasekar
2021 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Yuriy V. Goncharenko, Wesley K. Berg, Steven C. Reising, Flavio Iturbide-Sanchez, V. Chandrasekar
2021 J jnl
IEEE Trans. Geosci. Remote. Sens.
Steven Ryan Gooch, V. Chandrasekar
2021 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Zhaoming Li, Haonan Chen, Hongxing Chu, Haobo Tan, V. Chandrasekar, Xianxiang Huang, Shuofu Wang
2021 C conf
IGARSS
Chandrasekar Radhakrishnan, V. Chandrasekar, Wesley K. Berg, Steven C. Reising
2021 C conf
IGARSS
Shashank S. Joshil, V. Chandrasekar, Kevin R. Maschhoff, Martin F. Ryba, Yanting Wang
2020 J jnl
IEEE Trans. Geosci. Remote. Sens.
Yabin Gou, Haonan Chen, V. Chandrasekar
2020 J jnl
IEEE Trans. Geosci. Remote. Sens.
Haonan Chen, V. Chandrasekar, Robert Cifelli, Pingping Xie
2020 C conf
IGARSS
V. Chandrasekar, Haonan Chen
2020 C conf
IGARSS
Shashank S. Joshil, V. Chandrasekar
2020 C conf
IGARSS
Luyao Sun, Haonan Chen, Lei Han, V. Chandrasekar, Jieying He, Yang Liu
2020 C conf
IGARSS
V. Chandrasekar, Minda Le
2020 C conf
IGARSS
Sounak Kumar Biswas, Robert Cifelli, V. Chandrasekar
2020 J jnl
IEEE Trans. Geosci. Remote. Sens.
Mohit Kumar, V. Chandrasekar
2020 J jnl
Remote. Sens.
Yu Ma, Haonan Chen, Guangheng Ni, V. Chandrasekar, Yabin Gou, Wenjuan Zhang
2020 J jnl
IEEE Trans. Geosci. Remote. Sens.
Seppo Pulkkinen, V. Chandrasekar, Annakaisa von Lerber, Ari-Matti Harri
2020 C conf
IGARSS
Mohit Kumar, V. Chandrasekar, Shashank S. Joshil
2020 C conf
IGARSS
Apoorva Bajaj, Brenda Philips, Eric Lyons, David Westbrook, Michael Zink, V. Chandrasekar, E. Huffman
2020 C conf
IGARSS
Haonan Chen, Robert Cifelli, V. Chandrasekar
2020 C conf
IGARSS
V. Chandrasekar, Shashank S. Joshil
2019 C conf
IGARSS
Amit Dutta, Evan Ruzanski, V. Chandrasekar
2019 C conf
IGARSS
Steven Ryan Gooch, V. Chandrasekar
2019 C conf
IGARSS
Ivan Arias, V. Chandrasekar, Shashank S. Joshil
2019 C conf
IGARSS
Wesley K. Berg, Sharmila Padmanabhan, Todd Gaier, Christian Kummerow, Steven C. Reising, V. Chandrasekar, Rick Schulte, Yuriy V. Goncharenko, Braxton Kilmer, Shannon T. Brown, Boon H. Lim
2019 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Seppo Pulkkinen, V. Chandrasekar, Ari-Matti Harri
2019 C conf
IGARSS
Shashank S. Joshil, V. Chandrasekar
2019 C conf
IGARSS
V. Chandrasekar, Shashank S. Joshil, Mohit Kumar, Manuel A. Vega, David Wolff, Walter A. Petersen
2019 C conf
IGARSS
Minda Le, V. Chandrasekar
2018 C conf
IGARSS
Steven C. Reising, Todd C. Gaier, Sharmila Padmanabhan, Boon H. Lim, Cate Heneghan, Christian D. Kummerow, Wesley K. Berg, V. Chandrasekar, Chandrasekar Radhakrishnan, Shannon T. Brown, John Carvo, Matthew Pallas
2018 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Jianbing Li, Hang Gao, Yongzhen Li, Xuesong Wang, V. Chandrasekar
2018 C conf
IGARSS
Ivan Arias, V. Chandrasekar
2018 C conf
IGARSS
V. Chandrasekar, Sounak Kumar Biswas, Minda Le, Haonan Chen
2018 C conf
IGARSS
V. Chandrasekar, Manuel A. Vega, Shashank S. Joshil, Mohit Kumar, David Wolff, Walter A. Petersen
2018 C conf
IGARSS
Mohit Kumar, Shashank S. Joshil, Manuel Vega, V. Chandrasekar, John W. Zebley
2018 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Seppo Pulkkinen, V. Chandrasekar, Ari-Matti Harri
2018 C conf
IGARSS
Sharmila Padmanabhan, Todd C. Gaier, Boon H. Lim, Robert Stachnik, Alan B. Tanner, Shannon T. Brown, Steven C. Reising, Wesley K. Berg, Christian D. Kummerow, V. Chandrasekar
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Minda Le, V. Chandrasekar, Sounak Kumar Biswas
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Robert M. Beauchamp, V. Chandrasekar
2017 C conf
IGARSS
Haonan Chen, V. Chandrasekar
2017 C conf
IGARSS
Robert Cifelli, Haonan Chen, V. Chandrasekar
2017 C conf
IGARSS
Haonan Chen, V. Chandrasekar
2017 C conf
IGARSS
Jonathan P. Olson, Sounak Kumar Biswas, V. Chandrasekar, Steven C. Reising
2017 C conf
IGARSS
Steven C. Reising, Todd C. Gaier, Christian D. Kummerow, Sharmila Padmanabhan, Boon H. Lim, Cate Heneghan, Wesley K. Berg, V. Chandrasekar, Jonathan P. Olson, Shannon T. Brown, John Carvo, Matthew Pallas
2017 C conf
IGARSS
Sheng Chen, Haonan Chen, V. Chandrasekar, Junjun Hu, Asi Zhang, Wenping Yuan
2017 C conf
IGARSS
V. Chandrasekar, Robert M. Beauchamp, Manuel Vega, Haonan Chen, Mohit Kumar, Shashank S. Joshil, Mathew R. Schwaller, Walter A. Petersen, David Wolff
2017 C conf
IGARSS
Eiichi Yoshikawa, Tomoo Ushio, V. Chandrasekar
2017 C conf
IGARSS
Sanghun Lim, V. Chandrasekar, Bong-Joo Jang, Hyunjung Kim, GyuWon Lee
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Hiroshi Kikuchi, Ting Wu, Eiichi Yoshikawa, Tomoo Ushio, Hideto Goto, Fumihiko Mizutani, Masakazu Wada, V. Chandrasekar
2017 C conf
IGARSS
Mohit Kumar, Shashank S. Joshil, V. Chandrasekar, Robert M. Beauchamp, Manuel Vega, John W. Zebley
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Robert M. Beauchamp, Simone Tanelli, Eva Peral, V. Chandrasekar
2017 C conf
IGARSS
Shashank S. Joshil, Robert M. Beauchamp, V. Chandrasekar
2017 C conf
IGARSS
V. Chandrasekar, Minda Le
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Robert M. Beauchamp, V. Chandrasekar
2017 C conf
IGARSS
Brenda Philips, Ted Ryan, V. Chandrasekar, Eric Lyons, Tom Bradshaw, Mark Fox, Francesc Junyent, Apoorva Bajaj
2017 C conf
IGARSS
Robert M. Beauchamp, V. Chandrasekar
2016 J jnl
IEEE Trans. Geosci. Remote. Sens.
Sanghun Lim, V. Chandrasekar
2016 C conf
IGARSS
Haonan Chen, V. Chandrasekar, Sanghun Lim, Robert M. Beauchamp
2016 C conf
IGARSS
V. Chandrasekar, Robert M. Beauchamp, Haonan Chen, Manuel Vega, Mathew R. Schwaller, Delbert Willie, Aaron Dabrowski, Mohit Kumar, Walter A. Petersen, David Wolff
2016 J jnl
IEEE Trans. Geosci. Remote. Sens.
Robert M. Beauchamp, V. Chandrasekar
2016 C conf
IGARSS
Minda Le, V. Chandrasekar
2016 C conf
IGARSS
V. Chandrasekar, Minda Le
2016 J jnl
IEEE Trans. Geosci. Remote. Sens.
Shigeharu Shimamura, V. Chandrasekar, Tomoo Ushio, Gwan Kim, Eiichi Yoshikawa, Haonan Chen
2016 C conf
IGARSS
Shigeharu Shimamura, Tomoo Ushio, Gwan Kim, Eiichi Yoshikawa, V. Chandrasekar
2016 C conf
IGARSS
Haonan Chen, V. Chandrasekar
2016 C conf
IGARSS
Delbert Willie, Haonan Chen, V. Chandrasekar, Robert Cifelli
2016 J jnl
IEEE Trans. Geosci. Remote. Sens.
Robert M. Beauchamp, V. Chandrasekar
2016 J jnl
IEEE Trans. Geosci. Remote. Sens.
Christopher R. Williams, Robert M. Beauchamp, V. Chandrasekar
2015 C conf
IGARSS
Haonan Chen, V. Chandrasekar
2015 C conf
IGARSS
V. Chandrasekar, Robert M. Beauchamp, Haonan Chen, Manuel Vega, Mathew R. Schwaller, Walter A. Petersen, David Wolff
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Haonan Chen, V. Chandrasekar
2015 C conf
IGARSS
V. Chandrasekar, Minda Le
2015 C conf
IGARSS
Renzo Bechini, V. Chandrasekar, Juanzhen Sun
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Laura Alku, Dmitri Moisseev, Tuomas Aittomäki, V. Chandrasekar
2015 C conf
IGARSS
Robert M. Beauchamp, V. Chandrasekar, Manuel Vega
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Robert M. Beauchamp, V. Chandrasekar
2015 C conf
IGARSS
Delbert Willie, V. Chandrasekar
2015 C conf
IGARSS
Evan Ruzanski, V. Chandrasekar
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Evan Ruzanski, V. Chandrasekar
2014 J jnl
IEEE Trans. Geosci. Remote. Sens.
Minda Le, V. Chandrasekar
2014 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jorge M. Trabal, Eugenio Gorgucci, V. Chandrasekar, David J. McLaughlin
2014 C conf
IGARSS
V. Chandrasekar, Srinivasa Ramanujam K., Haonan Chen, Minda Le, Amin Alqudah
2014 C conf
IGARSS
V. Chandrasekar, Minda Le, Jun Awaka
2013 C conf
IGARSS
Delbert Willie, Haonan Chen, V. Chandrasekar, Robert Cifelli, Carroll Campbell, David Reynolds
2013 C conf
IGARSS
Miguel B. Galvez, Jose G. Colom, V. Chandrasekar, Francesc Junyent, Sandra Cruz-Pol, Rafael A. Rodríguez-Solís, Leyda V. Leon-Colon, Jose J. Rosario-Colon, Benjamin De Jesus, Jose A. Ortiz, Keyla M. Mora-Navarro
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Minda Le, V. Chandrasekar
2013 C conf
IGARSS
Minda Le, V. Chandrasekar
2013 J jnl
Digit. Signal Process.
Suk Hwan Lee, Ki-Ryong Kwon, Won-Joo Hwang, V. Chandrasekar
2013 C conf
IGARSS
V. Chandrasekar, Srinivasa Ramanujam K., Minda Le
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Minda Le, V. Chandrasekar
2013 C conf
IGARSS
V. Chandrasekar, Haonan Chen, Luca Baldini, Dmitri Moisseev
2012 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jason Fritz, V. Chandrasekar
2012 C conf
IGARSS
Joseph C. Hardin, V. Chandrasekar
2012 J jnl
J. Netw. Comput. Appl.
Panho Lee, Anura P. Jayasumana, H. M. N. Dilum Bandara, Sanghun Lim, V. Chandrasekar
2012 C conf
IGARSS
Eiichi Yoshikawa, V. Chandrasekar, Tomoo Ushio, Zen Kawasaki
2012 C conf
IGARSS
Manuel Vega, V. Chandrasekar, Cuong Nguyen, Kumar Vijay Mishra, James R. Carswell
2012 C conf
IGARSS
V. Chandrasekar, Mathew R. Schwaller, Manuel Vega, James R. Carswell, Kumar Vijay Mishra, Alex Steinberg, Cuong Nguyen, Minda Le, Joseph C. Hardin, Francesc Junyent, Jim George
2012 C conf
IGARSS
Luca Baldini, Nicoletta Roberto, Eugenio Gorgucci, Luca Facheris, V. Chandrasekar
2012 C conf
IGARSS
Haonan Chen, V. Chandrasekar
2012 J jnl
IEEE Trans. Geosci. Remote. Sens.
Minda Le, V. Chandrasekar
2012 C conf
IGARSS
Eiichi Yoshikawa, V. Chandrasekar, Tomoo Ushio, Zen Kawasaki
2012 C conf
IGARSS
Minda Le, V. Chandrasekar
2012 C conf
IGARSS
Evan Ruzanski, V. Chandrasekar
2012 C conf
IGARSS
Brenda Philips, V. Chandrasekar
2012 C conf
IGARSS
Kumar Vijay Mishra, V. Chandrasekar, Cuong Nguyen, Manuel Vega
2011 C conf
IGARSS
Luca Baldini, Nicoletta Roberto, Eugenio Gorgucci, Jason Fritz, V. Chandrasekar
2011 C conf
IGARSS
Sanghun Lim, V. Chandrasekar
2011 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jussi Leinonen, Dmitri Moisseev, V. Chandrasekar, Jarkko Koskinen
2011 C conf
IGARSS
Annakaisa von Lerber, Dmitri Moisseev, Jussi Leinonen, Jani Tyynela, V. Chandrasekar, Martti T. Hallikainen
2011 C conf
IGARSS
Minda Le, V. Chandrasekar
2011 J jnl
IEEE Trans. Geosci. Remote. Sens.
Evan Ruzanski, V. Chandrasekar
2011 C conf
IGARSS
Evan Ruzanski, V. Chandrasekar, Delbert Willie
2010 C conf
IGARSS
Sanghun Lim, V. Chandrasekar, Yanting Wang
2010 C conf
IGARSS
V. Chandrasekar, Matthew Martinez, Sean Zhang
2010 C conf
IGARSS
Gianni Alexis Pablos-Vega, Jose G. Colom-Ustariz, Sandra Cruz-Pol, Jorge M. Trabal, V. Chandrasekar, Jim George, Francesc Junyent
2010 C conf
IGARSS
Jorge M. Trabal, V. Chandrasekar, Eugenio Gorgucci, David J. McLaughlin
2010 C conf
IGARSS
Minda Le, V. Chandrasekar, Sanghun Lim
2010 C conf
IGARSS
Minda Le, V. Chandrasekar, Sanghun Lim
2010 C conf
IGARSS
Evan Ruzanski, V. Chandrasekar
2010 C conf
IGARSS
Manuel Vega, James R. Carswell, V. Chandrasekar, Mathew R. Schwaller, Kumar Vijay Mishra
2010 C conf
IGARSS
Eugenio Gorgucci, Luca Baldini, V. Chandrasekar
2010 C conf
IGARSS
V. Chandrasekar, Mathew R. Schwaller, Manuel Vega, James R. Carswell, Kumar Vijay Mishra, Robert Meneghini, Cuong Nguyen
2010 C conf
IGARSS
Kumar Vijay Mishra, V. Chandrasekar
2010 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jason Fritz, V. Chandrasekar
2010 C conf
IGARSS
Chakravarthy Balaji, Mmanu Chaturvedi, Srinivasa Ramanujam K., V. Chandrasekar, Cuong Nguyen, Matthew Martinez
2009 conf
IGARSS (2)
Jason Fritz, V. Chandrasekar
2009 conf
IGARSS (2)
V. Chandrasekar, Delbert Willie, Yanting Wang, Sanghun Lim, David McLaughlin
2009 conf
IGARSS (1)
Minda Le, V. Chandrasekar, Sanghun Lim
2009 B conf
LCN
Panho Lee, Anura P. Jayasumana, Saket Doshi, V. Chandrasekar
2009 conf
IGARSS (2)
Jorge M. Trabal, V. Chandrasekar, Eugenio Gorgucci, David McLaughlin
2009 conf
IGARSS (3)
Miguel B. Galvez, Jose G. Colom, V. Chandrasekar, Francesc Junyent, Sandra Cruz-Pol, Rafael A. Rodríguez-Solís
2009 conf
IGARSS (3)
Evan Ruzanski, Yanting Wang, V. Chandrasekar
2009 conf
IGARSS (3)
Francesc Junyent, V. Chandrasekar, Nitin Bharadwaj
2008 conf
IGARSS (5)
Jim George, Nitin Bharadwaj, V. Chandrasekar
2008 conf
IGARSS (5)
Yanting Wang, V. Chandrasekar, Brenda Dolan
2008 conf
IGARSS (5)
V. Chandrasekar, David J. McLaughlin, Jerry Brotzge, Michael Zink, Brenda Philips, Yanting Wang
2008 conf
IGARSS (2)
Cuong Nguyen, V. Chandrasekar, Dmitri Moisseev
2008 conf
IGARSS (5)
Jason Fritz, V. Chandrasekar
2008 J jnl
IEEE Trans. Geosci. Remote. Sens.
Yuei-An Liou, Manuel Hernández-Pajares, V. Chandrasekar, Ed R. Westwater
2008 conf
IGARSS (4)
V. Chandrasekar, Amin Alqudah, Yanting Wang
2008 conf
IGARSS (5)
Michael Zink, Eric Lyons, David Westbrook, David L. Pepyne, Brenda Philips, Jim Kurose, V. Chandrasekar
2008 conf
IGARSS (4)
Nitin Bharadwaj, V. Chandrasekar
2008 conf
IGARSS (5)
Boon Leng Cheong, Robert D. Palmer, V. Chandrasekar, Francesc Junyent
2008 conf
IGARSS (5)
Sanghun Lim, V. Chandrasekar, Panho Lee, Anura P. Jayasumana
2008 conf
IGARSS (5)
Eugenio Gorgucci, Luca Baldini, V. Chandrasekar, Minda Le
2008 conf
IGARSS (4)
Direk Khajonrat, V. Chandrasekar
2008 conf
IGARSS (4)
Jason Fritz, V. Chandrasekar
2008 conf
IGARSS (4)
Francesc Junyent, V. Chandrasekar
2008 J jnl
IEEE Trans. Geosci. Remote. Sens.
Erich Hefner, V. Chandrasekar
2007 C conf
IGARSS
Cuong Nguyen, Dmitri Moisseev, V. Chandrasekar
2007 C conf
IGARSS
Basim J. Zafar, V. Chandrasekar
2007 C conf
IGARSS
V. Chandrasekar, Dmitri Moisseev, Jim George
2007 C conf
IGARSS
Nitin Bharadwaj, V. Chandrasekar, Francesc Junyent
2007 J jnl
IEEE Trans. Geosci. Remote. Sens.
Thomas Wilheit, V. Chandrasekar, Wanyu Li
2007 C conf
IGARSS
Jason Fritz, V. Chandrasekar
2007 C conf
IGARSS
Frank Silvio Marzano, G. Poccia, R. Cantelmi, Nazzareno Pierdicca, James A. Weinman, V. Chandrasekar, Alberto Mugnai
2007 C conf
IGARSS
Francesc Junyent, V. Chandrasekar
2007 C conf
IGARSS
Eugenio Gorgucci, Luca Baldini, V. Chandrasekar
2007 C conf
IGARSS
Yuxiang Liu, Yanting Wang, V. Chandrasekar, Viswanathan N. Bringi
2007 C conf
IGARSS
Sanghun Lim, V. Chandrasekar, Panho Lee, Anura P. Jayasumana
2007 C conf
IGARSS
Direk Khajonrat, V. Chandrasekar, G. Viswanathan, Vikas Shellar
2007 J jnl
IEEE Trans. Geosci. Remote. Sens.
Chris R. Rose, V. Chandrasekar
2006 conf
COMSWARE
Tarun Banka, Panho Lee, Anura P. Jayasumana, V. Chandrasekar
2006 C conf
IGARSS
Basim J. Zafar, V. Chandrasekar
2006 J jnl
Computer
Beth Plale, Dennis Gannon, Jerry Brotzge, Kelvin Droegemeier, James F. Kurose, David McLaughlin, Robert B. Wilhelmson, Sara J. Graves, Mohan Ramamurthy, Richard D. Clark, Sepi Yalda, Daniel A. Reed, Everette Joseph, V. Chandrasekar
2006 B conf
LCN
Panho Lee, Tarun Banka, Anura P. Jayasumana, V. Chandrasekar
2006 C conf
IGARSS
Jim George, D. Brunkow, V. Chandrasekar
2006 C conf
IGARSS
Erich Hefner, V. Chandrasekar
2006 C conf
IGARSS
C. M. Nguyen, Dmitri Moisseev, V. Chandrasekar
2006 C conf
IGARSS
Jason Fritz, V. Chandrasekar, Pat Kennedy, Rita Roberts
2006 C conf
IGARSS
Wanyu Li, V. Chandrasekar, Merhala Thurai
2006 C conf
IGARSS
Direk Khajonrat, V. Chandrasekar
2006 C conf
IGARSS
Eugenio Gorgucci, Luca Baldini, V. Chandrasekar
2006 C conf
IGARSS
Margarita Baquero, Sandra Cruz-Pol, Viswanathan N. Bringi, V. Chandrasekar
2006 C conf
IGARSS
Nitin Bharadwaj, V. Chandrasekar
2005 B conf
DCOSS
Michael Zink, David Westbrook, Eric Lyons, Kurt Hondl, James F. Kurose, Francesc Junyent, Luko Krnan, V. Chandrasekar
2005 J jnl
IEEE Geosci. Remote. Sens. Lett.
Gang Xu, V. Chandrasekar
2004 C conf
IGARSS
Basim J. Zafar, V. Chandrasekar
2004 C conf
IGARSS
Khalid Mubarak, Khalid Al Midfa, V. Chandrasekar
2004 J jnl
IEEE Trans. Geosci. Remote. Sens.
V. Chandrasekar, Basim J. Zafar
2004 C conf
IGARSS
V. Chandrasekar, Wanyu Li
2003 C conf
IGARSS
V. Chandrasekar, Khalid Mubarak, Sanghun Lim
2003 C conf
IGARSS
Basim J. Zafar, Khalid Mubarak, V. Chandrasekar
2003 conf
ICC
Sangeetha L. Bangolae, Anura P. Jayasumana, V. Chandrasekar
2003 J jnl
IEEE Trans. Geosci. Remote. Sens.
V. Chandrasekar, Hiroki Fukatsu, Khalid Mubarak
2003 conf
ICECS
Khalid Mubarak, V. Chandrasekar
2003 C conf
IGARSS
Eugenio Gorgucci, Luca Baldini, Alberto Mugnai, Franco Siccardi, V. Chandrasekar
2003 C conf
IGARSS
Wanyu Li, V. Chandrasekar, G. Xu
2003 J jnl
IEEE Trans. Geosci. Remote. Sens.
V. Chandrasekar, Steven M. Bolen, Eugenio Gorgucci
2003 B conf
LCN
Sangeetha L. Bangolae, Anura P. Jayasumana, V. Chandrasekar
2002 C conf
IGARSS
K. Gojara, V. Chandrasekar
2002 B conf
LCN
Yoong-Goog Cho, V. Chandrasekar, Daniel A. Vivanco
2002 C conf
IGARSS
Wanyu Li, V. Chandrasekar
2001 J jnl
IEEE Trans. Geosci. Remote. Sens.
Viswanathan N. Bringi, T. D. Keenan, V. Chandrasekar
2001 J jnl
IEEE Trans. Geosci. Remote. Sens.
Hongping Liu, V. Chandrasekar, Eugenio Gorgucci
2000 J jnl
IEEE Trans. Geosci. Remote. Sens.
Abou El-Magd, V. Chandrasekar, Viswanathan N. Bringi, W. Strapp
1999 J jnl
IEEE Trans. Geosci. Remote. Sens.
Eugenio Gorgucci, Gianfranco Scarchilli, V. Chandrasekar
1999 J jnl
IEEE Trans. Geosci. Remote. Sens.
Gianfranco Scarchilli, Eugenio Gorgucci, V. Chandrasekar
1998 J jnl
IEEE Trans. Geosci. Remote. Sens.
Rongrui Xiao, V. Chandrasekar, Hongping Liu
1998 J jnl
IEEE Trans. Geosci. Remote. Sens.
Ashok S. Mudukutore, V. Chandrasekar, R. Jeffrey Keeler
1998 J jnl
IEEE Trans. Geosci. Remote. Sens.
Viswanathan N. Bringi, V. Chandrasekar, Rongrui Xiao
1997 J jnl
IEEE Trans. Geosci. Remote. Sens.
Rongrui Xiao, V. Chandrasekar
1997 J jnl
Int. J. Syst. Sci.
H. Al-Duwaish, M. Nazmul Karim, V. Chandrasekar
1996 J jnl
IEEE Trans. Geosci. Remote. Sens.
Gianfranco Scarchilli, Eugenio Gorgucci, V. Chandrasekar, A. Dobaie
1996 J jnl
IEEE Trans. Geosci. Remote. Sens.
I. Jeff Caylor, V. Chandrasekar
1992 J jnl
IEEE Trans. Geosci. Remote. Sens.
Eugenio Gorgucci, Gianfranco Scarchilli, V. Chandrasekar
redb/extractors/elf_extractor.py
← Index redb/extractors/elf_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

from elftools.elf.elffile import ELFFile
from elftools.common.exceptions import ELFError

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


@abstractmethod
class ELFExtractor(Extractor, metaclass=ABCMeta):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        elf=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious
        )
        # Store ELF object if provided, otherwise we'll create it per-operation for security
        self._provided_elf = elf
        self._elf_file_valid = None  # Cache validity check

    def _with_elf_file(self, operation):
        """Safely execute an operation with an ELF file using context manager.

        Args:
            operation: A callable that takes an ELFFile object and returns a result

        Returns:
            The result of the operation, or None if an error occurred
        """
        if self._provided_elf:
            try:
                return operation(self._provided_elf)
            except ELFError as e:
                if "String Table not found" in str(e):
                    self.log.warning(f"String table missing in ELF {self.hash.sha256}: {e}")
                    return None
                else:
                    self.log.error(f"ELF format error {self.hash.sha256} Full error: {e}")
                    return None
            except Exception as e:
                self.log.error(f"Error processing ELF file {self.hash.sha256} Full error: {e}")
                return None

        try:
            with open(self.filepath, 'rb') as f:
                elf = ELFFile(f)
                if not elf:
                    raise ELFError("Empty file?")
                return operation(elf)
        except ELFError as e:
            if "String Table not found" in str(e):
                self.log.warning(f"String table missing in ELF {self.hash.sha256}: {e}")
                return None
            else:
                self.log.error(f"ELF format error {self.hash.sha256} Full error: {e}")
                return None
        except Exception as e:
            self.log.error(f"Error reading ELF file {self.hash.sha256} Full error: {e}")
            return None

    def _is_elf_file(self):
        """Check if the file is a valid ELF binary."""
        if self._elf_file_valid is not None:
            return self._elf_file_valid

        def check_elf_validity(elf):
            # pyelftools ELFFile object existing means it's valid ELF
            # Just check that we can access the header
            header = elf.header
            return header is not None

        try:
            result = self._with_elf_file(check_elf_validity)
            self._elf_file_valid = bool(result)
            return self._elf_file_valid
        except Exception as e:
            self.log.error(f"Error checking ELF file: {e}")
            self._elf_file_valid = False
            return False

    def _is_64bit(self):
        """Check if the ELF binary is 64-bit."""
        def check_64bit(elf):
            return elf.header.get('e_ident', {}).get('EI_CLASS') == 'ELFCLASS64'

        try:
            result = self._with_elf_file(check_64bit)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking ELF bitness: {e}")
            return False

    def _is_stripped(self):
        """Check if the ELF binary is stripped (no symbol table)."""
        def check_stripped(elf):
            # Look for symbol table sections
            for section in elf.iter_sections():
                if section.name in ['.symtab', '.strtab']:
                    return False
            return True

        try:
            result = self._with_elf_file(check_stripped)
            return result if result is not None else True
        except Exception as e:
            self.log.error(f"Error checking if ELF is stripped: {e}")
            return True

    def _has_debug_info(self):
        """Check if the ELF binary contains debug information."""
        def check_debug_info(elf):
            # Look for debug sections
            debug_sections = ['.debug_info', '.debug_line', '.debug_str', '.debug_abbrev']
            for section in elf.iter_sections():
                if section.name in debug_sections:
                    return True
            return False

        try:
            result = self._with_elf_file(check_debug_info)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking debug info: {e}")
            return False

    def _get_architecture(self):
        """Get the architecture of the ELF binary."""
        def get_arch(elf):
            machine = elf.header.get('e_machine', 'EM_NONE')

            # Map common machine types to readable names
            arch_map = {
                'EM_386': 'x86',
                'EM_X86_64': 'x86_64',
                'EM_ARM': 'ARM',
                'EM_AARCH64': 'ARM64',
                'EM_MIPS': 'MIPS',
                'EM_PPC': 'PowerPC',
                'EM_PPC64': 'PowerPC64',
                'EM_SPARC': 'SPARC',
                'EM_RISCV': 'RISC-V'
            }

            return arch_map.get(machine, machine)

        try:
            result = self._with_elf_file(get_arch)
            return result if result is not None else "unknown"
        except Exception as e:
            self.log.error(f"Error getting architecture: {e}")
            return "unknown"

    def _get_endianness(self):
        """Get the endianness of the ELF binary."""
        def get_endian(elf):
            data_encoding = elf.header.get('e_ident', {}).get('EI_DATA')
            if data_encoding == 'ELFDATA2LSB':
                return "little"
            elif data_encoding == 'ELFDATA2MSB':
                return "big"
            return "unknown"

        try:
            result = self._with_elf_file(get_endian)
            return result if result is not None else "unknown"
        except Exception as e:
            self.log.error(f"Error getting endianness: {e}")
            return "unknown"

    def _get_file_type(self):
        """Get the file type of the ELF binary."""
        def get_file_type(elf):
            etype = elf.header.get('e_type', 'ET_NONE')

            # Map file types to readable names
            type_map = {
                'ET_NONE': 'none',
                'ET_REL': 'relocatable',
                'ET_EXEC': 'executable',
                'ET_DYN': 'shared_object',
                'ET_CORE': 'core_dump'
            }

            return type_map.get(etype, etype)

        try:
            result = self._with_elf_file(get_file_type)
            return result if result is not None else "unknown"
        except Exception as e:
            self.log.error(f"Error getting file type: {e}")
            return "unknown"

    def _is_pie(self):
        """Check if the ELF binary is position-independent executable."""
        def check_pie(elf):
            # PIE binaries are typically ET_DYN type
            etype = elf.header.get('e_type', 'ET_NONE')
            if etype == 'ET_DYN':
                # Check if it has an entry point (executable) vs library
                entry_point = elf.header.get('e_entry', 0)
                return entry_point > 0
            return False

        try:
            result = self._with_elf_file(check_pie)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking PIE: {e}")
            return False

    def _has_stack_protection(self):
        """Check if the binary has stack protection (canaries)."""
        def check_stack_protection(elf):
            # Look for stack protection symbols
            stack_symbols = ['__stack_chk_fail', '__stack_chk_guard']

            for section in elf.iter_sections():
                if hasattr(section, 'iter_symbols'):
                    for symbol in section.iter_symbols():
                        if symbol.name in stack_symbols:
                            return True
            return False

        try:
            result = self._with_elf_file(check_stack_protection)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking stack protection: {e}")
            return False

    def _has_nx_bit(self):
        """Check if the binary has NX bit (non-executable stack)."""
        def check_nx_bit(elf):
            # Look for GNU_STACK segment
            for segment in elf.iter_segments():
                if segment.header.get('p_type') == 'PT_GNU_STACK':
                    flags = segment.header.get('p_flags', 0)
                    # Check if execute flag is NOT set (NX enabled)
                    return not (flags & 0x1)  # PF_X = 0x1
            return False

        try:
            result = self._with_elf_file(check_nx_bit)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking NX bit: {e}")
            return False

    def _has_relro(self):
        """Check if the binary has RELRO (Relocation Read-Only)."""
        def check_relro(elf):
            # Look for GNU_RELRO segment
            for segment in elf.iter_segments():
                if segment.header.get('p_type') == 'PT_GNU_RELRO':
                    return True
            return False

        try:
            result = self._with_elf_file(check_relro)
            return bool(result)
        except Exception as e:
            self.log.error(f"Error checking RELRO: {e}")
            return False

    def _get_build_id(self):
        """Extract build ID from notes section."""
        def get_build_id(elf):
            # Look for build ID in notes sections
            for section in elf.iter_sections():
                if section.name == '.note.gnu.build-id':
                    for note in section.iter_notes():
                        if note['n_type'] == 'NT_GNU_BUILD_ID':
                            # Convert bytes to hex string
                            build_id = note['n_desc']
                            if isinstance(build_id, bytes):
                                return build_id.hex()
                            return str(build_id)
            return None

        try:
            result = self._with_elf_file(get_build_id)
            return result
        except Exception as e:
            self.log.error(f"Error getting build ID: {e}")
            return None

    def _count_sections(self):
        """Count the number of sections in the ELF file."""
        def count_sections(elf):
            return elf.header.get('e_shnum', 0)

        try:
            result = self._with_elf_file(count_sections)
            return result if result is not None else 0
        except Exception as e:
            self.log.error(f"Error counting sections: {e}")
            return 0

    def _count_segments(self):
        """Count the number of segments (program headers) in the ELF file."""
        def count_segments(elf):
            return elf.header.get('e_phnum', 0)

        try:
            result = self._with_elf_file(count_segments)
            return result if result is not None else 0
        except Exception as e:
            self.log.error(f"Error counting segments: {e}")
            return 0

    def _count_symbols(self):
        """Count the total number of symbols in symbol tables."""
        def count_symbols(elf):
            symbol_count = 0
            for section in elf.iter_sections():
                if hasattr(section, 'iter_symbols'):
                    symbol_count += section.num_symbols()
            return symbol_count

        try:
            result = self._with_elf_file(count_symbols)
            return result if result is not None else 0
        except Exception as e:
            self.log.error(f"Error counting symbols: {e}")
            return 0

    def _get_dependencies(self):
        """Get list of dynamic dependencies."""
        def get_dependencies(elf):
            dependencies = []
            dynamic_section = elf.get_section_by_name('.dynamic')
            if dynamic_section:
                for tag in dynamic_section.iter_tags():
                    if tag.entry.d_tag == 'DT_NEEDED':
                        dependencies.append(tag.needed)
            return dependencies

        try:
            result = self._with_elf_file(get_dependencies)
            return result if result is not None else []
        except Exception as e:
            self.log.error(f"Error getting dependencies: {e}")
            return []