-
리버싱(0)-리버스엔지니어링이란보안 2022. 11. 1. 12:40
리버스 엔지니어링의 개념
리버스엔지니어링(Reverse Engineering)
물건,기계장치 혹은 시스템의 구조,기능,동작등을 분석하여 원리를 이해하고 단점을 보완하거나 기능을 추가하는작업
리버스 코드 엔지니어링 (Reverse Code Engineering)
소프트웨어 분야의 리버스엔지니어링 -> 리버싱 이라고함
리버싱 적용 분야
컴퓨터 원리와 구조이해
리버싱에 필요한 지식 cpu,레지스터,메모리,운영체제등의 기능을 알아야함
리버싱을 통해 컴퓨터의 동작원리를 쉽게 이해할 수 있음
프로그램 유지보수 및 보안 점검
프로그램의 오류를 찾고 패치하는 과정을 통해 유지보수를 수행할 수 있음
프로그램의 오류는 퍼징,리버싱을 통해 찾을 수 있음
퍼징->컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다.
악성코드 개발과 분석
악성코드개발자-악성코드의 취약성분석
백신개발자-악성코드의 단계분석
소프트웨어 분석
크래커-저작권보호루틴(시리얼 키,크랙파일)우회
회사-경쟁회사의 소프트웨어를 분석하여 더나은 제품을 개발
소프트웨어 품질과 안정성평가
자체 보호기능의 안정성측정
오류 발생가능성 측정
리버싱방법
정적분석(static analysis)
파일의 겉부분(확장자,크기,헤더정보,사용api 등)을 관찰하여 분석함
에디터프로그램 활용
동적분석(dynamic analysis)
파일을 직접 실행시켜 분석함
(패킷,레지스트리등)
행위를 분석한다고 하기도함
디버거,패킷캡처 프로그램 활용
패치(patch)
프로그램의 파일,실행중인 메모리의 내용을 변경하는 작업
(window 업데이트,게임 업데이트 등)
크랙(crack)
패치와 같은 개념이지만 불법적이고 비도덕적인경우
(불법 프로그램)
리버싱위험도
소프트웨어 상호 운용성
두프로그램 사이의 호환성을 위한 소프트웨어 분석
(mac to window , linux to window ,etc)
경쟁제품개발
경쟁사의 소프트웨어의 원리를 분석하여 소프트웨어 개발에 활용
저작권법/특허권
기존 소프트웨어 코드를 사용하였을 경우 저작권법 위반
특허권 - 20년기간을 가짐 (RSA,gif)
프로그래밍 테스트
화이트박스테스트(white box test)
원시코드를 활용하여 상세한 내부구조및 작동에대한 지식을 기초하여
프로그램을 분석
개발자나 사용자가 원시코드를 보유한 경우 수행
목적코드에 대한 역분석 결과를 분석하는것도 화이트박스 분석이라고 할 수 있음
블랙박스 테스트(black box test)
내부구조및 작동에 대한 지식없이 프로그램의 기능을 분석함
개발과 관계없는 사람이 기능분석을 하는경우
가상환경에서 프로그램의 동작을 분석함
그레이 박스 테스트(gray box test)
화이트박스와 블랙박스테스트를 혼합한 형태
블랙박스 테스트로 정보를 파악하고
프로그램의 코드 역분석을 수행하는 경우
디버거로 프로그램에 특정 입력값을 넣은 결과를 분석하는 경우
'보안' 카테고리의 다른 글
정보처리기사 공부 (1) 소프트웨어 설계-생명주기,기본원칙,개발모형 (1) 2022.12.27 안티리버싱(anti-reversing) (0) 2022.11.22 피아트-샤미르(Fiat-Shamir)프로토콜 (0) 2022.11.16 도커(DOCKER) 상에서 비트코인 다운로드하기 (0) 2022.11.15 블록체인 - (0) 블록체인의 역사 (0) 2022.09.06