본문 바로가기
(Pilot) 탑기공/소프트웨어 개발

[탑기공] 역공학

by 두음달인 2022. 12. 14.
반응형

 


역공학

 

소프트웨어 공학의 한 분야로 이미 만들어진 시스템을 역으로 추적하여
처음의 문서나 설계기법 등의 자료를 얻어 내는 일

시스템을 이해하여 수정하는 소프트웨어 유지보수 단계에 수행하는 일련의 활동

즉, 소프트웨어 생명주기의 마지막 단계에서 얻어지는 프로그램 또는 문서 등을 이용하여
생명주기 초기 단계의 산출물에 해당하는 정보 또는 문서를 만들어 내는 일로서
설계부터 순차적으로 수행하는 순공학에 상대되는 개념

출처: 탑싯 에센스

 

 

소프트웨어 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)

 

정적/동적 분석 기법

1. 정적 분석 기술 - 이러한 정적 분석 기술은 입력 값의 유효성 측면에서의 점검을 수행하나, 입력 값의 ...

blog.naver.com

 

리버스 엔지니어링 - IT위키 (itwiki.kr)

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

반응형

댓글