Malek Adjouadi

168 papers A 8B 4C 21Misc 5Journal 59Unranked 68
YearRankTypeTitle / Venue / Authors
2025 J jnl
Inf.
Pontakorn Sonchan, Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Malek Adjouadi, Armando Barreto
2024 conf
EMBC
Thony Yan Liang, Christian Freytes, Xueting Cui, Bipul Simkhada, Marcos Bosques-Perez, Mercedes Cabrerizo, Armando Barreto, Malek Adjouadi
2024 conf
HCI (24)
Pontakorn Sonchan, Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Malek Adjouadi, Armando Barreto
2024 conf
EMBC
Mina Ezzati Asl, Josue D. Rodriguez, Mercedes Cabrerizo, Anuj Jayakar, Armando Barreto, Malek Adjouadi
2023 conf
HCI (1)
Pontakorn Sonchan, Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Malek Adjouadi, Armando Barreto
2023 J jnl
Inf. Fusion
Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Pontakorn Sonchan, Malek Adjouadi, Armando Barreto
2023 J jnl
Artif. Intell. Medicine
Mohammad Eslami, Solale Tabarestani, Malek Adjouadi
2023 conf
BHI
Josue D. Rodriguez, Mercedes Cabrerizo, Marcos A. Bosques, Ilker Yaylali, Malek Adjouadi
2023 J jnl
Sensors
Pontakorn Sonchan, Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Malek Adjouadi, Armando Barreto
2023 J jnl
Artif. Intell. Medicine
Ahmed Hossam Mohammed, Mercedes Cabrerizo, Alberto Pinzon, Ilker Yaylali, Prasanna Jayakar, Malek Adjouadi
2023 J jnl
Cogn. Comput.
Ulyana Morar, Harold Martin, Robin Perry Mayrand, Walter Izquierdo, Elaheh Zarafshan, Parisa Forouzannezhad, Elona Unger, Mercedes Cabrerizo, Rosie E. Curiel, Monica Rosselli, Armando Barreto, Naphtali Rishe, David E. Vaillancourt, Steven DeKosky, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2023 J jnl
J. Big Data
Naphtali Rishe, M. Hadi Amini, Malek Adjouadi
2022 J jnl
CoRR
Mohammad Eslami, Solale Tabarestani, Ehsan Adeli, Glyn Elwyn, Tobias Elze, Mengyu Wang, Nazlee Zebardast, Nassir Navab, Malek Adjouadi
2022 conf
CSCI
Luana Okino Sawada, Ulyana Morar, Robin Perry Mayrand, Christian Yaphet Freytes, Micheal Adeyosoye, Mercedes Cabrerizo, Rosie E. Curiel Cid, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2022 conf
CSCI
Robin Perry Mayrand, Christian Yaphet Freytes, Luana Okino Sawada, Micheal Adeyosoye, Rosie E. Curiel Cid, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2022 conf
CSCI
Elaheh Zarafshan, Parisa Forouzannezhad, Hoda Rajaei, Ulyana Morar, Mercedes Cabrerizo, Ilker Yaylali, Alberto Pinzon, Malek Adjouadi
2022 J jnl
IEEE Access
Ahmed Hossam Mohammed, Ulyana Morar, Mercedes Cabrerizo, Hoda Rajaei, Alberto Pinzon, Ilker Yaylali, Malek Adjouadi
2022 conf
HCI (2)
Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Pontakorn Sonchan, Malek Adjouadi, Armando Barreto
2022 conf
CSCI
Xueting Cui, Thony Yan Liang, Maryamossadat Aghili, Micheal Adeyosoye, Rosie E. Curiel Cid, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2021 J jnl
IEEE Access
Mahmoud Sharafi Masouleh, Amin Kargar Behbahani, Malek Adjouadi
2021 J jnl
CoRR
Mohammad Eslami, Solale Tabarestani, Malek Adjouadi
2021 conf
IEEE SENSORS
Neeranut Ratchatanantakit, Nonnarit O.-Larnnithipong, Pontakorn Sonchan, Malek Adjouadi, Armando Barreto
2021 J jnl
Biomed. Signal Process. Control.
Harold Martin, Walter Izquierdo, Mercedes Cabrerizo, Anastasio Cabrera, Malek Adjouadi
2021 J jnl
IEEE Access
Ahmed Hossam Mohammed, Mercedes Cabrerizo, Ulyana Morar, Hoda Rajaei, Alberto Pinzon, Ilker Yaylali, Sergio Gonzales-Arias, Malek Adjouadi
2021 J jnl
Artif. Intell. Medicine
Harold Martin, Ulyana Morar, Walter Izquierdo, Mercedes Cabrerizo, Anastasio Cabrera, Malek Adjouadi
2020 J jnl
NeuroImage
Solale Tabarestani, Maryamossadat Aghili, Mohammad Eslami, Mercedes Cabrerizo, Armando Barreto, Naphtali Rishe, Rosie E. Curiel, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2020 J jnl
IET Image Process.
Mehdi Mafi, Walter Izquierdo, Harold Martin, Mercedes Cabrerizo, Malek Adjouadi
2020 J jnl
IEEE Trans. Biomed. Eng.
Hoda Rajaei, Malek Adjouadi, Mercedes Cabrerizo, Panuwat Janwattanapong, Alberto Pinzon-Ardila, Sergio Gonzales-Arias, Armando Barreto, Jean Andrian, Naphtali Rishe, Ilker Yaylali
2020 C conf
ICMLA
Liangdong Deng, Malek Adjouadi, Naphtali Rishe
2020 conf
CCWC
Mehdi Mafi, Walter Izquierdo, Malek Adjouadi
2020 J jnl
IEEE Trans. Medical Imaging
Mohammad Eslami, Solale Tabarestani, Shadi Albarqouni, Ehsan Adeli, Nassir Navab, Malek Adjouadi
2020 conf
ISBI Workshops
Mohammad Eslami, Solale Tabarestani, Malek Adjouadi
2020 conf
MECO
Naphtali David Rishe, Malek Adjouadi, Francisco R. Ortega
2020 J jnl
IET Image Process.
Mehdi Mafi, Walter Izquierdo, Mercedes Cabrerizo, Armando Barreto, Jean Andrian, Naphtali David Rishe, Malek Adjouadi
2019 J jnl
Signal Process.
Mehdi Mafi, Harold Martin, Mercedes Cabrerizo, Jean Andrian, Armando Barreto, Malek Adjouadi
2019 J jnl
CoRR
Mohammad Eslami, Solale Tabarestani, Shadi Albarqouni, Ehsan Adeli, Nassir Navab, Malek Adjouadi
2019 conf
BHI
Solale Tabarestani, Maryamossadat Aghili, Mehdi Shojaie, Christian Freytes, Mercedes Cabrerizo, Armando Barreto, Naphtali Rishe, Rosie E. Curiel, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2019 conf
HCI (8)
Nonnarit O.-Larnnithipong, Neeranut Ratchatanantakit, Sudarat Tangnimitchok, Francisco R. Ortega, Armando B. Barreto, Malek Adjouadi
2018 C conf
ICMLA
Parisa Forouzannezhad, Alireza Abbaspour, Chunfei Li, Mercedes Cabrerizo, Malek Adjouadi
2018 J jnl
IEEE Trans. Image Process.
Mehdi Mafi, Hoda Rajaei, Mercedes Cabrerizo, Malek Adjouadi
2018 J jnl
IET Image Process.
Mehdi Mafi, Solale Tabarestani, Mercedes Cabrerizo, Armando Barreto, Malek Adjouadi
2018 conf
BioCAS
Parisa Forouzannezhad, Alireza Abbaspour, Mercedes Cabrerizo, Malek Adjouadi
2018 J jnl
Int. J. Neural Syst.
Chen Fang, Chunfei Li, Mercedes Cabrerizo, Armando Barreto, Jean Andrian, Naphtali Rishe, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2018 conf
PRIME@MICCAI
Maryamossadat Aghili, Solale Tabarestani, Malek Adjouadi, Ehsan Adeli
2018 C conf
ICMLA
Solale Tabarestani, Maryamossadat Aghili, Mehdi Shojaie, Christian Freytes, Malek Adjouadi
2017 J jnl
Int. J. Neural Syst.
Lilin Guo, Zhenzhong Wang, Mercedes Cabrerizo, Malek Adjouadi
2017 conf
BIBM
Chen Fang, Chunfei Li, Mercedes Cabrerizo, Armando Barreto, Jean Andrian, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2017 C conf
BIBE
Chunfei Li, Chen Fang, Malek Adjouadi, Mercedes Cabrerizo, Armando Barreto, Jean Andrian, Ranjan Duara, David A. Loewenstein
2017 C conf
BIBE
Chen Fang, Chunfei Li, Mercedes Cabrerizo, Armando Barreto, Jean Andrian, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2017 J jnl
CoRR
Chen Fang, Panuwat Janwattanapong, Chunfei Li, Malek Adjouadi
2017 C conf
BIBE
Panuwat Janwattanapong, Mercedes Cabrerizo, Chen Fang, Hoda Rajaei, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Malek Adjouadi
2017 conf
BIBM
Chen Fang, Panuwat Janwattanapong, Harold Martin, Mercedes Cabrerizo, Armando Barreto, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2017 C conf
BIBE
Hoda Rajaei, Mercedes Cabrerizo, Panuwat Janwattanapong, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Armando Barreto, Malek Adjouadi
2017 J jnl
Int. J. Embed. Syst.
Gildo Torres, Paul McCall, Chen Liu, Mercedes Cabrerizo, Malek Adjouadi
2017 conf
BIBM
Chunfei Li, Chen Fang, Mercedes Cabrerizo, Armando Barreto, Jean Andrian, Ranjan Duara, David A. Loewenstein, Malek Adjouadi
2016 conf
EMBC
Lilin Guo, Zhenzhong Wang, Malek Adjouadi
2016 conf
EMBC
Lilin Guo, Zhenzhong Wang, Mercedes Cabrerizo, Malek Adjouadi
2016 conf
EMBC
Hoda Rajaei, Mercedes Cabrerizo, Panuwat Janwattanapong, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Malek Adjouadi
2016 C conf
ICMLA
Saman Sargolzaei, Mercedes Cabrerizo, Arman Sargolzaei, Shirin Noei, Malek Adjouadi
2016 conf
GlobalSIP
Panuwat Janwattanapong, Mercedes Cabrerizo, Hoda Rajaei, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Malek Adjouadi
2016 J jnl
Neurocomputing
Zhenzhong Wang, Lilin Guo, Malek Adjouadi
2015 J jnl
BMC Bioinform.
Saman Sargolzaei, Arman Sargolzaei, Mercedes Cabrerizo, Gang Chen, Mohammed Goryawala, Shirin Noei, Qi Zhou, Ranjan Duara, Warren Barker, Malek Adjouadi
2015 J jnl
BMC Bioinform.
Saman Sargolzaei, Mercedes Cabrerizo, Arman Sargolzaei, Shirin Noei, Anas Salah Eddin, Hoda Rajaei, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Prasanna Jayakar, Malek Adjouadi
2015 J jnl
IEEE Trans. Multim.
Amin Motahari, Malek Adjouadi
2015 J jnl
Neuroinformatics
Saman Sargolzaei, Arman Sargolzaei, Mercedes Cabrerizo, Gang Chen, Mohammed Goryawala, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Malek Adjouadi
2015 conf
HCI (2)
Francisco R. Ortega, Armando B. Barreto, Naphtali Rishe, Nonnarit O.-Larnnithipong, Malek Adjouadi, Fatemeh Abyarjoo
2015 J jnl
Comput. Intell. Neurosci.
Mohammed Goryawala, Qi Zhou, Warren Barker, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2015 conf
BioCAS
Hoda Rajaei, Mercedes Cabrerizo, Saman Sargolzaei, Alberto Pinzon-Ardila, Sergio M. Gonzalez-Arias, Malek Adjouadi
2015 J jnl
Comput. Biol. Medicine
Saman Sargolzaei, Mercedes Cabrerizo, Mohammed Goryawala, Anas Salah Eddin, Malek Adjouadi
2014 conf
EMBC
Zhenzhong Wang, Lilin Guo, Malek Adjouadi
2014 J jnl
Int. J. Neural Syst.
Zhenzhong Wang, Lilin Guo, Malek Adjouadi
2014 conf
EMBC
Mohammed Goryawala, Qi Zhou, Ranjan Duara, David A. Loewenstein, Mercedes Cabrerizo, Warren Barker, Malek Adjouadi
2014 J jnl
IEEE Trans. Biomed. Eng.
Qi Zhou, Mohammed Goryawala, Mercedes Cabrerizo, Jin Wang, Warren Barker, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2014 conf
EMBC
Saman Sargolzaei, Mohammed Goryawala, Mercedes Cabrerizo, G. Chen, Prasanna Jayakar, Ranjan Duara, Warren Barker, Malek Adjouadi
2014 conf
EMBC
Qi Zhou, Mohammed Goryawala, Mercedes Cabrerizo, Warren Barker, David A. Loewenstein, Ranjan Duara, Malek Adjouadi
2014 conf
HCI (1)
Francisco R. Ortega, Su Liu, Frank Hernandez, Armando B. Barreto, Naphtali Rishe, Malek Adjouadi
2014 J jnl
Behav. Inf. Technol.
Jian Huang, Armando Barreto, Peng Ren, Malek Adjouadi
2013 J jnl
IEEE Trans. Affect. Comput.
Peng Ren, Armando Barreto, Ying Gao, Malek Adjouadi
2013 J jnl
NeuroImage
Binjian Sun, Madison M. Berl, Thomas G. Burns, William D. Gaillard, Laura Hayes, Malek Adjouadi, Richard A. Jones
2013 B conf
ITS
Francisco R. Ortega, Frank Hernandez, Armando B. Barreto, Naphtali Rishe, Malek Adjouadi, Su Liu
2013 conf
3DUI
Francisco R. Ortega, Armando B. Barreto, Naphtali Rishe, Malek Adjouadi, Fatemeh Abyarjoo
2013 J jnl
IEEE J. Biomed. Health Informatics
Ana M. Guzman, Mohammed Goryawala, Jin Wang, Armando Barreto, Jean Andrian, Naphtali Rishe, Malek Adjouadi
2012 J jnl
IEEE Trans. Inf. Technol. Biomed.
Mohammed Goryawala, Magno R. Guillen, Mercedes Cabrerizo, Armando Barreto, Seza Gulec, Tushar C. Barot, Rekha R. Suthar, Ruchir N. Bhatt, Anthony J. McGoron, Malek Adjouadi
2012 J jnl
Int. J. Neural Syst.
Mercedes Cabrerizo, Melvin Ayala, Mohammed Goryawala, Prasanna Jayakar, Malek Adjouadi
2012 conf
EMBC
Jian Huang, Armando Barreto, Malek Adjouadi
2012 A conf
ASSETS
Jian Huang, Armando Barreto, Malek Adjouadi
2012 conf
ESPA
Ana M. Guzman, Mohammed Goryawala, Malek Adjouadi
2011 conf
EMBC
Peng Ren, Armando Barreto, Ying Gao, Malek Adjouadi
2011 C conf
HPCC
Javier Delgado, Anas Salah Eddin, Malek Adjouadi, Seyed Masoud Sadjadi
2011 J jnl
ACM Trans. Comput. Educ.
Ann Quiroz Gates, Sarah Hug, Heather Thiry, Richard A. Aló, Mohsen Beheshti, John Fernandez, Nestor Rodriguez, Malek Adjouadi
2011 conf
EMBC
Jian Huang, Armando Barreto, Miguel Alonso Jr., Malek Adjouadi
2010 B conf
AINA
Mohammed Goryawala, Magno R. Guillen, Ruchir N. Bhatt, Anthony J. McGoron, Malek Adjouadi
2010 J jnl
Comput. Appl. Eng. Educ.
Melvin Ayala, Malek Adjouadi, Mercedes Cabrerizo, Armando Barreto
2010 J jnl
Image Vis. Comput.
Yu Chen, Malek Adjouadi, Changan Han, Jin Wang, Armando Barreto, Naphtali Rishe, Jean Andrian
2010 Misc conf
GrC
Ariel Cary, Yaacov Yesha, Malek Adjouadi, Naphtali Rishe
2010 J jnl
Neurocomputing
Jin Wang, Armando Barreto, Lu Wang, Yu Chen, Naphtali Rishe, Jean Andrian, Malek Adjouadi
2010 conf
IPDPS Workshops
Javier Delgado, Seyed Masoud Sadjadi, Marion Bright, Malek Adjouadi, Hector A. Duran-Limon
2010 ch.
Handbook of Social Network Technologies
Lester Melendez, Ouri Wolfson, Malek Adjouadi, Naphtali Rishe
2009 A conf
ASSETS
Armando Barreto, Kenneth John Faller, Malek Adjouadi
2009 conf
NBiS
Feng Gui, Magno R. Guillen, Naphtali Rishe, Armando Barreto, Jean Andrian, Malek Adjouadi
2009 conf
AINA Workshops
Feng Gui, Malek Adjouadi, Naphtali Rishe
2009 conf
IPCV
Yu Chen, Malek Adjouadi
2009 conf
ISBI
Yu Chen, Malek Adjouadi, Changan Han, Armando Barreto
2009 conf
IPCV
Mouncef Lahlou, Malek Adjouadi, Armando Barreto
2009 Misc conf
Richard Tapia Celebration of Diversity in Computing Conference
Magno R. Guillen, Malek Adjouadi, Byron Bernal, Melvin Ayala, Armando Barreto, Naphtali Rishe, Gabriel Lizárraga, Xiaozhen You, William D. Gaillard
2009 J jnl
Comput. Biol. Medicine
Melvin Ayala, Mercedes Cabrerizo, Maria Tito, Armando Barreto, Malek Adjouadi
2009 conf
SCSS
Ying Gao, Armando Barreto, Malek Adjouadi
2009 conf
IPCV
Xiaozhen You, Magno R. Guillen, William D. Gaillard, Malek Adjouadi
2009 J jnl
Comput. Biol. Medicine
Maria Tito, Mercedes Cabrerizo, Melvin Ayala, Armando Barreto, Ian Miller, Prasanna Jayakar, Malek Adjouadi
2009 conf
IPCV
Changan Han, Malek Adjouadi, Armando Barreto, Naphtali Rishe, Jean Andrian
2009 J jnl
Int. J. Artif. Intell. Tools
Craig A. Chin, Armando Barreto, Malek Adjouadi
2009 conf
IPCV
Jin Wang, Malek Adjouadi
2009 conf
HCI (1)
Ying Gao, Armando Barreto, Malek Adjouadi
2009 conf
SCSS
Peng Ren, Armando Barreto, Malek Adjouadi
2009 Misc conf
Richard Tapia Celebration of Diversity in Computing Conference
Javier Delgado, Malek Adjouadi
2009 conf
CSIE (5)
Feng Gui, Malek Adjouadi, Naphtali Rishe
2009 conf
AINA Workshops
Magno R. Guillen, Malek Adjouadi, Xiaozhen You, Armando Barreto, Naphtali Rishe, William D. Gaillard
2008 conf
AIPR
Jin Wang, Yu Chen, Malek Adjouadi
2008 A conf
SIGCSE
Irene Polycarpou, Ana Pasztor, Malek Adjouadi
2008 conf
AIPR
Yu Chen, Jin Wang, Changan Han, Lu Wang, Malek Adjouadi
2008 C conf
ICCHP
Anaelis Sesin, Malek Adjouadi, Mercedes Cabrerizo, Melvin Ayala, Armando Barreto
2008 C conf
ICCHP
Lu Wang, Malek Adjouadi
2008 conf
SCSS (2)
Kenneth John Faller, Armando Barreto, Malek Adjouadi
2008 A conf
ASSETS
Armando Barreto, Ying Gao, Malek Adjouadi
2008 B conf
AINA
Javier Delgado, Malek Adjouadi
2008 conf
Mardi Gras Conference
Seyed Masoud Sadjadi, Liana Fong, Rosa M. Badia, Javier Figueroa, Javier Delgado, Xabriel J. Collazo-Mojica, Khalid Saleem, Raju Rangaswami, Shu Shimizu, Hector A. Duran-Limon, Pat Welsh, Sandeep Pattnaik, Anthony Praino, David Villegas, Selim Kalayci, Gargi Dasgupta, Onyeka Ezenwoye, Juan Carlos Martínez, Ivan Rodero, Shuyi Chen, Javier Muñoz, Diego R. López, Julita Corbalán, Hugh Willoughby, Michael McFail, Christine L. Lisetti, Malek Adjouadi
2007 conf
Enterprise Information Systems and Web Technologies
Jorge Guerra, Luis Useche, Miguel Rivero, Imtiaz Syed, Hussein Orelus, Malek Adjouadi, Armando Barreto, Bradley Stoute, Scott Graham, Naphtali Rishe
2007 J jnl
Int. J. Image Graph.
Danmary Sanchez, Malek Adjouadi, Nolan R. Altman, Daniel Sánchez, Byron Bernal
2007 conf
Enterprise Information Systems and Web Technologies
Malek Adjouadi, Marie L. Lucas, Emanuel L. Pozo, Hien Nguyen, Kevin Maynard, Stacey Thomas, Armando Barreto, Scott Graham, Naphtali Rishe
2007 conf
Enterprise Information Systems and Web Technologies
Armando Barreto, Ben Wongsaroj, Tariq M. King, Tuan Cameron, Suzette V. Diaz, Joseph Cilli, Abdul Muqueet, Sean D. Bullard, Malek Adjouadi, Ouri Wolfson, Scott Graham, Naphtali Rishe
2007 A conf
ASSETS
Miguel Alonso Jr., Armando Barreto, Julie A. Jacko, Malek Adjouadi
2007 conf
ICCV-HCI
Armando Barreto, Jing Zhai, Malek Adjouadi
2007 A conf
ASSETS
Craig A. Chin, Armando Barreto, J. Gualberto Cremades, Malek Adjouadi
2007 conf
Enterprise Information Systems and Web Technologies
Naphtali Rishe, Ouri Wolfson, Ben Wongsaroj, Damian Small, Mauricio Alarcon, Naidel Lorenzo, Ricardo Koller, Sajib Kundu, Scott Graham, Kevin Alexander, Malek Adjouadi
2007 conf
Enterprise Information Systems and Web Technologies
Malek Adjouadi, Armando Barreto, Dinesh Tenneti, Md. Raoof, K. Rama Krishna, Yixis Cejas, Norris Milton II, Scott Graham, Naphtali Rishe
2006 C conf
SEKE
Li Yang, Joseph M. Kizza, Raimund K. Ege, Malek Adjouadi
2006 A conf
ASSETS
Miguel Alonso Jr., Armando Barreto, Julie A. Jacko, Malek Adjouadi
2006 C conf
ICCHP
Andres Herrera, Malek Adjouadi, Melvin Ayala
2006 J jnl
Comput. Biol. Medicine
Mark A. Rossman, Malek Adjouadi, Melvin Ayala, Ilker Yaylali
2006 conf
ISDA (2)
Feng Gui, Nuannuan Zong, Malek Adjouadi
2006 C conf
ICCHP
Malek Adjouadi, Eddy Ruiz, Lu Wang
2006 J jnl
Int. J. Image Graph.
Weiting Cai, Malek Adjouadi
2006 C conf
ICCHP
Miguel Alonso Jr., Armando Barreto, Malek Adjouadi, Julie A. Jacko
2005 C conf
ISDA
Nuannuan Zong, Feng Gui, Malek Adjouadi
2005 J jnl
Behav. Inf. Technol.
Miguel Alonso Jr., Armando Barreto, J. Gualberto Cremades, Julie A. Jacko, Malek Adjouadi
2005 ch.
Advances in Bioinformatics and Its Applications
Michel Mourad, Malek Adjouadi, Ilker Yaylali
2005 conf
ICEIS (1)
Naphtali Rishe, Malek Adjouadi, Maxim Chekmasov, Dmitry Vasilevsky, Scott Graham, Dayanara Hernandez, Ouri Wolfson
2005 ch.
Advances in Bioinformatics and Its Applications
J. Gualberto Cremades, Maria Tito, Malek Adjouadi, Armando Barreto
2005 A conf
ASSETS
Miguel Alonso Jr., Armando Barreto, Julie A. Jacko, Malek Adjouadi
2005 conf
ICEIS (1)
Naphtali Rishe, Malek Adjouadi, Maxim Chekmasov, Dmitry Vasilevsky, Scott Graham, Dayanara Hernandez, Ouri Wolfson
2004 C conf
ICCHP
Malek Adjouadi, Dalila Landestoy, Melvin Ayala, Walter Tischer
2004 conf
ICASSP (2)
Weiting Cai, Malek Adjouadi
2004 J jnl
Comput. Hum. Behav.
J. Gualberto Cremades, Armando Barreto, Danmary Sanchez, Malek Adjouadi
2004 J jnl
IEEE Trans. Biomed. Eng.
Malek Adjouadi, Danmary Sanchez, Mercedes Cabrerizo, Melvin Ayala, Prasanna Jayakar, Ilker Yaylali, Armando Barreto
2004 conf
ITCC (1)
Weiting Cai, Malek Adjouadi
2004 C conf
ICCHP
Malek Adjouadi, Anaelis Sesin, Melvin Ayala, Mercedes Cabrerizo
2003 C conf
Modelling and Simulation
Natasa Mirkovic, Malek Adjouadi, Ilker Yaylali, Prasanna Jayakar
2003 C conf
Modelling and Simulation
Mark A. Rossman, Malek Adjouadi, Natasa Mirkovic, Melvin Ayala, Prasanna Jayakar, Ilker Yaylali
2003 C conf
Modelling and Simulation
Melvin Ayala, Malek Adjouadi
2002 Misc conf
ICASSP
Julio Blandon, Malek Adjouadi, Shahriar Emami
2001 conf
VIIP
Alison Valdivieso, Malek Adjouadi, John Riley
2000 J jnl
IEEE Trans. Signal Process.
Malek Adjouadi, Carlos Reyes, Patricio Vidal, Armando Barreto
1999 conf
HCI (2)
Armando Barreto, Scott Scargle, Malek Adjouadi
1997 J jnl
IEEE Trans. Image Process.
Frank M. Candocia, Malek Adjouadi
1996 J jnl
IEEE Trans. Signal Process.
Malek Adjouadi, Frank M. Candocia, John Riley
1994 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Malek Adjouadi, Frank M. Candocia
1992 B conf
CBMS
Kent Wreder, Dong C. Park, Malek Adjouadi, Sergio M. Gonzalez-Arias
1992 Misc conf
MVA
Malek Adjouadi, Habibie Sumargo, Jean Andrian, Frank M. Candocia
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 []