{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,1]],"date-time":"2025-11-01T09:24:42Z","timestamp":1761989082127,"version":"3.41.0"},"publisher-location":"Cham","reference-count":58,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783319621043"},{"type":"electronic","value":"9783319621050"}],"license":[{"start":{"date-parts":[[2017,1,1]],"date-time":"2017-01-01T00:00:00Z","timestamp":1483228800000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2017]]},"DOI":"10.1007\/978-3-319-62105-0_12","type":"book-chapter","created":{"date-parts":[[2017,6,23]],"date-time":"2017-06-23T09:13:20Z","timestamp":1498209200000},"page":"177-195","source":"Crossref","is-referenced-by-count":3,"title":["JTR: A Binary Solution for Switch-Case Recovery"],"prefix":"10.1007","author":[{"given":"Lucian","family":"Cojocar","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Taddeus","family":"Kroes","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Herbert","family":"Bos","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2017,6,24]]},"reference":[{"key":"12_CR1","unstructured":"IDA F.L.I.R.T. Technology: Overview"},{"key":"12_CR2","unstructured":"Angr, Switch Statement Analysis 106, June 2016. https:\/\/github.com\/angr\/angr\/issues\/106"},{"key":"12_CR3","unstructured":"Radare2, Analyze jump tables 3201, June 2016. https:\/\/github.com\/radare\/radare2\/issues\/3201"},{"key":"12_CR4","unstructured":"Radare2, Portable reversing framework, June 2016. https:\/\/radare.org"},{"key":"12_CR5","unstructured":"Retargetable Decompiler, June 2016. https:\/\/retdec.com\/decompilation-run\/"},{"key":"12_CR6","doi-asserted-by":"crossref","unstructured":"Abadi, M., Budiu, M., Erlingsson, U., and Ligatti, J. Control-flow integrity. In: CCS12 (2005)","DOI":"10.1145\/1102120.1102165"},{"key":"12_CR7","doi-asserted-by":"crossref","unstructured":"Anand, K., Smithson, M., Elwazeer, K., Kotha, A., Gruen, J., Giles, N., Barua, R.: A compiler-level intermediate representation based binary analysis and rewriting system. In: ECCS8, pp. 295\u2013308 (2013)","DOI":"10.1145\/2465351.2465380"},{"key":"12_CR8","unstructured":"Anand, K., Smithson, M., Kotha, A., Elwazeer, K., Barua, R.: Decompilation to compiler high IR in a binary rewriter. Technical report, University of Maryland (2010)"},{"key":"12_CR9","doi-asserted-by":"crossref","unstructured":"Arzt, S., Rasthofer, S., Fritz, C., Bodden, E., Bartel, A., Klein, J., Le Traon, Y., Octeau, D., McDaniel, P.: Flowdroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. In: ACM SIGPLAN (2014)","DOI":"10.1145\/2594291.2594299"},{"key":"12_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"5","DOI":"10.1007\/978-3-540-24723-4_2","volume-title":"Compiler Construction","author":"G Balakrishnan","year":"2004","unstructured":"Balakrishnan, G., Reps, T.: Analyzing memory accesses in x86 executables. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol. 2985, pp. 5\u201323. Springer, Heidelberg (2004). doi: 10.1007\/978-3-540-24723-4_2"},{"issue":"6","key":"12_CR11","doi-asserted-by":"crossref","first-page":"23:1","DOI":"10.1145\/1749608.1749612","volume":"32","author":"G Balakrishnan","year":"2010","unstructured":"Balakrishnan, G., Reps, T.: What you see is not what you execute. ACM Trans. Program. Lang. Syst. 32(6), 23:1\u201323:84 (2010)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"12_CR12","unstructured":"Bansal, S., Aiken, A.: Binary translation using peephole super optimizers. In: OSDI 2008 (2008)"},{"key":"12_CR13","unstructured":"Bao, T., Burket, J., Woo, M., Turner, R., Brumley, D. Byteweight: learning to recognize functions in binary code. In: USENIX Security 2014 (2014)"},{"key":"12_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"54","DOI":"10.1007\/978-3-642-18275-4_6","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"S Bardin","year":"2011","unstructured":"Bardin, S., Herrmann, P., V\u00e9drine, F.: Refinement-based CFG reconstruction from unstructured programs. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 54\u201369. Springer, Heidelberg (2011). doi: 10.1007\/978-3-642-18275-4_6"},{"key":"12_CR15","unstructured":"Brauer, J., Hansen, R.R., Kowalewski, S., Larsen, K.G., Olesen, M.C.: Adaptable value-set analysis for low-level code. In: SSV 2012 (2012)"},{"key":"12_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"463","DOI":"10.1007\/978-3-642-22110-1_37","volume-title":"Computer Aided Verification","author":"D Brumley","year":"2011","unstructured":"Brumley, D., Jager, I., Avgerinos, T., Schwartz, E.J.: BAP: a binary analysis platform. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 463\u2013469. Springer, Heidelberg (2011). doi: 10.1007\/978-3-642-22110-1_37"},{"key":"12_CR17","unstructured":"Brumley, D., Lee, J., Schwartz, E.J., Woo, M.: Native x86 decompilation using semantics-preserving structural analysis and iterative control-flow structuring. In: USENIX SEC 2013 (2013)"},{"key":"12_CR18","doi-asserted-by":"crossref","unstructured":"Castro, M., Costa, M., Martin, J.-P., Peinado, M., Akritidis, P., Donnelly, A., Barham, P., Black, R.: Fast byte-granularity software fault isolation. In: SIGOPS 2009 (2009)","DOI":"10.1145\/1629575.1629581"},{"key":"12_CR19","doi-asserted-by":"crossref","unstructured":"Cha, S.K., Woo, M., Brumley, D.: Program-adaptive mutational fuzzing. In: S&P 2015 (2015)","DOI":"10.1109\/SP.2015.50"},{"key":"12_CR20","doi-asserted-by":"crossref","unstructured":"Cifuentes, C., Van Emmerik, M.: Recovery of jump table case statements from binary code. In: Program Comprehension (1999)","DOI":"10.1109\/WPC.1999.777758"},{"key":"12_CR21","unstructured":"Cojocar, L., Zaddach, J., Verdult, R., Bos, H., Francillon, A., Balzarotti, D.: Parser identification in embedded systems. In: ACSAC 2015 (2015)"},{"key":"12_CR22","unstructured":"Davi, L., Lehmann, D., Sadeghi, A.-R., Monrose, F.: Stitching the gadgets: on the ineffectiveness of coarse-grained control-flow integrity protection. In: USENIX SEC 2014 (2014)"},{"key":"12_CR23","doi-asserted-by":"crossref","unstructured":"Di Federico, A., Payer, M., Agosta, G.: Rev.Ng: a unified binary analysis framework to recover CFGs and function boundaries. In: Proceedings of the 26th International Conference on Compiler Construction, CC 2017, pp. 131\u2013141. ACM (2017)","DOI":"10.1145\/3033019.3033028"},{"issue":"4","key":"12_CR24","first-page":"91","volume":"5","author":"L Durfina","year":"2011","unstructured":"Durfina, L., K\u0159oustek, J., Zemek, P., Kol\u00e1vr, D., Hruska, T., Masar\u00edk, K., Meduna, A.: Design of a retargetable decompiler for a static platform-independent malware analysis. Int. J. Secur. Its Appl. 5(4), 91\u2013106 (2011)","journal-title":"Int. J. Secur. Its Appl."},{"key":"12_CR25","unstructured":"Erlingsson, U., Abadi, M., Vrable, M., Budiu, M., Necula, G.: Software guards for system address spaces. In: OSDI 2006 (2006)"},{"key":"12_CR26","doi-asserted-by":"crossref","unstructured":"Evans, I., Long, F., Otgonbaatar, U., Shrobe, H., Rinard, M., Okhravi, H., Sidiroglou-Douskos, S.: Control jujutsu: on the weaknesses of fine-grained control flow integrity. In: CCS 2015 (2015)","DOI":"10.1145\/2810103.2813646"},{"key":"12_CR27","unstructured":"Ford, B., Cox, R.: Vx32: lightweight user-level sandboxing on the x86. In: USENIX Annual Technical Conference"},{"key":"12_CR28","doi-asserted-by":"crossref","unstructured":"Ganesh, V., Leek, T., Rinard, M.: Taint-based directed whitebox fuzzing. In: ICSE 2009 (2009)","DOI":"10.1109\/ICSE.2009.5070546"},{"key":"12_CR29","doi-asserted-by":"crossref","unstructured":"Gedich, A., Lazdin, A.: Improved algorithm for identification of switch tables in executable code. In: FRUCT 2015 (2015)","DOI":"10.1109\/FRUCT.2015.7117969"},{"issue":"5","key":"12_CR30","doi-asserted-by":"crossref","first-page":"63","DOI":"10.1145\/1127577.1127590","volume":"33","author":"LC Harris","year":"2005","unstructured":"Harris, L.C., Miller, B.P.: Practical analysis of stripped binary code. ACM SIGARCH Comput. Archit. News 33(5), 63\u201368 (2005)","journal-title":"ACM SIGARCH Comput. Archit. News"},{"key":"12_CR31","unstructured":"Holsti, N.: Analysing switch-case tables by partial evaluation. In: WCET (2007)"},{"key":"12_CR32","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"423","DOI":"10.1007\/978-3-540-70545-1_40","volume-title":"Computer Aided Verification","author":"J Kinder","year":"2008","unstructured":"Kinder, J., Veith, H.: Jakstab: a static analysis platform for binaries. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 423\u2013427. Springer, Heidelberg (2008). doi: 10.1007\/978-3-540-70545-1_40"},{"key":"12_CR33","unstructured":"Kinder, J., Veith, H.: Precise static analysis of untrusted driver binaries. In: FMCAD 2010 (2010)"},{"key":"12_CR34","unstructured":"K\u0159oustek, J.: Retargetable Analysis of Machine Code. PhD thesis, Faculty of Information Technology, Brno University of Technology, CZ (2015)"},{"key":"12_CR35","unstructured":"K\u00e4stner, D., Wilhelm, S.: Generic Control Flow Reconstruction from Assembly Code"},{"key":"12_CR36","unstructured":"Li, Y., McCune, J., Newsome, J., Perrig, A., Baker, B., Drewry, W.: Minibox : a two-way sandbox for x86 native code. In: USENIX ATC 2014 (2014)"},{"key":"12_CR37","doi-asserted-by":"crossref","unstructured":"McCabe, T.J.: A complexity measure. IEEE Softw. Eng. (1976)","DOI":"10.1109\/TSE.1976.233837"},{"key":"12_CR38","unstructured":"McCamant, S., Morrisett, G.: Evaluating SFI for a CISC architecture. In: USENIX-SS 2006 (2006)"},{"key":"12_CR39","doi-asserted-by":"crossref","unstructured":"Meng, X., Miller, B.: Binary code is not easy. In: ISSTA 2016 (2016)","DOI":"10.1145\/2931037.2931047"},{"key":"12_CR40","unstructured":"Microsoft. The Z3 Theorem Prover, February 2016. https:\/\/github.com\/Z3Prover\/z3"},{"key":"12_CR41","unstructured":"Ming, J., Wu, D., Xiao, G., Wang, J., Liu, P. TaintPipe: pipelined symbolic taint analysis. In: USENIX SEC 2015 (2015)"},{"key":"12_CR42","doi-asserted-by":"crossref","unstructured":"O\u2019Sullivan, P., Anand, K., Kotha, A.: Retrofitting security in COTS software with binary rewriting. In: IFP SEC 2011 (2011)","DOI":"10.1007\/978-3-642-21424-0_13"},{"key":"12_CR43","doi-asserted-by":"crossref","unstructured":"Reinbacher, T., Brauer, J.: Precise control flow reconstruction using boolean logic. In: EMSOFT 2011 (2011)","DOI":"10.1145\/2038642.2038662"},{"key":"12_CR44","unstructured":"Sayle, R.A.: A superoptimizer analysis of multiway branch code generation. In: Proceedings of the GCC Developers Summit (2008)"},{"key":"12_CR45","unstructured":"Sehr, D., Muth, R., Biffle, C. L., Khimenko, V., Pasko, E., Yee, B., Schimpf, K., Chen, B.: Adapting software fault isolation to contemporary CPU architectures. In: USENIX SEC 2010 (2010)"},{"key":"12_CR46","doi-asserted-by":"crossref","unstructured":"Shen, B.-Y., Chen, J.-Y., Hsu, W.-C., Yang, W.: An LLVM-based static binary translator. In: Proceedings of the 2012 International Conference on Compilers, Architectures and Synthesis for Embedded Systems, CASES 2012, pp. 51\u201360. ACM, New York (2012)","DOI":"10.1145\/2380403.2380419"},{"key":"12_CR47","doi-asserted-by":"crossref","unstructured":"Shin, Y., Williams, L.: An empirical model to predict security vulnerabilities using code complexity metrics. In: ESEM 2008 (2008)","DOI":"10.1145\/1414004.1414065"},{"key":"12_CR48","doi-asserted-by":"crossref","unstructured":"Shoshitaishvili, Y., Wang, R., Salls, C., Stephens, N., Polino, M., Dutcher, A., Grosen, J., Feng, S., Hauser, C., Kruegel, C., Vigna, G.: SoK: (State of) the art of war: offensive techniques in binary analysis. In: S&P 2016 (2016)","DOI":"10.1109\/SP.2016.17"},{"key":"12_CR49","unstructured":"Smithson, M., Anand, K., Kotha, A.: Binary rewriting without relocation information. Technical report. University of Maryland, November 2010"},{"key":"12_CR50","unstructured":"Tice, C., Roeder, T., Collingbourne, P., Checkoway, S., Erlingsson, U., Lozano, L., Pike, G.: Enforcing forward-edge control-flow integrity in GCC & LLVM. In: USENIX SEC 2014 (2014)"},{"key":"12_CR51","unstructured":"Tikir, M. M., Laurenzano, M., Carrington, L., Snavely, A.: PMaC binary instrumentation library for PowerPC\/AIX. In: Workshop on Bin. Inst. and App. (2006)"},{"key":"12_CR52","doi-asserted-by":"crossref","unstructured":"van der Veen, V., Andriesse, D., G\u00f6kta\u015f, E., Gras, B., Sambuc, L., Slowinska, A., Bos, H., Giuffrida, C.: Practical context-sensitive cfi. In: CCS 2015 (2015)","DOI":"10.1145\/2810103.2813673"},{"key":"12_CR53","unstructured":"Wang, S., Wang, P., Wu, D.: Reassembleable disassembling. In: USENIX SEC 2015 (2015)"},{"key":"12_CR54","doi-asserted-by":"crossref","unstructured":"Wang, X., Jhi, Y.-C., Zhu, S., Liu, P. Still : Exploit code detection via static taint and initialization analyses. In: ACSAC 2008 (2008)","DOI":"10.1109\/ACSAC.2008.37"},{"key":"12_CR55","doi-asserted-by":"crossref","unstructured":"Yee, B., Sehr, D., Dardyk, G., Chen, J., Muth, R., Ormandy, T., Okasaka, S., Narula, N., Fullagar, N.: Native client: a sandbox for portable, untrusted x86 native code. In: S&P 2009 (2009)","DOI":"10.1109\/SP.2009.25"},{"key":"12_CR56","doi-asserted-by":"crossref","unstructured":"Zaddach, J., Bruno, L., Francillon, A., Balzarotti, D.: A framework to support dynamic security analysis of embedded systems\u2019 firmwares. In: NDSS 2014 (2014)","DOI":"10.14722\/ndss.2014.23229"},{"key":"12_CR57","doi-asserted-by":"crossref","unstructured":"Zeng, B., Tan, G., Morrisett, G.: Combining control-flow integrity and static analysis for efficient and validated data sandboxing. In: CCS18, pp. 29\u201340. ACM (2011)","DOI":"10.1145\/2046707.2046713"},{"key":"12_CR58","unstructured":"Zhang, M., Sekar, R.: Control flow integrity for COTS binaries. In: USENIX SEC 2013 (2013)"}],"container-title":["Lecture Notes in Computer Science","Engineering Secure Software and Systems"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-62105-0_12","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T23:35:13Z","timestamp":1750376113000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-319-62105-0_12"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017]]},"ISBN":["9783319621043","9783319621050"],"references-count":58,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-62105-0_12","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2017]]}}}