Olga Sorkine-Hornung

167 papers A* 11A 1Journal 127Unranked 21
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Peizhuo Li, Sebastian Starke, Yuting Ye, Olga Sorkine-Hornung
2026 J jnl
CoRR
Marcel Padilla, Aviv Segall, Olga Sorkine-Hornung
2025 A* conf
CVPR
Kiyohiro Nakayama, Jan Ackermann, Timur Levent Kesdogan, Yang Zheng, Maria Korosteleva, Olga Sorkine-Hornung, Leonidas J. Guibas, Guandao Yang, Gordon Wetzstein
2025 conf
SIGGRAPH (Conference Paper Track)
Aviv Segall, Jing Ren, Martin Schwarz, Olga Sorkine-Hornung
2025 J jnl
Proc. ACM Comput. Graph. Interact. Tech.
Hsiao-Yu Chen, Egor Larionov, Ladislav Kavan, Gene Wei-Chin Lin, Doug Roble, Olga Sorkine-Hornung, Tuur Stuyck
2025 J jnl
CoRR
Annika Öhri, Philipp Herholz, Olga Sorkine-Hornung
2025 conf
SIGGRAPH (Conference Paper Track)
Anran Qi, Nico Pietroni, Maria Korosteleva, Olga Sorkine-Hornung, Adrien Bousseau
2025 A* conf
SIGGRAPH Asia
Aviv Segall, Jing Ren, Marcel Padilla, Olga Sorkine-Hornung
2025 J jnl
Comput. Graph. Forum
Tanguy Magne, Olga Sorkine-Hornung
2025 J jnl
CoRR
Alexandre Binninger, Ruben Wiersma, Philipp Herholz, Olga Sorkine-Hornung
2025 J jnl
ACM Trans. Graph.
Alexandre Binninger, Ruben Wiersma, Philipp Herholz, Olga Sorkine-Hornung
2024 J jnl
CoRR
Kiyohiro Nakayama, Jan Ackermann, Timur Levent Kesdogan, Yang Zheng, Maria Korosteleva, Olga Sorkine-Hornung, Leonidas J. Guibas, Guandao Yang, Gordon Wetzstein
2024 J jnl
ACM Trans. Graph.
Annika Öhri, Aviv Segall, Jing Ren, Olga Sorkine-Hornung
2024 J jnl
Comput. Graph. Forum
Ningfeng Zhou, Jing Ren, Olga Sorkine-Hornung
2024 J jnl
CoRR
Ningfeng Zhou, Jing Ren, Olga Sorkine-Hornung
2024 J jnl
Comput. Graph. Forum
Anna Maria Eggler, Raphael Falque, Mark Liu, Teresa A. Vidal-Calleja, Olga Sorkine-Hornung, Nico Pietroni
2024 J jnl
ACM Trans. Graph.
Jing Ren, Aviv Segall, Olga Sorkine-Hornung
2024 J jnl
CoRR
Hsiao-Yu Chen, Egor Larionov, Ladislav Kavan, Gene Wei-Chin Lin, Doug Roble, Olga Sorkine-Hornung, Tuur Stuyck
2024 J jnl
ACM Trans. Graph.
Aviv Segall, Jing Ren, Amir Vaxman, Olga Sorkine-Hornung
2024 J jnl
CoRR
Maria Korosteleva, Timur Levent Kesdogan, Fabian Kemper, Stephan Wenninger, Jasmin Koller, Yuhan Zhang, Mario Botsch, Olga Sorkine-Hornung
2024 conf
ECCV (60)
Maria Korosteleva, Timur Levent Kesdogan, Fabian Kemper, Stephan Wenninger, Jasmin Koller, Yuhan Zhang, Mario Botsch, Olga Sorkine-Hornung
2024 J jnl
CoRR
Clément Jambon, Changwoon Choi, Dongsu Zhang, Olga Sorkine-Hornung, Young Min Kim
2024 J jnl
Comput. Graph. Forum
Koray Akalin, Ugo Paavo Finnendahl, Olga Sorkine-Hornung, Marc Alexa
2024 J jnl
Comput. Graph. Forum
Peizhuo Li, Tuanfeng Y. Wang, Timur Levent Kesdogan, Duygu Ceylan, Olga Sorkine-Hornung
2024 J jnl
CoRR
Peizhuo Li, Tuanfeng Y. Wang, Timur Levent Kesdogan, Duygu Ceylan, Olga Sorkine-Hornung
2024 J jnl
Comput. Graph. Forum
Qingqing Zhao, Peizhuo Li, Wang Yifan, Olga Sorkine-Hornung, Gordon Wetzstein
2024 A* conf
SIGGRAPH Asia
Alexandre Binninger, Olga Sorkine-Hornung
2024 J jnl
CoRR
Alexandre Binninger, Olga Sorkine-Hornung
2024 J jnl
Comput. Graph. Forum
Alexandre Binninger, Amir Hertz, Olga Sorkine-Hornung, Daniel Cohen-Or, Raja Giryes
2024 conf
SIGGRAPH (Conference Paper Track)
Peizhuo Li, Sebastian Starke, Yuting Ye, Olga Sorkine-Hornung
2024 J jnl
CoRR
Peizhuo Li, Sebastian Starke, Yuting Ye, Olga Sorkine-Hornung
2023 J jnl
Comput. Graph. Forum
Katja Wolff, Philipp Herholz, Verena Ziegler, Frauke Link, Nico Brügel, Olga Sorkine-Hornung
2023 J jnl
CoRR
Jing Ren, Aviv Segall, Olga Sorkine-Hornung
2023 J jnl
CoRR
Weiyu Li, Xuelin Chen, Peizhuo Li, Olga Sorkine-Hornung, Baoquan Chen
2023 J jnl
ACM Trans. Graph.
Weiyu Li, Xuelin Chen, Peizhuo Li, Olga Sorkine-Hornung, Baoquan Chen
2023 J jnl
CoRR
Maria Korosteleva, Olga Sorkine-Hornung
2023 J jnl
ACM Trans. Graph.
Maria Korosteleva, Olga Sorkine-Hornung
2023 J jnl
Comput. Graph. Forum
Amir Hertz, Or Perel, Raja Giryes, Olga Sorkine-Hornung, Daniel Cohen-Or
2023 A* conf
CVPR
Sigal Raab, Inbal Leibovitch, Peizhuo Li, Kfir Aberman, Olga Sorkine-Hornung, Daniel Cohen-Or
2023 J jnl
CoRR
Floor Verhoeven, Tanguy Magne, Olga Sorkine-Hornung
2023 J jnl
CoRR
Qingqing Zhao, Peizhuo Li, Wang Yifan, Olga Sorkine-Hornung, Gordon Wetzstein
2023 J jnl
CoRR
Alexandre Binninger, Amir Hertz, Olga Sorkine-Hornung, Daniel Cohen-Or, Raja Giryes
2023 J jnl
IEEE Trans. Vis. Comput. Graph.
Nikhil Gosala, Fangjinhua Wang, Zhaopeng Cui, Hanxue Liang, Oliver Glauser, Shihao Wu, Olga Sorkine-Hornung
2023 A* conf
SIGGRAPH Asia
Floor Verhoeven, Tanguy Magne, Olga Sorkine-Hornung
2022 J jnl
CoRR
Nico Pietroni, Corentin Dumery, Raphael Guenot-Falque, Mark Liu, Teresa A. Vidal-Calleja, Olga Sorkine-Hornung
2022 J jnl
ACM Trans. Graph.
Nico Pietroni, Corentin Dumery, Raphael Falque, Mark Liu, Teresa A. Vidal-Calleja, Olga Sorkine-Hornung
2022 J jnl
ACM Trans. Graph.
Floor Verhoeven, Amir Vaxman, Tim Hoffmann, Olga Sorkine-Hornung
2022 J jnl
CoRR
Peizhuo Li, Kfir Aberman, Zihan Zhang, Rana Hanocka, Olga Sorkine-Hornung
2022 J jnl
ACM Trans. Graph.
Peizhuo Li, Kfir Aberman, Zihan Zhang, Rana Hanocka, Olga Sorkine-Hornung
2022 A* conf
ICLR
Yifan Wang, Lukas Rahmann, Olga Sorkine-Hornung
2022 J jnl
CoRR
Sigal Raab, Inbal Leibovitch, Peizhuo Li, Kfir Aberman, Olga Sorkine-Hornung, Daniel Cohen-Or
2022 J jnl
CoRR
Amir Hertz, Or Perel, Raja Giryes, Olga Sorkine-Hornung, Daniel Cohen-Or
2022 J jnl
ACM Trans. Graph.
Amir Hertz, Or Perel, Raja Giryes, Olga Sorkine-Hornung, Daniel Cohen-Or
2022 J jnl
Comput. Graph. Forum
Alexandre Binninger, Olga Sorkine-Hornung
2022 conf
3DV
Robin Magnet, Jing Ren, Olga Sorkine-Hornung, Maks Ovsjanikov
2022 J jnl
CoRR
Robin Magnet, Jing Ren, Olga Sorkine-Hornung, Maks Ovsjanikov
2022 J jnl
ACM Trans. Graph.
Philipp Herholz, Xuan Tang, Teseo Schneider, Shoaib Kamil, Daniele Panozzo, Olga Sorkine-Hornung
2022 J jnl
ACM Trans. Graph.
Astrid Bunge, Philipp Herholz, Olga Sorkine-Hornung, Mario Botsch, Michael Kazhdan
2021 J jnl
CoRR
Katja Wolff, Philipp Herholz, Verena Ziegler, Frauke Link, Nico Brügel, Olga Sorkine-Hornung
2021 J jnl
CoRR
Floor Verhoeven, Amir Vaxman, Tim Hoffmann, Olga Sorkine-Hornung
2021 J jnl
Comput. Graph. Forum
Alexandre Binninger, Floor Verhoeven, Philipp Herholz, Olga Sorkine-Hornung
2021 A* conf
CHI
Madlaina Signer, Alexandra Ion, Olga Sorkine-Hornung
2021 J jnl
CoRR
Yifan Wang, Lukas Rahmann, Olga Sorkine-Hornung
2021 A* conf
CVPR
Yifan Wang, Shihao Wu, Cengiz Öztireli, Olga Sorkine-Hornung
2021 J jnl
CoRR
Peizhuo Li, Kfir Aberman, Rana Hanocka, Libin Liu, Olga Sorkine-Hornung, Baoquan Chen
2021 J jnl
ACM Trans. Graph.
Peizhuo Li, Kfir Aberman, Rana Hanocka, Libin Liu, Olga Sorkine-Hornung, Baoquan Chen
2021 J jnl
CoRR
Amir Hertz, Or Perel, Raja Giryes, Olga Sorkine-Hornung, Daniel Cohen-Or
2021 J jnl
Comput. Graph. Forum
Thomas Wolf, Victor Cornillère, Olga Sorkine-Hornung
2021 J jnl
CoRR
Amir Hertz, Or Perel, Raja Giryes, Olga Sorkine-Hornung, Daniel Cohen-Or
2021 A* conf
NeurIPS
Amir Hertz, Or Perel, Raja Giryes, Olga Sorkine-Hornung, Daniel Cohen-Or
2021 J jnl
CoRR
Philipp Herholz, Xuan Tang, Teseo Schneider, Shoaib Kamil, Daniele Panozzo, Olga Sorkine-Hornung
2020 J jnl
CoRR
Yifan Wang, Shihao Wu, A. Cengiz Öztireli, Olga Sorkine-Hornung
2020 J jnl
ACM Trans. Graph.
Marek Dvoroznák, Daniel Sýkora, Cassidy J. Curtis, Brian Curless, Olga Sorkine-Hornung, David Salesin
2020 A* conf
CVPR
Yifan Wang, Noam Aigerman, Vladimir G. Kim, Siddhartha Chaudhuri, Olga Sorkine-Hornung
2020 J jnl
Comput. Graph. Forum
Marc Alexa, Philipp Herholz, Maximilian Kohlbrenner, Olga Sorkine-Hornung
2020 J jnl
ACM Trans. Graph.
Alexandra Ion, Michael Rabinovich, Philipp Herholz, Olga Sorkine-Hornung
2020 J jnl
CoRR
Kfir Aberman, Peizhuo Li, Dani Lischinski, Olga Sorkine-Hornung, Daniel Cohen-Or, Baoquan Chen
2020 J jnl
ACM Trans. Graph.
Kfir Aberman, Peizhuo Li, Dani Lischinski, Olga Sorkine-Hornung, Daniel Cohen-Or, Baoquan Chen
2020 J jnl
ACM Trans. Graph.
Philipp Herholz, Olga Sorkine-Hornung
2019 conf
SIGGRAPH Emerging Technologies
Oliver Glauser, Shihao Wu, Daniele Panozzo, Otmar Hilliges, Olga Sorkine-Hornung
2019 J jnl
ACM Trans. Graph.
Victor Cornillère, Abdelaziz Djelouah, Yifan Wang, Olga Sorkine-Hornung, Christopher Schroers
2019 J jnl
ACM Trans. Graph.
Oliver Glauser, Daniele Panozzo, Otmar Hilliges, Olga Sorkine-Hornung
2019 J jnl
CoRR
Yifan Wang, Felice Serena, Shihao Wu, Cengiz Öztireli, Olga Sorkine-Hornung
2019 J jnl
ACM Trans. Graph.
Yifan Wang, Felice Serena, Shihao Wu, Cengiz Öztireli, Olga Sorkine-Hornung
2019 J jnl
ACM Trans. Graph.
Oliver Glauser, Shihao Wu, Daniele Panozzo, Otmar Hilliges, Olga Sorkine-Hornung
2019 J jnl
ACM Trans. Graph.
Michael Rabinovich, Tim Hoffmann, Olga Sorkine-Hornung
2019 J jnl
CoRR
Yifan Wang, Noam Aigerman, Vladimir G. Kim, Siddhartha Chaudhuri, Olga Sorkine-Hornung
2019 A* conf
CVPR
Yifan Wang, Shihao Wu, Hui Huang, Daniel Cohen-Or, Olga Sorkine-Hornung
2019 conf
VMV
Katja Wolff, Philipp Herholz, Olga Sorkine-Hornung
2019 conf
VMV
Floor Verhoeven, Olga Sorkine-Hornung
2019 J jnl
ACM Trans. Graph.
Katja Wolff, Olga Sorkine-Hornung
2018 conf
CVPR Workshops
Yifan Wang, Federico Perazzi, Brian McWilliams, Alexander Sorkine-Hornung, Olga Sorkine-Hornung, Christopher Schroers
2018 J jnl
CoRR
Yifan Wang, Federico Perazzi, Brian McWilliams, Alexander Sorkine-Hornung, Olga Sorkine-Hornung, Christopher Schroers
2018 ed.
Lars Hesselgren, Axel Kilian, Samar Malek, Karl-Gunnar Olsson, Olga Sorkine-Hornung, Chris J. K. Williams
2018 J jnl
Comput. Graph. Forum
Carlota Soler, Tobias Martin, Olga Sorkine-Hornung
2018 A conf
IROS
Oliver Glauser, Daniele Panozzo, Otmar Hilliges, Olga Sorkine-Hornung
2018 J jnl
CoRR
Oliver Glauser, Daniele Panozzo, Otmar Hilliges, Olga Sorkine-Hornung
2018 J jnl
ACM Trans. Graph.
Michael Rabinovich, Tim Hoffmann, Olga Sorkine-Hornung
2018 J jnl
Comput. Graph. Forum
Katja Wolff, Roi Poranne, Oliver Glauser, Olga Sorkine-Hornung
2018 J jnl
CoRR
Yifan Wang, Shihao Wu, Hui Huang, Daniel Cohen-Or, Olga Sorkine-Hornung
2018 J jnl
ACM Trans. Graph.
Christian Schüller, Roi Poranne, Olga Sorkine-Hornung
2018 J jnl
ACM Trans. Graph.
Michael Rabinovich, Tim Hoffmann, Olga Sorkine-Hornung
2017 ed.
PG (Short Papers)
Jernej Barbic, Wen-Chieh Lin, Olga Sorkine-Hornung
2017 J jnl
ACM Trans. Graph.
Roi Poranne, Marco Tarini, Sandro Huber, Daniele Panozzo, Olga Sorkine-Hornung
2017 J jnl
Digit. Scholarsh. Humanit.
Kazim Pal, Nicola Avery, Pete Boston, Alberto Campagnolo, Caroline De Stefani, Helen Matheson-Pollock, Daniele Panozzo, Matthew Payne, Christian Schüller, Chris Sanderson, Chris Scott, Philippa Smith, Rachael Smither, Olga Sorkine-Hornung, Ann Stewart, Emma Stewart, Patricia Stewart, Melissa Terras, Bernadette Walsh, Laurence Ward, Liz Yamada, Tim Weyrich
2017 J jnl
CoRR
Michael Rabinovich, Tim Hoffmann, Olga Sorkine-Hornung
2017 J jnl
ACM Trans. Graph.
Anna Shtengel, Roi Poranne, Olga Sorkine-Hornung, Shahar Z. Kovalsky, Yaron Lipman
2017 J jnl
Interactions
Oliver Glauser, Benedek Vartok, Wan-Chun Ma, Daniele Panozzo, Alec Jacobson, Cédric Pradalier, Otmar Hilliges, Olga Sorkine-Hornung
2017 J jnl
ACM Trans. Graph.
Michael Rabinovich, Roi Poranne, Daniele Panozzo, Olga Sorkine-Hornung
2017 J jnl
CoRR
Christian Schüller, Roi Poranne, Olga Sorkine-Hornung
2017 J jnl
Commun. ACM
Moritz Bächer, Bernd Bickel, Emily Whiting, Olga Sorkine-Hornung
2016 conf
SIGGRAPH ASIA Mobile Graphics and Interactive Applications
Stefan Messmer, Signe Fleischmann, Olga Sorkine-Hornung
2016 conf
VMV
Romain Prévost, Moritz Bächer, Wojciech Jarosz, Olga Sorkine-Hornung
2016 J jnl
ACM Trans. Graph.
Christian Schüller, Daniele Panozzo, Anselm Grundhöfer, Henning Zimmer, Evgeni Sorkine, Olga Sorkine-Hornung
2016 conf
3DV
Kaan Yücer, Changil Kim, Alexander Sorkine-Hornung, Olga Sorkine-Hornung
2016 J jnl
ACM Trans. Graph.
Kaan Yücer, Alexander Sorkine-Hornung, Oliver Wang, Olga Sorkine-Hornung
2016 book
Alessandro Artusi, Francesco Banterle, Tunç Ozan Aydin, Daniele Panozzo, Olga Sorkine-Hornung
2016 J jnl
Comput. Graph.
Romain Prévost, Alec Jacobson, Wojciech Jarosz, Olga Sorkine-Hornung
2016 conf
3DV
Katja Wolff, Changil Kim, Henning Zimmer, Christopher Schroers, Mario Botsch, Olga Sorkine-Hornung, Alexander Sorkine-Hornung
2016 conf
UIST (Adjunct Volume)
Oliver Glauser, Benedek Vartok, Wan-Chun Ma, Daniele Panozzo, Alec Jacobson, Otmar Hilliges, Olga Sorkine-Hornung
2016 J jnl
ACM Trans. Graph.
Oliver Glauser, Wan-Chun Ma, Alec Jacobson, Daniele Panozzo, Otmar Hilliges, Olga Sorkine-Hornung
2015 J jnl
Comput. Graph. Forum
Romain Prévost, Wojciech Jarosz, Olga Sorkine-Hornung
2015 J jnl
ACM Trans. Graph.
Giorgio Marcias, Kenshi Takayama, Nico Pietroni, Daniele Panozzo, Olga Sorkine-Hornung, Enrico Puppo, Paolo Cignoni
2015 book
Digital Representations of the Real World
Marcus Andreas Magnor, Oliver Grau, Olga Sorkine-Hornung, Christian Theobalt
2015 conf
WICED@Eurographics
Federico Perazzi, Olga Sorkine-Hornung, Alexander Sorkine-Hornung
2015 J jnl
ACM Trans. Graph.
Wenzel Jakob, Marco Tarini, Daniele Panozzo, Olga Sorkine-Hornung
2015 J jnl
ACM Trans. Graph.
Olga Diamanti, Amir Vaxman, Daniele Panozzo, Olga Sorkine-Hornung
2015 J jnl
Comput. Graph. Forum
Henning Zimmer, Fabrice Rousselle, Wenzel Jakob, Oliver Wang, David Adler, Wojciech Jarosz, Olga Sorkine-Hornung, Alexander Sorkine-Hornung
2015 conf
ICCV Workshops
Kaan Yücer, Oliver Wang, Alexander Sorkine-Hornung, Olga Sorkine-Hornung
2015 J jnl
ACM Trans. Graph.
Yanir Kleiman, Oliver van Kaick, Olga Sorkine-Hornung, Daniel Cohen-Or
2015 J jnl
ACM Trans. Graph.
Olga Diamanti, Connelly Barnes, Sylvain Paris, Eli Shechtman, Olga Sorkine-Hornung
2015 J jnl
Comput. Graph. Forum
Daniele Panozzo, Olga Diamanti, Sylvain Paris, Marco Tarini, Evgeni Sorkine, Olga Sorkine-Hornung
2014 J jnl
Comput. Graph. Forum
Marco Tarini, Daniele Panozzo, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Daniele Panozzo, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Mario Deuss, Daniele Panozzo, Emily Whiting, Yang Liu, Philippe Block, Olga Sorkine-Hornung, Mark Pauly
2014 ch.
Shell Structures for Architecture
Tom Van Mele, Daniele Panozzo, Olga Sorkine-Hornung, Philippe Block
2014 J jnl
Commun. ACM
Alec Jacobson, Ilya Baran, Jovan Popovic, Olga Sorkine-Hornung
2014 J jnl
CoRR
Kenshi Takayama, Alec Jacobson, Ladislav Kavan, Olga Sorkine-Hornung
2014 J jnl
Comput. Graph. Forum
Kazim Pal, Christian Schüller, Daniele Panozzo, Olga Sorkine-Hornung, Tim Weyrich
2014 J jnl
Comput. Graph. Forum
Olga Diamanti, Amir Vaxman, Daniele Panozzo, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Amit Bermano, Derek Bradley, Thabo Beeler, Fabio Zund, Derek Nowrouzezahrai, Ilya Baran, Olga Sorkine-Hornung, Hanspeter Pfister, Robert W. Sumner, Bernd Bickel, Markus H. Gross
2014 J jnl
IEEE Trans. Vis. Comput. Graph.
David Günther, Alec Jacobson, Jan Reininghaus, Hans-Peter Seidel, Olga Sorkine-Hornung, Tino Weinkauf
2014 J jnl
ACM Trans. Graph.
Daniele Panozzo, Enrico Puppo, Marco Tarini, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Daniel Sýkora, Ladislav Kavan, Martin Cadík, Ondrej Jamriska, Alec Jacobson, Brian Whited, Maryann Simmons, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Noa Fish, Melinos Averkiou, Oliver van Kaick, Olga Sorkine-Hornung, Daniel Cohen-Or, Niloy J. Mitra
2014 J jnl
Comput. Graph. Forum
Oliver Mattausch, Daniele Panozzo, Claudio Mura, Olga Sorkine-Hornung, Renato Pajarola
2014 J jnl
Comput. Graph. Forum
Kenshi Takayama, Daniele Panozzo, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Moritz Bächer, Emily Whiting, Bernd Bickel, Olga Sorkine-Hornung
2014 conf
SIGGRAPH Studio
Alec Jacobson, Daniele Panozzo, Oliver Glauser, Cédric Pradalier, Otmar Hilliges, Olga Sorkine-Hornung
2014 conf
SIGGRAPH Emerging Technologies
Alec Jacobson, Daniele Panozzo, Oliver Glauser, Cédric Pradalier, Otmar Hilliges, Olga Sorkine-Hornung
2014 conf
UIST (Adjunct Volume)
Alec Jacobson, Daniele Panozzo, Oliver Glauser, Cédric Pradalier, Otmar Hilliges, Olga Sorkine-Hornung
2014 J jnl
ACM Trans. Graph.
Alec Jacobson, Daniele Panozzo, Oliver Glauser, Cédric Pradalier, Otmar Hilliges, Olga Sorkine-Hornung
2013 J jnl
Comput. Graph. Forum
Giorgio Marcias, Nico Pietroni, Daniele Panozzo, Enrico Puppo, Olga Sorkine-Hornung
2013 J jnl
Comput. Graph. Forum
Leonardo Sacht, Alec Jacobson, Daniele Panozzo, Christian Schüller, Olga Sorkine-Hornung
2013 J jnl
ACM Trans. Graph.
Gaurav Chaurasia, Sylvain Duchêne, Olga Sorkine-Hornung, George Drettakis
2013 J jnl
ACM Trans. Graph.
Daniele Panozzo, Philippe Block, Olga Sorkine-Hornung
2013 J jnl
Comput. Graph. Forum
Peter Kaufmann, Oliver Wang, Alexander Sorkine-Hornung, Olga Sorkine-Hornung, Aljoscha Smolic, Markus H. Gross
2013 ch.
Emerging Technologies for 3D Video
Oliver Wang, Manuel Lang, Nikolce Stefanoski, Alexander Sorkine-Hornung, Olga Sorkine-Hornung, Aljoscha Smolic, Markus H. Gross
2013 J jnl
Comput. Graph. Forum
Christian Schüller, Ladislav Kavan, Daniele Panozzo, Olga Sorkine-Hornung
2013 J jnl
ACM Trans. Graph.
Romain Prévost, Emily Whiting, Sylvain Lefebvre, Olga Sorkine-Hornung
2013 conf
VMV
Daniel Graf, Daniele Panozzo, Olga Sorkine-Hornung
2013 J jnl
Dagstuhl Reports
Oliver Grau, Marcus A. Magnor, Olga Sorkine-Hornung, Christian Theobalt
2013 J jnl
ACM Trans. Graph.
Alec Jacobson, Ladislav Kavan, Olga Sorkine-Hornung
2013 J jnl
ACM Trans. Graph.
Kenshi Takayama, Daniele Panozzo, Alexander Sorkine-Hornung, Olga Sorkine-Hornung
2013 conf
VMV
Kaan Yücer, Alexander Sorkine-Hornung, Olga Sorkine-Hornung
2013 J jnl
ACM Trans. Graph.
Daniele Panozzo, Ilya Baran, Olga Diamanti, Olga Sorkine-Hornung
2006
Olga Sorkine-Hornung
redb/extractors/elf_extractors/elf_relocations.py
← Index redb/extractors/elf_extractors/elf_relocations.py python
import inspect
from datetime import datetime, timezone
from typing import Any, List, Dict

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

from redb.extractors.enum import Tag
from redb.extractors.elf_extractor import ELFExtractor
from redb.models.dataclasses import ELFRelocation


class ELFRelocationExtractor(ELFExtractor):

    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,
            elf,
        )
        self.elf_relocations = []
        self.elastic_index = self.index_prefix + "-elf_relocations"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def _get_relocation_type_string(self, reloc_type: int, machine_arch: str) -> str:
        """Convert relocation type number to human-readable string based on architecture."""
        # This is a simplified mapping - real implementation would need comprehensive
        # architecture-specific relocation type mappings

        common_types = {
            0: "R_NONE",
            1: "R_DIRECT",
            2: "R_PC_RELATIVE",
            3: "R_GOT",
            4: "R_PLT",
            5: "R_COPY",
            6: "R_GLOB_DAT",
            7: "R_JMP_SLOT",
            8: "R_RELATIVE"
        }

        # Architecture-specific mappings could be added here
        if machine_arch == "x86_64":
            x86_64_types = {
                1: "R_X86_64_64",
                2: "R_X86_64_PC32",
                3: "R_X86_64_GOT32",
                4: "R_X86_64_PLT32",
                5: "R_X86_64_COPY",
                6: "R_X86_64_GLOB_DAT",
                7: "R_X86_64_JUMP_SLOT",
                8: "R_X86_64_RELATIVE"
            }
            return x86_64_types.get(reloc_type, f"R_X86_64_{reloc_type}")
        elif machine_arch == "x86":
            i386_types = {
                1: "R_386_32",
                2: "R_386_PC32",
                3: "R_386_GOT32",
                4: "R_386_PLT32",
                5: "R_386_COPY",
                6: "R_386_GLOB_DAT",
                7: "R_386_JMP_SLOT",
                8: "R_386_RELATIVE"
            }
            return i386_types.get(reloc_type, f"R_386_{reloc_type}")

        return common_types.get(reloc_type, f"R_UNKNOWN_{reloc_type}")

    def _extract_relocation_data(self, relocation, section_name: str, machine_arch: str) -> Dict:
        """Extract data from a single relocation entry."""
        try:
            # Get relocation offset
            relocation_offset = relocation.entry.get('r_offset', 0)

            # Get relocation type
            relocation_type = relocation.entry.get('r_info_type', 0)

            # Get symbol index
            relocation_symbol_index = relocation.entry.get('r_info_sym', 0)

            # Get addend (only present in RELA sections)
            relocation_addend = None
            if hasattr(relocation.entry, 'r_addend'):
                relocation_addend = relocation.entry.get('r_addend', 0)

            # Get symbol name if available
            relocation_symbol_name = ""
            if hasattr(relocation, 'symbol') and relocation.symbol:
                relocation_symbol_name = relocation.symbol.name or f"<symbol_{relocation_symbol_index}>"
            else:
                relocation_symbol_name = f"<symbol_{relocation_symbol_index}>"

            # Get type string mapping
            relocation_type_str = self._get_relocation_type_string(relocation_type, machine_arch)

            return ELFRelocation(
                relocation_offset=relocation_offset,
                relocation_type=relocation_type,
                relocation_type_str=relocation_type_str,
                relocation_symbol_index=relocation_symbol_index,
                relocation_symbol_name=relocation_symbol_name,
                relocation_section=section_name,
                relocation_addend=relocation_addend
            )

        except Exception as e:
            self.log.error(f"Error extracting relocation data: {e}")
            return None

    def _extract_relocations_from_section(self, section, machine_arch: str) -> List[Dict]:
        """Extract all relocations from a relocation section."""
        relocations = []

        try:
            if not hasattr(section, 'iter_relocations'):
                return relocations

            section_name = section.name or f"<unnamed_section>"

            for relocation in section.iter_relocations():
                reloc_data = self._extract_relocation_data(relocation, section_name, machine_arch)
                if reloc_data:
                    relocations.append(reloc_data)

        except Exception as e:
            self.log.error(f"Error extracting relocations from section {section.name}: {e}")

        return relocations

    def tag(self):
        return Tag.ELF_RELOCATIONS.value if hasattr(Tag, 'ELF_RELOCATIONS') else "elf_relocations"

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)

            def extract_data(elf):
                # Get architecture for relocation type mapping
                machine_arch = self._get_architecture()
                all_relocations = []

                # Iterate through all sections looking for relocation sections with per-section error handling
                for section_index, section in enumerate(elf.iter_sections()):
                    try:
                        # Check if this is a relocation section (.rel or .rela)
                        if (section.name and
                            (section.name.startswith('.rel') or section.name.startswith('.rela')) and
                            hasattr(section, 'iter_relocations')):

                            section_relocations = self._extract_relocations_from_section(section, machine_arch)
                            all_relocations.extend(section_relocations)
                            self.log.debug(f"Extracted {len(section_relocations)} relocations from section {section.name}")
                    except Exception as e:
                        section_name = getattr(section, 'name', f'section_{section_index}')
                        self.log.warning(f"Error processing relocation section {section_name}: {e}")
                        # Continue processing other sections

                return all_relocations

            if not self._is_elf_file():
                return None

            result = self._with_elf_file(extract_data)
            if result is None:
                return None

            self.elf_relocations = result
            return self.elf_relocations

        except Exception as e:
            self.log.error(f"Error extracting ELF relocations {self.hash.sha256}: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        self.log.debug(inspect.currentframe().f_code.co_name)

        if exporter_type == "ElasticsearchExporter":
            return self.elf_relocations
        elif exporter_type == "ClickHouseExporter":
            try:
                # Return valid empty structure if no relocations (e.g., statically linked binary)
                # None is reserved for actual errors

                # Prepare data arrays for all relocations
                data = []
                current_time = datetime.now(timezone.utc)
                for reloc in self.elf_relocations:
                    row = [
                        self.sha256,
                        self.md5,
                        self.sha1,
                        reloc.relocation_offset,
                        reloc.relocation_type,
                        reloc.relocation_type_str,
                        reloc.relocation_symbol_index,
                        reloc.relocation_symbol_name,
                        reloc.relocation_addend,
                        reloc.relocation_section,
                        current_time
                    ]
                    data.append(row)

                column_names = [
                    'sha256', 'md5', 'sha1',
                    'relocation_offset', 'relocation_type', 'relocation_type_str',
                    'relocation_symbol_index', 'relocation_symbol_name',
                    'relocation_addend', 'relocation_section',
                    'analysis_date'
                ]

                if not data:
                    return None

                column_type_names = [
                    'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                    'UInt64', 'UInt32', 'LowCardinality(String)',
                    'UInt32', 'LowCardinality(String)',
                    'Nullable(Int64)', 'LowCardinality(String)',
                    'DateTime64(3, \'UTC\')'
                ]

                return (data, column_names, column_type_names)

            except Exception as e:
                self.log.error(f"Error preparing export data: {e}")
                raise

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