{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,24]],"date-time":"2025-06-24T06:27:16Z","timestamp":1750746436359},"reference-count":25,"publisher":"IGI Global","issue":"3","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2010,7]]},"abstract":"<jats:p>The mechanics of hot patching (the process of upgrading a program while it executes) remain understudied, even though it offers capabilities that act as practical benefits for both consumer and mission-critical systems. A reliable hot patching procedure would serve particularly well by reducing the downtime necessary for critical functionality or security upgrades. However, hot patching also carries the risk\u2014real or perceived\u2014of leaving the system in an inconsistent state, which leads many owners to forgo its benefits as too risky; for systems where availability is critical, this decision may result in leaving systems un-patched and vulnerable. In this paper, the authors present a novel method for hot patching ELF binaries that supports synchronized global data and code updates, and reasoning about the results of applying the hot patch. In this regard, the Patch Object format was developed to encode patches as a special type of ELF re-locatable object file. The authors then built a tool, Katana, which automatically creates these patch objects as a by-product of the standard source build process. Katana also allows an end-user to apply the Patch Objects to a running process.<\/jats:p>","DOI":"10.4018\/jsse.2010070101","type":"journal-article","created":{"date-parts":[[2010,9,7]],"date-time":"2010-09-07T22:46:41Z","timestamp":1283899601000},"page":"1-17","source":"Crossref","is-referenced-by-count":6,"title":["Katana"],"prefix":"10.4018","volume":"1","author":[{"given":"Sergey","family":"Bratus","sequence":"first","affiliation":[{"name":"Dartmouth College, USA"}]},{"given":"James","family":"Oakley","sequence":"additional","affiliation":[{"name":"Dartmouth College, USA"}]},{"given":"Ashwin","family":"Ramaswamy","sequence":"additional","affiliation":[{"name":"Dartmouth College, USA"}]},{"given":"Sean W.","family":"Smith","sequence":"additional","affiliation":[{"name":"Dartmouth College, USA"}]},{"given":"Michael E.","family":"Locasto","sequence":"additional","affiliation":[{"name":"George Mason University, USA"}]}],"member":"2432","reference":[{"key":"jsse.2010070101-0","article-title":"Automatic Rebootless Kernel Updates","author":"J.Arnold","year":"2009","journal-title":"Proceedings of EuroSys"},{"key":"jsse.2010070101-1","unstructured":"Baumann, A., Appavoo, J., Wisniewski, R. W., Silva, D. D., Krieger, O., & Heiser, G. (2007). Reboots Are for Hardware: Challenges and Solutions to Updating an Operating System on the Fly. In Proceedings of the USENIX Annual Technical Conference."},{"key":"jsse.2010070101-2","unstructured":"Baumann, A., Heiser, G., Appovoo, J., Silva, D. D., Krieger, O., Wisniewski, R., & Kerr, J. (2005). Providing Dynamic Update in an Operating System. In Proceedings of the USENIX Annual Technical Conference (pp. 279-291)."},{"key":"jsse.2010070101-3","doi-asserted-by":"crossref","unstructured":"Brown, A., & Patterson, D. A. (2002). Rewind, Repair, Replay: Three R\u2019s to dependability. In Proceedings of the ACM SIGOPS European Workshop, Saint-Emilion, France.","DOI":"10.1145\/1133373.1133387"},{"key":"jsse.2010070101-4","unstructured":"Candea, G., & Fox, A. (2003). Crash-Only Software. In Proceedings of the Workshop on Hot Topics in Operating Systems (HOTOS-IX)."},{"key":"jsse.2010070101-5","unstructured":"Cesare, S. (1998). Runtime Kernel kmem Patching. Retrieved from http:\/\/vx.netlux.org\/lib\/vsc07.html"},{"key":"jsse.2010070101-6","doi-asserted-by":"crossref","unstructured":"Chen, H., Yu, J., Chen, R., Zang, B., & Yew, P.-C. (2007). Polus: A powerful live updating system. In Proceedings of the 29th international conference on Software Engineering (ICSE \u201907) (pp. 271-281). Washington, DC: IEEE Computer Society.","DOI":"10.1109\/ICSE.2007.65"},{"key":"jsse.2010070101-7","unstructured":"Ikebe, T., & Kawarasaki, Y. (2006). Retrieved from http:\/\/pannus.sourceforge.net\/"},{"key":"jsse.2010070101-8","unstructured":"Locasto, M. E., Stavrou, A., Cretu, G. F., & Keromytis, A. D. (2007). From STEM to SEAD: Speculative Execution for Automatic Defense. In Proceedings of the USENIX Annual Technical Conference (pp. 219-232)."},{"key":"jsse.2010070101-9","unstructured":"Neamtiu, I. (2009). Ginseng user\u2019s guide. Retrieved from http:\/\/www.cs.umd.edu\/projects\/PL\/dsu\/software.shtml"},{"key":"jsse.2010070101-10","doi-asserted-by":"crossref","unstructured":"Neamtiu, I., Hicks, M., & Stoyle, G. (2006). Practical dynamic software updating for c. In Proceedings of the ACM Conference on Programming Languages Design and Implementation (pp. 72-83).","DOI":"10.1145\/1133981.1133991"},{"key":"jsse.2010070101-11","doi-asserted-by":"publisher","DOI":"10.1145\/1409360.1409382"},{"key":"jsse.2010070101-12","doi-asserted-by":"crossref","unstructured":"Qin, F., Tucek, J., Sundaresan, J., & Zhou, Y. (2005). Rx: Treating Bugs as Allergies \u2013 A Safe Method to Survive Software Failures. In Proceedings of the Symposium on Systems and Operating Systems Principles (SOSP).","DOI":"10.1145\/1095810.1095833"},{"key":"jsse.2010070101-13","unstructured":"Rinard, M., Cadar, C., Dumitran, D., Roy, D., Leu, T., & Beebee, W. J. (2004). Enhancing Server Availability and Security Through Failure-Oblivious Computing. In Proceedings Symposium on Operating Systems Design and Implementation (OSDI). sd and devik (2001). Linux on-the-fly Kernel Patching Without LKM. Retrieved from http:\/\/doc.bughunter.net\/rootkit-backdoor\/kernel-patching.html"},{"key":"jsse.2010070101-14","doi-asserted-by":"publisher","DOI":"10.1145\/1409360.1409381"},{"key":"jsse.2010070101-15","unstructured":"Sidiroglou, S., Locasto, M. E., Boyd, S. W., & Keromytis, A. D. (2005). Building a Reactive Immune System for Software Services. In Proceedings of the USENIX Annual Technical Conference (pp. 149-161)."},{"key":"jsse.2010070101-16","unstructured":"Smirnov, A., & Chiueh, T. (2005). DIRA: Automatic Detection, Identification, and Repair of Control-Hijacking Attacks. In Proceedings of the Symposium on Network and Distributed System Security (NDSS)."},{"key":"jsse.2010070101-17","unstructured":"Soules, C. A. N., Appavoo, J., Hui, K., Wisniewski, R. W., da Silva, D., Ganger, G. R., et al. (2003). System Support for Online Reconfiguration. In Proceedings of the USENIX Annual Technical Conference (pp. 141-154)."},{"key":"jsse.2010070101-18","first-page":"1129","article-title":"An infrastructure for runtime evolution of software systems. In","volume":"2","author":"A. D.Stefano","year":"2004","journal-title":"Proceedings of the IEEE Symposium on Computers and Communications"},{"key":"jsse.2010070101-19","unstructured":"The ELF shell crew. (2005). Embedded elf debugging: the middle head of cerberus. Phrack Magazine, 11(63)."},{"key":"jsse.2010070101-20","unstructured":"Ukai, F. (2004). Retrieved from http:\/\/ukai.jp\/Software\/livepatch\/"},{"key":"jsse.2010070101-21","unstructured":"Vanegue, J., de Medeiros, J. A., Bisolfati, E., Desnos, A., Figueredo, T., Garnier, T., et al. (2009). The eresi reverse engineering software interface. Retrieved from http:\/\/www.eresi-project.org\/"},{"key":"jsse.2010070101-22","doi-asserted-by":"crossref","unstructured":"Weimer, W., Nguyen, T., Goues, C. L., & Forrest, S. (2009). Automatically Finding Patches Using Genetic Programming. In Proceedings of the International Conference on Software Engineering (ICSE).","DOI":"10.1109\/ICSE.2009.5070536"},{"key":"jsse.2010070101-23","unstructured":"Yamato, K., & Abe, T. (2009). A Runtime Code Modification Method for Application Programs. In Proceedings of the Ottawa Linux Symposium."},{"key":"jsse.2010070101-24","unstructured":"Zhou, Y., Marinov, D., Sanders, W., Zilles, C., d\u2019Amorim, M., Lauterburg, S., et al. (2007). Delta Execution for Software Reliability. In Proceedings of the Third Workshop on Hot Topics in System Dependability (HotDep\u201907)."}],"container-title":["International Journal of Secure Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.igi-global.com\/viewtitle.aspx?TitleId=46149","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,2,5]],"date-time":"2019-02-05T14:52:29Z","timestamp":1549378349000},"score":1,"resource":{"primary":{"URL":"http:\/\/services.igi-global.com\/resolvedoi\/resolve.aspx?doi=10.4018\/jsse.2010070101"}},"subtitle":["Towards Patching as a Runtime Part of the Compiler-Linker-Loader Toolchain"],"short-title":[],"issued":{"date-parts":[[2010,7]]},"references-count":25,"journal-issue":{"issue":"3"},"URL":"https:\/\/doi.org\/10.4018\/jsse.2010070101","relation":{},"ISSN":["1947-3036","1947-3044"],"issn-type":[{"value":"1947-3036","type":"print"},{"value":"1947-3044","type":"electronic"}],"subject":[],"published":{"date-parts":[[2010,7]]}}}