Ihab F. Ilyas

168 papers A* 31A 8B 4Misc 1Journal 78Unranked 38
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Cédric Renggli, Ihab F. Ilyas, Theodoros Rekatsinas
2025 A* conf
OSDI
Jason Mohoney, Devesh Sarda, Mengze Tang, Shihabur Rahman Chowdhury, Anil Pacaci, Ihab F. Ilyas, Theodoros Rekatsinas, Shivaram Venkataraman
2025 J jnl
CoRR
Jason Mohoney, Devesh Sarda, Mengze Tang, Shihabur Rahman Chowdhury, Anil Pacaci, Ihab F. Ilyas, Theodoros Rekatsinas, Shivaram Venkataraman
2024 conf
LREC/COLING
Ali Mousavi, Xin Zhan, He Bai, Peng Shi, Theodoros Rekatsinas, Benjamin Han, Yunyao Li, Jeffrey Pound, Joshua M. Susskind, Natalie Schluter, Ihab F. Ilyas, Navdeep Jaitly
2024 conf
EMNLP (Industry Track)
Ronak Pradeep, Daniel Lee, Ali Mousavi, Jeffrey Pound, Yisi Sang, Jimmy Lin, Ihab F. Ilyas, Saloni Potdar, Mostafa Arefiyan, Yunyao Li
2024 J jnl
CoRR
Ronak Pradeep, Daniel Lee, Ali Mousavi, Jeff Pound, Yisi Sang, Jimmy Lin, Ihab F. Ilyas, Saloni Potdar, Mostafa Arefiyan, Yunyao Li
2024 J jnl
CoRR
Jason Mohoney, Anil Pacaci, Shihabur Rahman Chowdhury, Umar Farooq Minhas, Jeffrey Pound, Cédric Renggli, Nima Reyhani, Ihab F. Ilyas, Theodoros Rekatsinas, Shivaram Venkataraman
2023 J jnl
CoRR
Ali Mousavi, Xin Zhan, He Bai, Peng Shi, Theodoros Rekatsinas, Benjamin Han, Yunyao Li, Jeffrey Pound, Josh M. Susskind, Natalie Schluter, Ihab F. Ilyas, Navdeep Jaitly
2023 conf
EMNLP (Demos)
Farima Fatahi Bayat, Kun Qian, Benjamin Han, Yisi Sang, Anton Belyi, Samira Khorshidi, Fei Wu, Ihab F. Ilyas, Yunyao Li
2023 J jnl
CoRR
Farima Fatahi Bayat, Kun Qian, Benjamin Han, Yisi Sang, Anton Belyi, Samira Khorshidi, Fei Wu, Ihab F. Ilyas, Yunyao Li
2023 J jnl
IEEE Data Eng. Bull.
Hongyu Ren, Ali Mousavi, Anil Pacaci, Shihabur Rahman Chowdhury, Jason Mohoney, Ihab F. Ilyas, Yunyao Li, Theodoros Rekatsinas
2023 conf
SIGMOD Conference Companion
Ihab F. Ilyas, J. P. Lacerda, Yunyao Li, Umar Farooq Minhas, Ali Mousavi, Jeffrey Pound, Theodoros Rekatsinas, Chiraag Sumanth
2023 J jnl
CoRR
Ihab F. Ilyas, J. P. Lacerda, Yunyao Li, Umar Farooq Minhas, Ali Mousavi, Jeffrey Pound, Theodoros Rekatsinas, Chiraag Sumanth
2023 J jnl
CoRR
Jason Mohoney, Anil Pacaci, Shihabur Rahman Chowdhury, Ali Mousavi, Ihab F. Ilyas, Umar Farooq Minhas, Jeffrey Pound, Theodoros Rekatsinas
2023 J jnl
Proc. ACM Manag. Data
Jason Mohoney, Anil Pacaci, Shihabur Rahman Chowdhury, Ali Mousavi, Ihab F. Ilyas, Umar Farooq Minhas, Jeffrey Pound, Theodoros Rekatsinas
2023 A* conf
EMNLP
Simone Conia, Min Li, Daniel Lee, Umar Farooq Minhas, Ihab F. Ilyas, Yunyao Li
2023 J jnl
CoRR
Simone Conia, Min Li, Daniel Lee, Umar Farooq Minhas, Ihab F. Ilyas, Yunyao Li
2023 ed.
VLDB Workshops
Rajesh Bordawekar, Cinzia Cappiello, Vasilis Efthymiou, Lisa Ehrlinger, Vijay Gadepally, Sainyam Galhotra, Sandra Geisler, Sven Groppe, Le Gruenwald, Alon Y. Halevy, Hazar Harmouch, Oktie Hassanzadeh, Ihab F. Ilyas, Ernesto Jiménez-Ruiz, Sanjay Krishnan, Tirthankar Lahiri, Guoliang Li, Jiaheng Lu, Wolfgang Mauerer, Umar Farooq Minhas, Felix Naumann, M. Tamer Özsu, El Kindi Rezig, Kavitha Srinivas, Michael Stonebraker, Satyanarayana R. Valluri, Maria-Esther Vidal, Haixun Wang, Jiannan Wang, Yingjun Wu, Xun Xue, Mohamed Zaït, Kai Zeng
2023 J jnl
CoRR
Kun Qian, Anton Belyi, Fei Wu, Samira Khorshidi, Azadeh Nikfarjam, Rahul Khot, Yisi Sang, Katherine Luna, Xianqi Chu, Eric Choi, Yash Govind, Chloe Seivwright, Yiwen Sun, Ahmed Fakhry, Theodoros Rekatsinas, Ihab F. Ilyas, Xiaoguang Qi, Yunyao Li
2023 conf
VLDB Workshops
Lisa Ehrlinger, Hazar Harmouch, Ihab F. Ilyas, Felix Naumann
2023 A* conf
ICDE
Hemant Saxena, Lukasz Golab, Stratos Idreos, Ihab F. Ilyas
2022 J jnl
IEEE Data Eng. Bull.
Ihab F. Ilyas, Felix Naumann
2022 J jnl
ACM J. Data Inf. Qual.
Ihab F. Ilyas, Theodoros Rekatsinas
2022 J jnl
CoRR
Ihab F. Ilyas, Theodoros Rekatsinas, Vishnu Konda, Jeffrey Pound, Xiaoguang Qi, Mohamed A. Soliman
2022 conf
SIGMOD Conference
Ihab F. Ilyas, Theodoros Rekatsinas, Vishnu Konda, Jeffrey Pound, Xiaoguang Qi, Mohamed A. Soliman
2021 J jnl
CoRR
Sahaana Suri, Ihab F. Ilyas, Christopher Ré, Theodoros Rekatsinas
2021 J jnl
Proc. VLDB Endow.
Sahaana Suri, Ihab F. Ilyas, Christopher Ré, Theodoros Rekatsinas
2021 J jnl
Proc. VLDB Endow.
Chang Ge, Shubhankar Mohapatra, Xi He, Ihab F. Ilyas
2021 conf
SIGMOD Conference
Masoumeh Shafieinejad, Florian Kerschbaum, Ihab F. Ilyas
2021 J jnl
CoRR
Masoumeh Shafieinejad, Florian Kerschbaum, Ihab F. Ilyas
2021 conf
SIGMOD Conference
Ester Livshits, Rina Kochirgan, Segev Tsur, Ihab F. Ilyas, Benny Kimelfeld, Sudeepa Roy
2021 J jnl
CoRR
Hemant Saxena, Lukasz Golab, Stratos Idreos, Ihab F. Ilyas
2020 J jnl
CoRR
Ester Livshits, Alireza Heidari, Ihab F. Ilyas, Benny Kimelfeld
2020 J jnl
Proc. VLDB Endow.
Ester Livshits, Alireza Heidari, Ihab F. Ilyas, Benny Kimelfeld
2020 conf
MLSys
Richard Wu, Aoqian Zhang, Ihab F. Ilyas, Theodoros Rekatsinas
2020 J jnl
CoRR
Paulo H. Oliveira, Daniel S. Kaster, Caetano Traina Jr., Ihab F. Ilyas
2020 J jnl
CoRR
Chang Ge, Shubhankar Mohapatra, Xi He, Ihab F. Ilyas
2020 J jnl
CoRR
Alireza Heidari, Shrinu Kushagra, Ihab F. Ilyas
2020 J jnl
CoRR
Alireza Heidari, George Michalopoulos, Shrinu Kushagra, Ihab F. Ilyas, Theodoros Rekatsinas
2019 A conf
ICDT
Christopher De Sa, Ihab F. Ilyas, Benny Kimelfeld, Christopher Ré, Theodoros Rekatsinas
2019 A* conf
ICDE
Shrinu Kushagra, Hemant Saxena, Ihab F. Ilyas, Shai Ben-David
2019 conf
SIGMOD Conference
Chang Ge, Xi He, Ihab F. Ilyas, Ashwin Machanavajjhala
2019 A conf
UAI
Alireza Heidari, Ihab F. Ilyas, Theodoros Rekatsinas
2019 J jnl
CoRR
Alireza Heidari, Ihab F. Ilyas, Theodoros Rekatsinas
2019 Misc conf
BTW
Ihab F. Ilyas
2019 book
Data Cleaning
Ihab F. Ilyas, Xu Chu
2019 ch.
Making Databases Work
Ihab F. Ilyas
2019 J jnl
CoRR
Hemant Saxena, Lukasz Golab, Ihab F. Ilyas
2019 A* conf
ICDE
Hemant Saxena, Lukasz Golab, Ihab F. Ilyas
2019 J jnl
Proc. VLDB Endow.
Hemant Saxena, Lukasz Golab, Ihab F. Ilyas
2019 A conf
CIKM
Marie Le Guilly, Jean-Marc Petit, Vasile-Marian Scuturici, Ihab F. Ilyas
2019 conf
SIGMOD Conference
Alireza Heidari, Joshua McGrath, Ihab F. Ilyas, Theodoros Rekatsinas
2019 J jnl
CoRR
Alireza Heidari, Joshua McGrath, Ihab F. Ilyas, Theodoros Rekatsinas
2019 J jnl
CoRR
Michael Azmy, Peng Shi, Jimmy Lin, Ihab F. Ilyas
2019 J jnl
CoRR
Ester Livshits, Ihab F. Ilyas, Benny Kimelfeld, Sudeepa Roy
2019 J jnl
Proc. VLDB Endow.
Chang Ge, Ihab F. Ilyas, Florian Kerschbaum
2019 A conf
AISTATS
Shrinu Kushagra, Shai Ben-David, Ihab F. Ilyas
2019 J jnl
CoRR
Ji Sun, Dong Deng, Ihab F. Ilyas, Guoliang Li, Samuel Madden, Mourad Ouzzani, Michael Stonebraker, Nan Tang
2019 A* conf
ICDE
Dong Deng, Wenbo Tao, Ziawasch Abedjan, Ahmed K. Elmagarmid, Ihab F. Ilyas, Guoliang Li, Samuel Madden, Mourad Ouzzani, Michael Stonebraker, Nan Tang
2018 J jnl
CoRR
Christopher De Sa, Ihab F. Ilyas, Benny Kimelfeld, Christopher Ré, Theodoros Rekatsinas
2018 A* conf
ICDE
Essam Mansour, Dong Deng, Raul Castro Fernandez, Abdulhakim Ali Qahtan, Wenbo Tao, Ziawasch Abedjan, Ahmed K. Elmagarmid, Ihab F. Ilyas, Samuel Madden, Mourad Ouzzani, Michael Stonebraker, Nan Tang
2018 J jnl
IEEE Data Eng. Bull.
Michael Stonebraker, Ihab F. Ilyas
2018 B conf
COLING
Michael Azmy, Peng Shi, Jimmy Lin, Ihab F. Ilyas
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Ihab F. Ilyas
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Ihab F. Ilyas
2018 A* conf
ICDE
Raul Castro Fernandez, Essam Mansour, Abdulhakim Ali Qahtan, Ahmed K. Elmagarmid, Ihab F. Ilyas, Samuel Madden, Mourad Ouzzani, Michael Stonebraker, Nan Tang
2018 J jnl
CoRR
Shrinu Kushagra, Shai Ben-David, Ihab F. Ilyas
2018 ch.
Encyclopedia of Database Systems (2nd ed.)
Ihab F. Ilyas
2017 conf
SIGMOD Conference
Raul Castro Fernandez, Dong Deng, Essam Mansour, Abdulhakim Ali Qahtan, Wenbo Tao, Ziawasch Abedjan, Ahmed K. Elmagarmid, Ihab F. Ilyas, Samuel Madden, Mourad Ouzzani, Michael Stonebraker, Nan Tang
2017 J jnl
SIGMOD Rec.
Shazia Sadiq, Tamraparni Dasu, Xin Luna Dong, Juliana Freire, Ihab F. Ilyas, Sebastian Link, Renée J. Miller, Felix Naumann, Xiaofang Zhou, Divesh Srivastava
2017 J jnl
CoRR
Dong Deng, Wenbo Tao, Ziawasch Abedjan, Ahmed K. Elmagarmid, Ihab F. Ilyas, Samuel Madden, Mourad Ouzzani, Michael Stonebraker, Nan Tang
2017 J jnl
CoRR
Theodoros Rekatsinas, Xu Chu, Ihab F. Ilyas, Christopher Ré
2017 J jnl
Proc. VLDB Endow.
Theodoros Rekatsinas, Xu Chu, Ihab F. Ilyas, Christopher Ré
2017 J jnl
CoRR
Chang Ge, Ihab F. Ilyas, Xi He, Ashwin Machanavajjhala
2017 J jnl
ACM Trans. Database Syst.
Xiufeng Liu, Lukasz Golab, Wojciech M. Golab, Ihab F. Ilyas, Shichao Jin
2017 A conf
CIDR
Dong Deng, Raul Castro Fernandez, Ziawasch Abedjan, Sibo Wang, Michael Stonebraker, Ahmed K. Elmagarmid, Ihab F. Ilyas, Samuel Madden, Mourad Ouzzani, Nan Tang
2016 conf
SIGMOD Conference
Mina H. Farid, Alexandra Roatis, Ihab F. Ilyas, Hella-Franziska Hoffmann, Xu Chu
2016 A* conf
ICDE
Michael J. Cafarella, Ihab F. Ilyas, Marcel Kornacker, Tim Kraska, Christopher Ré
2016 conf
SIGMOD Conference
Xu Chu, Ihab F. Ilyas, Sanjay Krishnan, Jiannan Wang
2016 A* conf
ICDE
Ziawasch Abedjan, John Morcos, Ihab F. Ilyas, Mourad Ouzzani, Paolo Papotti, Michael Stonebraker
2016 J jnl
Proc. VLDB Endow.
Ziawasch Abedjan, Xu Chu, Dong Deng, Raul Castro Fernandez, Ihab F. Ilyas, Mourad Ouzzani, Paolo Papotti, Michael Stonebraker, Nan Tang
2016 J jnl
Proc. VLDB Endow.
Xu Chu, Ihab F. Ilyas, Paraschos Koutris
2016 J jnl
ACM J. Data Inf. Qual.
Christian Bizer, Luna Dong, Ihab F. Ilyas, Maria-Esther Vidal
2016 J jnl
IEEE Data Eng. Bull.
Ihab F. Ilyas
2016 A* conf
SIGIR
Mina H. Farid, Ihab F. Ilyas, Steven Euijong Whang, Cong Yu
2016 J jnl
Mach. Learn.
Madian Khabsa, Ahmed K. Elmagarmid, Ihab F. Ilyas, Hossam Hammady, Mourad Ouzzani
2016 J jnl
Proc. VLDB Endow.
Xu Chu, Ihab F. Ilyas
2015 B conf
EDBT
Xiufeng Liu, Lukasz Golab, Wojciech M. Golab, Ihab F. Ilyas
2015 conf
SIGMOD Conference
Zuhair Khayyat, Ihab F. Ilyas, Alekh Jindal, Samuel Madden, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang, Si Yin
2015 A conf
CIDR
Ziawasch Abedjan, John Morcos, Michael N. Gubanov, Ihab F. Ilyas, Michael Stonebraker, Paolo Papotti, Mourad Ouzzani
2015 conf
SIGMOD Conference
Xu Chu, John Morcos, Ihab F. Ilyas, Mourad Ouzzani, Paolo Papotti, Nan Tang, Yin Ye
2015 J jnl
Proc. VLDB Endow.
Xu Chu, Mourad Ouzzani, John Morcos, Ihab F. Ilyas, Paolo Papotti, Nan Tang, Yin Ye
2015 A* conf
ICDE
Xiufeng Liu, Lukasz Golab, Ihab F. Ilyas
2015 J jnl
Found. Trends Databases
Ihab F. Ilyas, Xu Chu
2014 conf
SIGMOD Conference
Anup Chalamalla, Ihab F. Ilyas, Mourad Ouzzani, Paolo Papotti
2014 conf
SIGMOD Conference
Ahmed K. Elmagarmid, Ihab F. Ilyas, Mourad Ouzzani, Jorge-Arnulfo Quiané-Ruiz, Nan Tang, Si Yin
2014 A* conf
ICDE
Xu Chu, Ihab F. Ilyas, Paolo Papotti, Yin Ye
2014 J jnl
VLDB J.
George Beskales, Ihab F. Ilyas, Lukasz Golab, Artur Galiullin
2014 J jnl
Proc. VLDB Endow.
Michele Dallachiesa, Themis Palpanas, Ihab F. Ilyas
2013 A conf
CIDR
Michael Stonebraker, Daniel Bruckner, Ihab F. Ilyas, George Beskales, Mitch Cherniack, Stanley B. Zdonik, Alexander Pagan, Shan Xu
2013 J jnl
Proc. VLDB Endow.
Xu Chu, Ihab F. Ilyas, Paolo Papotti
2013 A* conf
ICDE
Xu Chu, Ihab F. Ilyas, Paolo Papotti
2013 J jnl
Proc. VLDB Endow.
Amr Ebaid, Ahmed K. Elmagarmid, Ihab F. Ilyas, Mourad Ouzzani, Jorge-Arnulfo Quiané-Ruiz, Nan Tang, Si Yin
2013 conf
SIGMOD Conference
Michele Dallachiesa, Amr Ebaid, Ahmed Eldawy, Ahmed K. Elmagarmid, Ihab F. Ilyas, Mourad Ouzzani, Nan Tang
2013 A* conf
ICDE
George Beskales, Ihab F. Ilyas, Lukasz Golab, Artur Galiullin
2013 J jnl
World Wide Web
Lei Chen, Ihab F. Ilyas, Christopher Ré, Xiaofang Zhou
2013 conf
SIGMOD Conference
David J. DeWitt, Ihab F. Ilyas, Jeffrey F. Naughton, Michael Stonebraker
2012 A conf
CIKM
Jeffrey Pound, Alexander K. Hudek, Ihab F. Ilyas, Grant E. Weddell
2012 conf
SIGMOD Conference
Amr El-Helw, Mina H. Farid, Ihab F. Ilyas
2012 J jnl
CoRR
George Beskales, Ihab F. Ilyas, Lukasz Golab, Artur Galiullin
2012 J jnl
SIGMOD Rec.
George Beskales, Gautam Das, Ahmed K. Elmagarmid, Ihab F. Ilyas, Felix Naumann, Mourad Ouzzani, Paolo Papotti, Jorge-Arnulfo Quiané-Ruiz, Nan Tang
2011 J jnl
CoRR
Mohamed Yakout, Ahmed K. Elmagarmid, Jennifer Neville, Mourad Ouzzani, Ihab F. Ilyas
2011 J jnl
Proc. VLDB Endow.
Mohamed Yakout, Ahmed K. Elmagarmid, Jennifer Neville, Mourad Ouzzani, Ihab F. Ilyas
2011 book
Ihab F. Ilyas, Mohamed A. Soliman
2011 conf
SIGMOD Conference
Mohamed A. Soliman, Ihab F. Ilyas, Davide Martinenghi, Marco Tagliasacchi
2010 J jnl
Proc. VLDB Endow.
Mohamed A. Soliman, Ihab F. Ilyas, Mina Saleeb
2010 conf
SIGMOD Conference
Jeffrey Pound, Ihab F. Ilyas, Grant E. Weddell
2010 A* conf
ICDE
Mohamed A. Soliman, Mina Saleeb, Ihab F. Ilyas
2010 A* conf
ICDE
George Beskales, Mohamed A. Soliman, Ihab F. Ilyas, Shai Ben-David, Yubin Kim
2010 J jnl
Proc. VLDB Endow.
Jeffrey Pound, Ihab F. Ilyas, Grant E. Weddell
2010 J jnl
Proc. VLDB Endow.
George Beskales, Ihab F. Ilyas, Lukasz Golab
2010 J jnl
VLDB J.
Mohamed A. Soliman, Ihab F. Ilyas, Shalev Ben-David
2010 conf
SeCO Workshop
Ihab F. Ilyas, Davide Martinenghi, Neoklis Polyzotis, Marco Tagliasacchi
2010 conf
SeCO Workshop
Ihab F. Ilyas
2009 J jnl
Proc. VLDB Endow.
Qian Wan, Raymond Chi-Wing Wong, Ihab F. Ilyas, M. Tamer Özsu, Yu Peng
2009 J jnl
Stat. Anal. Data Min.
Peter J. Haas, Ihab F. Ilyas, Guy M. Lohman, Volker Markl
2009 J jnl
Distributed Parallel Databases
Ihab F. Ilyas
2009 J jnl
Proc. VLDB Endow.
George Beskales, Mohamed A. Soliman, Ihab F. Ilyas, Shai Ben-David
2009 A* conf
ICDE
Huaxin Zhang, Ihab F. Ilyas, Kenneth Salem
2009 conf
SeCO Workshop
Ihab F. Ilyas, Davide Martinenghi, Marco Tagliasacchi
2009 A* conf
ICDE
Mohamed A. Soliman, Ihab F. Ilyas
2009 J jnl
Proc. VLDB Endow.
Amr El-Helw, Ihab F. Ilyas, Calisto Zuzarte
2008 conf
Uncertainty Management in Information Systems
Anish Das Sarma, Ander de Keijzer, Amol Deshpande, Peter J. Haas, Ihab F. Ilyas, Christoph Koch, Thomas Neumann, Dan Olteanu, Martin Theobald, Vasilis Vassalos
2008 conf
Uncertainty Management in Information Systems
Anish Das Sarma, Amol Deshpande, Thomas Hubauer, Ihab F. Ilyas, Birgitta König-Ries, Matthias Renz, Martin Theobald
2008 J jnl
ACM Comput. Surv.
Ihab F. Ilyas, George Beskales, Mohamed A. Soliman
2008 J jnl
Proc. VLDB Endow.
George Beskales, Mohamed A. Soliman, Ihab F. Ilyas
2008 conf
ICDE Workshops
Vagelis Hristidis, Ihab F. Ilyas
2008 J jnl
ACM Trans. Database Syst.
Mohamed A. Soliman, Ihab F. Ilyas, Kevin Chen-Chuan Chang
2007 A* conf
ICDE
Amr El-Helw, Ihab F. Ilyas, Wing Lau, Volker Markl, Calisto Zuzarte
2007 A* conf
ICDE
Mohamed A. Soliman, Ihab F. Ilyas, Nick Koudas
2007 J jnl
SIGMOD Rec.
Ihab F. Ilyas, Gautam Das
2007 A* conf
ICDE
Mohamed A. Soliman, Ihab F. Ilyas, Kevin Chen-Chuan Chang
2007 conf
SIGMOD Conference
Mohamed A. Soliman, Ihab F. Ilyas, Kevin Chen-Chuan Chang
2006 J jnl
ACM Trans. Database Syst.
Ihab F. Ilyas, Walid G. Aref, Ahmed K. Elmagarmid, Hicham G. Elmongui, Rahul Shah, Jeffrey Scott Vitter
2006 A* conf
VLDB
Ning Zhang, M. Tamer Özsu, Ihab F. Ilyas, Ashraf Aboulnaga
2006 B conf
SSDBM
Derek Phillips, Ning Zhang, Ihab F. Ilyas, M. Tamer Özsu
2006 conf
SIGMOD Conference
Chengkai Li, Kevin Chen-Chuan Chang, Ihab F. Ilyas
2006 A* conf
ICDE
Ning Zhang, M. Tamer Özsu, Ashraf Aboulnaga, Ihab F. Ilyas
2005 A* conf
ICDE
Ihab F. Ilyas, Walid G. Aref
2005 conf
SIGMOD Conference
Chengkai Li, Kevin Chen-Chuan Chang, Ihab F. Ilyas, Sumin Song
2005 A* conf
VLDB
Chengkai Li, Mohamed A. Soliman, Kevin Chen-Chuan Chang, Ihab F. Ilyas
2004 conf
ICAC
Ihab F. Ilyas, Volker Markl, Peter J. Haas, Paul G. Brown, Ashraf Aboulnaga
2004 conf
SIGMOD Conference
Ihab F. Ilyas, Volker Markl, Peter J. Haas, Paul Brown, Ashraf Aboulnaga
2004 A* conf
VLDB
Ihab F. Ilyas, Volker Markl, Peter J. Haas, Paul G. Brown, Ashraf Aboulnaga
2004 A* conf
ICDE
Moustafa A. Hammad, Mohamed F. Mokbel, Mohamed H. Ali, Walid G. Aref, Ann Christine Catlin, Ahmed K. Elmagarmid, Mohamed Y. Eltabakh, Mohamed G. Elfeky, Thanaa M. Ghanem, Robert Gwadera, Ihab F. Ilyas, Mirette S. Marzouk, Xiaopeng Xiong
2004 conf
SIGMOD Conference
Ihab F. Ilyas, Rahul Shah, Walid G. Aref, Jeffrey Scott Vitter, Ahmed K. Elmagarmid
2004
Ihab F. Ilyas
2004 J jnl
SIGMOD Rec.
Kenneth A. Ross, Peter Boncz, Ihab F. Ilyas, Volker Markl, Vasilis Vassalos
2004 J jnl
VLDB J.
Ihab F. Ilyas, Walid G. Aref, Ahmed K. Elmagarmid
2004 J jnl
Multim. Syst.
Walid G. Aref, Ann Christine Catlin, Ahmed K. Elmagarmid, Jianping Fan, Moustafa A. Hammad, Ihab F. Ilyas, Mirette S. Marzouk, Sunil Prabhakar, Yi-Cheng Tu, Xingquan Zhu
2003 conf
SIGMOD Conference
Ihab F. Ilyas, Jun Rao, Guy M. Lohman, Dengfeng Gao, Eileen Tien Lin
2003 A* conf
VLDB
Ihab F. Ilyas, Walid G. Aref, Ahmed K. Elmagarmid
2003 conf
MMDB
Walid G. Aref, Moustafa A. Hammad, Ann Christine Catlin, Ihab F. Ilyas, Thanaa M. Ghanem, Ahmed K. Elmagarmid, Mirette S. Marzouk
2002 A* conf
ICDE
Walid G. Aref, Ann Christine Catlin, Ahmed K. Elmagarmid, Jianping Fan, J. Guo, Moustafa A. Hammad, Ihab F. Ilyas, Mirette S. Marzouk, Sunil Prabhakar, Abdelmounaam Rezgui, S. Teoh, Evimaria Terzi, Yi-Cheng Tu, Athena Vakali, Xingquan Zhu
2002 conf
Multimedia Information Systems
Walid G. Aref, Ann Christine Catlin, Jianping Fan, Ahmed K. Elmagarmid, Moustafa A. Hammad, Ihab F. Ilyas, Mirette S. Marzouk, Xingquan Zhu
2002 A* conf
VLDB
Ihab F. Ilyas, Walid G. Aref, Ahmed K. Elmagarmid
2001 B conf
SSDBM
Walid G. Aref, Ihab F. Ilyas
2001 J jnl
J. Intell. Inf. Syst.
Walid G. Aref, Ihab F. Ilyas
redb/extractors/macho_extractors/macho_features.py
← Index redb/extractors/macho_extractors/macho_features.py python
import inspect
import json
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 MachO


class MachOFeaturesExtractor(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_features"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_macho_features_for_arch(self, arch_name):
        """Extract basic MachO features for a specific architecture."""
        self.log.debug(inspect.currentframe().f_code.co_name)

        if not self.macho:
            return None

        try:
            # Get general info using new API
            general_info = self.macho.get_general_info()
            if not general_info:
                return None

            # Get header info for this specific architecture
            header_raw = self.macho.get_macho_header(arch=arch_name)
            header_formatted = self.macho.get_macho_header(arch=arch_name, formatted=True)

            if not header_raw or not header_formatted:
                return None

            # Get entry point using new API
            entry_point = None
            try:
                entry_point_info = self.macho.get_entry_point(arch=arch_name)
                if entry_point_info:
                    if isinstance(entry_point_info, dict):
                        entry_point = entry_point_info.get('entryoff') or entry_point_info.get('entry_address')
                    else:
                        entry_point = entry_point_info
            except Exception as e:
                self.log.debug(f"No entry point found: {e}")

            # Get UUID using new API
            uuid = None
            try:
                uuid_info = self.macho.get_uuid(arch=arch_name)
                if uuid_info:
                    uuid = str(uuid_info)
            except Exception as e:
                self.log.debug(f"No UUID found: {e}")

            # Get version info using new API with formatting
            version_info = None
            version_info_str = None
            try:
                version_info = self.macho.get_version_info(arch=arch_name)
                version_info_str = self.macho.get_version_info(arch=arch_name, formatted=True)
            except Exception as e:
                self.log.debug(f"No version info found: {e}")

            # Get segments using new API
            segments = self.macho.get_segments(arch=arch_name)
            number_of_segments = len(segments) if segments else 0

            # Get dylib info using new API
            dylib_names = self.macho.get_dylib_names(arch=arch_name)
            number_of_dylibs = len(dylib_names) if dylib_names else 0

            # Count imports using new API
            imported_functions = self.macho.get_imported_functions(arch=arch_name)
            number_of_imports = sum(len(funcs) for funcs in imported_functions.values()) if imported_functions else 0

            # Count exports using new API
            exported_symbols = self.macho.get_exported_symbols(arch=arch_name)
            number_of_exports = sum(len(symbols) for symbols in exported_symbols.values()) if exported_symbols else 0

            # Get unique load command types using new API
            load_commands_set = self.macho.get_load_commands_set(arch=arch_name, formatted=True)
            if isinstance(load_commands_set, set):
                load_commands_set = sorted(list(load_commands_set))

            # Get architectures for listing purposes
            architectures = self.macho.get_architectures()

            # Determine binary properties
            is_64bit = header_raw.get('magic') in [0xFEEDFACF, 0xCFFAEDFE]  # MH_MAGIC_64, MH_CIGAM_64
            is_signed = self._is_signed()
            
            # Create MachO dataclass
            macho_features = MachO(
                # Raw values from new API
                magic=header_raw.get('magic', 0),
                cputype=header_raw.get('cputype', 0),
                cpusubtype=header_raw.get('cpusubtype', 0),
                filetype=header_raw.get('filetype', 0),
                ncmds=header_raw.get('ncmds', 0),
                sizeofcmds=header_raw.get('sizeofcmds', 0),
                flags=header_raw.get('flags', 0),
                architecture=header_raw.get('cputype', 0),  # Use cputype as architecture
                architectures=[arch_info.get('cputype', 0) for arch_info in [self.macho.get_macho_header(arch=arch) for arch in architectures] if arch_info],
                # Human-readable values from formatted API
                magic_str=header_formatted.get('magic', ''),
                cputype_str=header_formatted.get('cputype', ''),
                cpusubtype_str=header_formatted.get('cpusubtype', ''),
                filetype_str=header_formatted.get('filetype', ''),
                flags_str=header_formatted.get('flags', '').split(', ') if header_formatted.get('flags') else [],
                architecture_str=header_formatted.get('cputype', ''),
                architectures_str=[arch_info.get('cputype', '') for arch_info in [self.macho.get_macho_header(arch=arch, formatted=True) for arch in architectures] if arch_info],
                # Additional properties
                is_64bit=is_64bit,
                is_signed=is_signed,
                number_of_load_commands=header_raw.get('ncmds', 0),
                load_commands_set=load_commands_set,
                number_of_segments=number_of_segments,
                number_of_dylibs=number_of_dylibs,
                number_of_imports=number_of_imports,
                number_of_exports=number_of_exports,
                entry_point=entry_point,
                uuid=uuid,
                version_info=version_info,
                version_info_str=version_info_str
            )
            
            return macho_features
            
        except Exception as e:
            self.log.error(f"Error extracting MachO features: {e}")
            return None

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            if not self.macho:
                return None
            architectures = self.macho.get_architectures()
            if not architectures:
                return None

            # For FAT binaries, return features for all architectures
            # For single arch, return just the single result
            if len(architectures) > 1:
                # FAT binary - return list of features for each architecture
                results = []
                for arch_name in architectures:
                    features = self._extract_macho_features_for_arch(arch_name)
                    if features:
                        # Add architecture identifier to the result
                        if hasattr(features, '__dict__'):
                            # If it's a dataclass, we can access its dict
                            features.arch_identifier = arch_name
                        results.append(features)
                return results
            else:
                # Single architecture - return single result
                return self._extract_macho_features_for_arch(architectures[0])
        except Exception as e:
            self.log.error(f"Error extracting MachO features: {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 __init__)
            try:
                architectures = self.macho.get_architectures()
            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 features for this specific architecture
                macho_features = self._extract_macho_features_for_arch(arch_name)
                if not macho_features:
                    continue

                # Get architecture-specific sha256
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific hash for {arch_name}: {e}")
                    arch_sha256 = self.sha256

                # Architecture field (kept in features table for ORDER BY)
                architecture = macho_features.cputype    # Raw CPU type value

                data.append([
                    arch_sha256,                          # sha256 (architecture-specific)
                    architecture,                         # architecture (raw CPU type)
                    # Raw values
                    macho_features.magic,                 # magic
                    macho_features.cputype,               # cputype
                    macho_features.cpusubtype,            # cpusubtype
                    macho_features.filetype,              # filetype
                    macho_features.ncmds,                 # ncmds
                    macho_features.sizeofcmds,            # sizeofcmds
                    macho_features.flags,                 # flags
                    # Human-readable values
                    macho_features.magic_str,             # magic_str
                    macho_features.cputype_str,           # cputype_str
                    macho_features.cpusubtype_str,        # cpusubtype_str
                    macho_features.filetype_str,          # filetype_str
                    macho_features.flags_str,             # flags_str
                    # Other fields
                    macho_features.is_64bit,              # is_64bit
                    macho_features.is_signed,             # is_signed
                    macho_features.entry_point if macho_features.entry_point else None,           # entry_point
                    macho_features.uuid if macho_features.uuid else None,  # uuid
                    json.dumps(macho_features.version_info) if macho_features.version_info else "{}",  # version_info
                    json.dumps(macho_features.version_info_str) if macho_features.version_info_str else "{}",  # version_info_str
                    macho_features.load_commands_set,     # load_commands_set
                    macho_features.number_of_segments,    # number_of_segments
                    macho_features.number_of_dylibs,      # number_of_dylibs
                    macho_features.number_of_imports,     # number_of_imports
                    macho_features.number_of_exports,     # number_of_exports
                    current_time,                         # analysis_date
                ])

            column_names = [
                'sha256', 'architecture',
                # Raw values
                'magic', 'cputype', 'cpusubtype', 'filetype', 'ncmds', 'sizeofcmds', 'flags',
                # Human-readable values
                'magic_str', 'cputype_str', 'cpusubtype_str', 'filetype_str', 'flags_str',
                # Other fields
                'is_64bit', 'is_signed',
                'entry_point', 'uuid', 'version_info', 'version_info_str', 'load_commands_set',
                'number_of_segments', 'number_of_dylibs', 'number_of_imports', 'number_of_exports',
                'analysis_date'
            ]

            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'Nullable(UInt32)',
                # Raw values
                'UInt32', 'UInt32', 'UInt32', 'UInt32', 'UInt32', 'UInt32', 'UInt32',
                # Human-readable values
                'LowCardinality(String)', 'LowCardinality(String)', 'LowCardinality(String)', 'LowCardinality(String)', 'Array(LowCardinality(String))',
                # Other fields
                'UInt8', 'UInt8',
                'Nullable(UInt64)', 'Nullable(String)', 'JSON', 'JSON', 'Array(Nullable(String))',
                'UInt32', 'UInt32', 'UInt32', 'UInt32', 'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)
        
        return None

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