반응형
역공학
소프트웨어 공학의 한 분야로 이미 만들어진 시스템을 역으로 추적하여
처음의 문서나 설계기법 등의 자료를 얻어 내는 일
시스템을 이해하여 수정하는 소프트웨어 유지보수 단계에 수행하는 일련의 활동
즉, 소프트웨어 생명주기의 마지막 단계에서 얻어지는 프로그램 또는 문서 등을 이용하여
생명주기 초기 단계의 산출물에 해당하는 정보 또는 문서를 만들어 내는 일로서
설계부터 순차적으로 수행하는 순공학에 상대되는 개념
출처: 탑싯 에센스
소프트웨어 3R 개념도
역공학의 Input / Output
Input | Output |
원시코드, 목적코드, 작업절차, 라이브러리 등 입출력 형태의 자료, 문서 |
구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도 |
역공학의 종류
종류 | 설명 |
논리 역공학 | 원시코드로부터 정보를 추출하여 물리적 설계 정보저장소에 저장 물리적 설계정보를 얻어내는 역할 수행 |
자료 역공학 | 기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리시스템으로 전이하는 역할 수행 |
안티 리버싱
코드 난독화
역공학 방법
정적 분석 - 파일 실행 없이, 코드와 구조 확인
동적 분석 - 파일 실행, 행위 분석
나름 여러 자료들을 보면서 포스팅을 하고 있긴 하지만,
제 전문 분야가 아니다 보니 틀린 부분도 있을 수 있습니다.
선별해서 보셨으면 합니다.
기출 문제
(관리 114-1-11)
재공학(Re-engineering), 역공학(Reverse Engineering)
(관리 95-1-13)
소프트웨어 역공학(Reverse Engineering)과 코드 난독화(Code Obfuscation)의 관계에 대하여 설명하시오.
(응용 108-3-1)
호환성 확보를 위한 컴퓨터 프로그램 코드의 역공학(Reverse Engineering) 허용을 저작권 측면에서 설명하시오.
참고 자료
탑싯 에센스 - 소프트웨어 개발
정적/동적 분석 기법 : 네이버 블로그 (naver.com)
반응형
'(Pilot) 탑기공 > 소프트웨어 개발' 카테고리의 다른 글
큐(Queue) - "큐피포" (0) | 2022.12.16 |
---|---|
스택(Stack) - "스리포 3!4!" (0) | 2022.12.15 |
[탑기공] 소프트웨어 재사용 (0) | 2022.12.13 |
[탑기공] 04. 애자일 개발 방법론 (0) | 2022.12.12 |
[탑기공] 03. 소프트웨어 개발 방법론 (0) | 2022.12.07 |
댓글