연구 영역
기본 정보
논문·특허
과제
구성원
Article|
인용수 5
·2024
R2I: A Relative Readability Metric for Decompiled Code
Haeun Eom, Dohee Kim, Sori Lim, Hyungjoon Koo, Sungjae Hwang
Proceedings of the ACM on software engineering.
초록

역분해(Decompilation)는 저수준 기계 코드 스니펫을 C와 같은 고수준 프로그래밍 언어로 다시 변환하는 과정이다. 이는 역공학자들이 코드의 맥락적 의미론을 이해하는 데 도움을 주기 위한 기반으로 활용된다. 이러한 점에서 Hex-Rays와 같은 상용 역분해기들은 시간이 지남에 따라 역분해된 코드의 가독성을 향상시키는 데 상당한 성과를 거두었다. 선행 연구에서는 식별자, 변수명, 함수명, 주석을 포함한 소스 코드의 가독성을 평가하기 위한 메트릭을 제안해 왔으나, 주로 i) 소스에서 풍부한 의미론적 정보가 부족하고 ii) 오류가 있는 문법 또는 부적절한 표현이 존재하기 때문에 이러한 메트릭들은 역분해 코드의 가독성을 측정하기에 적합하지 않다. 이에 대응하여, 본 연구는 우리가 아는 한 역분해 코드를 상대적 맥락에서 정량적으로 평가하기 위해 특화된 메트릭인 R2I(Relative Readability Index)를 최초로 제안한다. 본질적으로 R2I는 i) 서로 다른 역분해기들로부터 얻은 코드 스니펫을 입력으로 하고 ii) 추상 구문 트리(abstract syntax tree)에서 사전에 정의된 특징들을 추출함으로써 계산될 수 있다. R2I의 견고성을 확보하기 위해, (비)상용 역분해기와 학술 연구가 코드 가독성을 증진하기 위해 수행해 온 향상 노력을 면밀히 조사하였고, 신뢰할 수 있는 지수를 집합적으로 산출하기 위해 31개의 특징을 식별하였다. 또한 본 연구는 개인의 코딩 스타일 및 선호와 같은 주관적 요인을 포착하기 위해 사용자 설문을 수행하였다. 실증 실험 결과, R2I는 역분해 코드의 상대적 품질(예: 난독화, 역분해기 업데이트)을 나타낼 수 있는 다목적 메트릭이며, 설문에서의 인간의 인식과도 잘 일치함을 보여준다.

*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.

키워드
ReadabilityComputer scienceIdentifierSource codeInformation retrievalAbstract syntax treeProgram comprehensionSyntaxNatural language processingProgramming language
타입
Article
IF / 인용수
- / 5
게재 연도
2024