{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T07:43:31Z","timestamp":1740123811248,"version":"3.37.3"},"reference-count":29,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2020,9,26]],"date-time":"2020-09-26T00:00:00Z","timestamp":1601078400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,9,26]],"date-time":"2020-09-26T00:00:00Z","timestamp":1601078400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["61872386"],"award-info":[{"award-number":["61872386"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["World Wide Web"],"published-print":{"date-parts":[[2021,5]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>With the rapid development of electronic and information technology, Internet of Things (IoT) devices have become extensively utilised in various fields. Increasing attention has been paid to the performance and security analysis of IoT-based services. Dynamic instrumentation is a common process in software analysis for acquiring runtime information. However, due to the limited software and hardware resources in IoT devices, most dynamic instrumentation tools do not support IoT-based services. In this paper, we provide an analysis tool, IoTDIT, to solve the current problem of runtime detection in IoT-based services. IoTDIT employs static analysis and<jats:italic>ptrace<\/jats:italic>system calls to obtain dynamic firmware information, which can aid in firmware performance analysis and security detection. We perform experiments to verify the performance and effectiveness of the proposed instrumentation tool.<\/jats:p>","DOI":"10.1007\/s11280-020-00838-3","type":"journal-article","created":{"date-parts":[[2020,9,26]],"date-time":"2020-09-26T17:02:46Z","timestamp":1601139766000},"page":"941-954","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Firmware code instrumentation technology for internet of things-based services"],"prefix":"10.1007","volume":"24","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9175-5526","authenticated-orcid":false,"given":"Chen","family":"Chen","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jinxin","family":"Ma","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tao","family":"Qi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Baojiang","family":"Cui","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Weikong","family":"Qi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhaolei","family":"Zhang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Peng","family":"Sun","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2020,9,26]]},"reference":[{"key":"838_CR1","doi-asserted-by":"crossref","unstructured":"Avgerinos, T., Rebert, A., Cha, S.K., Brumley, D.: Enhancing symbolic execution with veritesting. In: Proceedings of the 36th International Conference on Software Engineering, pp 1083\u20131094 (2014)","DOI":"10.1145\/2568225.2568293"},{"key":"838_CR2","doi-asserted-by":"crossref","unstructured":"Babi\u0107, D., Martignoni, L., McCamant, S., Song, D.: Statically-directed dynamic automated test generation. In: Proceedings of the 2011 International Symposium on Software Testing and Analysis, pp 12\u201322 (2011)","DOI":"10.1145\/2001420.2001423"},{"key":"838_CR3","unstructured":"Bruening, D.: DynamoRIO: dynamic instrumentation tool platform. http:\/\/www.dynamoRIO.org\/ Accessed 26 Feb 2020"},{"key":"838_CR4","unstructured":"Cantrill, B., Shapiro, M.W., Leventhal, A.H.: Dynamic instrumentation of production systems. In: USENIX Annual Technical Conference, pp 15\u201328 (2004)"},{"key":"838_CR5","unstructured":"Capstone. http:\/\/www.capstone-engine.org Accessed 26 Feb 2020"},{"key":"838_CR6","doi-asserted-by":"crossref","unstructured":"Cha, S.K., Avgerinos, T., Rebert, A., Brumley, D.: Unleashing MAYHEM on binary code. In: 2012 IEEE Symposium on Security and Privacy, pp 380\u2013394 (2012)","DOI":"10.1109\/SP.2012.31"},{"key":"838_CR7","doi-asserted-by":"crossref","unstructured":"Cha, S.K., Woo, M., Brumley, D.: Program-adaptive mutational fuzzing. In: 2015 IEEE Symposium on Security and Privacy, pp 725\u2013741 (2015)","DOI":"10.1109\/SP.2015.50"},{"key":"838_CR8","doi-asserted-by":"crossref","unstructured":"Chen, J., Diao, W., Zhao, Q., et al.: IoTFuzzer: discovering memory corruptions in IoT through app-based fuzzing. NDSS (2018)","DOI":"10.14722\/ndss.2018.23159"},{"key":"838_CR9","doi-asserted-by":"crossref","unstructured":"Eustace, A., Eustace, A.: Atom: a system for building customized program analysis tools. PLDI, pp. 196\u2013205 (1994)","DOI":"10.1145\/773473.178260"},{"key":"838_CR10","doi-asserted-by":"crossref","unstructured":"Gan, S., Zhang, C., Qin, X., et al.: Collafl: path sensitive fuzzing. In: IEEE Symposium on Security and Privacy (SP), pp 679\u2013696 (2018)","DOI":"10.1109\/SP.2018.00040"},{"issue":"6","key":"838_CR11","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1145\/1064978.1065036","volume":"40","author":"P Godefroid","year":"2005","unstructured":"Godefroid, P., Klarlund, N., Sen, K.: Dart: directed automated random testing. SIGPLAN Not. 40(6), 213\u2013223 (2005)","journal-title":"SIGPLAN Not."},{"key":"838_CR12","doi-asserted-by":"crossref","unstructured":"H\u00f6schele, M., Zeller, A.: Mining input grammars from dynamic taints. In: Proceedings of the 31st IEEE\/ACM International Conference on Automated Software Engineering, pp 720\u2013725 (2016)","DOI":"10.1145\/2970276.2970321"},{"key":"838_CR13","doi-asserted-by":"crossref","unstructured":"Karg\u00e9n, U., Shahmehri, N.: Turning programs against each other: high coverage fuzz-testing using binary-code mutation and dynamic slicing. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, pp 782\u2013792 (2015)","DOI":"10.1145\/2786805.2786844"},{"key":"838_CR14","doi-asserted-by":"crossref","unstructured":"Laurenzano, M.A., Tikir, M.M., Carrington, L., Snavely, A.: Pebil: efficient static binary instrumentation for linux. ISPASS, pp. 175\u2013183 (2010)","DOI":"10.1109\/ISPASS.2010.5452024"},{"key":"838_CR15","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1145\/1064978.1065034","volume":"40","author":"CK Luk","year":"2005","unstructured":"Luk, C.K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: building customized program analysis tools with dynamic instrumentation. ACM SIGPLAN Not. 40, 190\u2013200 (2005)","journal-title":"ACM SIGPLAN Not."},{"key":"838_CR16","doi-asserted-by":"crossref","unstructured":"Muench, M., Stijohann, J., Kargl, F., Francillon, A., Balzarotti, D.: What you corrupt is not what you crash: challenges in fuzzing embedded devices. NDSS (2018)","DOI":"10.14722\/ndss.2018.23166"},{"key":"838_CR17","doi-asserted-by":"crossref","unstructured":"Nagy, S., Hicks, M.: Full-speed fuzzing: reducing fuzzing overhead through coverage-guided tracing. In: IEEE Symposium on Security and Privacy (SP), pp 787\u2013802 (2019)","DOI":"10.1109\/SP.2019.00069"},{"key":"838_CR18","unstructured":"Nanda, S., Li, W., Lam, L.C., Chiueh, T.C.: Bird: binary interpretation using runtime disassembly. CGO, pp. 358\u2013370 (2006)"},{"key":"838_CR19","doi-asserted-by":"publisher","first-page":"89","DOI":"10.1145\/1273442.1250746","volume":"42","author":"N Nethercote","year":"2007","unstructured":"Nethercote, N., Seward, J.: Valgrind: a framework for heavyweight dynamic binary instrumentation. ACM SIGPLAN Not. 42, 89\u2013100 (2007)","journal-title":"ACM SIGPLAN Not."},{"issue":"10","key":"838_CR20","doi-asserted-by":"publisher","first-page":"12","DOI":"10.1109\/MSPEC.2016.7572524","volume":"53","author":"A Nordrum","year":"2016","unstructured":"Nordrum, A.: The internet of fewer things [news]. IEEE Spectr. 53 (10), 12\u201313 (2016)","journal-title":"IEEE Spectr."},{"key":"838_CR21","unstructured":"Pak, B.S.: Hybrid fuzz testing: discovering software bugs via fuzzing and symbolic execution. School of Computer Science Carnegie Mellon University (2012)"},{"key":"838_CR22","unstructured":"Pani, P.: Measuring code coverage on an embedded target with highly limited resources. Master\u2019s Thesis. Graz University of Technology (2014)"},{"key":"838_CR23","doi-asserted-by":"crossref","unstructured":"Rawat, S., Jain, V., Kumar, A., Bos, H.: VUZzer: application-aware evolutionary fuzzing. Network and Distributed System Security Symposium (2017)","DOI":"10.14722\/ndss.2017.23404"},{"key":"838_CR24","unstructured":"Rebert, A., Cha, S.K., Avgerinos, T., Foote, J., Warren, D., Grieco, G., Brumley, D.: Optimizing seed selection for fuzzing. USENIX Security, pp. 861\u2013875 (2014)"},{"key":"838_CR25","doi-asserted-by":"crossref","unstructured":"She, D., Pei, K., Epstein, D., et al.: NEUZZ: efficient fuzzing with neural program smoothing. In: IEEE Symposium on Security and Privacy (SP), pp 803\u2013817 (2019)","DOI":"10.1109\/SP.2019.00052"},{"key":"838_CR26","unstructured":"Srivastava, A., Edwards, A., Vo, H.: Vulcan: binary transformation in a distributed environment. Technical Report msr-tr-2001-50. Microsoft Research (2001)"},{"key":"838_CR27","doi-asserted-by":"crossref","unstructured":"Srivastava, P., Peng, H., Li, J., et al.: Firmfuzz: automated IoT firmware introspection and analysis. In: Proceedings of the 2nd International ACM Workshop on Security and Privacy for the Internet-of-Things, pp 15\u201321 (2019)","DOI":"10.1145\/3338507.3358616"},{"issue":"6","key":"838_CR28","doi-asserted-by":"publisher","first-page":"3632","DOI":"10.1109\/TII.2019.2897133","volume":"15","author":"Y Xu","year":"2019","unstructured":"Xu, Y., Ren, J., Wang, G., Zhang, C., Yang, J., Zhang, Y.: A blockchain-based nonrepudiation network computing service scheme for industrial IoT. IEEE Transactions on Industrial Informatics 15(6), 3632\u20133641 (2019)","journal-title":"IEEE Transactions on Industrial Informatics"},{"issue":"7","key":"838_CR29","doi-asserted-by":"publisher","first-page":"27","DOI":"10.1145\/2007477.1952688","volume":"46","author":"Q Zhao","year":"2011","unstructured":"Zhao, Q., Koh, D., Raza, S., Bruening, D., Wong, W., Amarasinghe, S.: Dynamic cache contention detection in multi-threaded applications. ACM SIGPLAN Not. 46(7), 27\u201338 (2011)","journal-title":"ACM SIGPLAN Not."}],"container-title":["World Wide Web"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11280-020-00838-3.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s11280-020-00838-3\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11280-020-00838-3.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,11,20]],"date-time":"2022-11-20T16:29:27Z","timestamp":1668961767000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s11280-020-00838-3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,9,26]]},"references-count":29,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2021,5]]}},"alternative-id":["838"],"URL":"https:\/\/doi.org\/10.1007\/s11280-020-00838-3","relation":{},"ISSN":["1386-145X","1573-1413"],"issn-type":[{"type":"print","value":"1386-145X"},{"type":"electronic","value":"1573-1413"}],"subject":[],"published":{"date-parts":[[2020,9,26]]},"assertion":[{"value":"13 May 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"14 June 2020","order":2,"name":"revised","label":"Revised","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"31 August 2020","order":3,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"26 September 2020","order":4,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Compliance with Ethical Standards"}},{"value":"The authors declare that they have no conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"<!--Emphasis Type='Bold' removed-->Conflict of interests"}}]}}