리버스 엔지니어링 Reverse Engineering
: 역공학. 어느 특정 물건, 장치 --> 그의 구조,기능,동작 등을 역으로 따라가며 분석하는 작업
-->> 원리 이해, 부족한 부분 보완
--예) 약 성분 분석, 자동차 주행원리 이해, 전자제품 회로 분석
(그 중 소프트웨어 대상으로 한 리버싱 다룰거임)
엔지니어링 vs 리버스 엔지니어링
> 반대과정
- 엔지니어링
: 완성품, 구성부품들의 기능, 설계를 고안,제작하는 과정
- 리버스 엔지니어링 (= 리버싱)
: 완성된 제품 해체,분석하여 구조,기능,디자인 파악하는 과정
-예) 자동차 주행원리 이해, 전자제품 회로 분석, 게임 핵 만들기
리버싱의 용도
-좋은 케이스) 오래되어 이미 개발 중단한 프로그램에 대한 패치 필요할때
-나쁜 케이스) 상용프로그램 무료로 이용하기 위해 쓰는 불법 프로그램 만들때(크랙,시리얼넘버생성기 등)
-보편적 케이스) 학습,연구용 , 각종 악성코드, 불법프로그램 분석,대응용
리버싱 업무의 어려움
: 수 만, 수 억 줄의 코드 프로그램에서 분석할 부분 찾아야함
> 안티리버싱 기술 우회 필요
> 수학적 지식, 필요한 도구 직접 개발 필요할 때도 있음
내용 출처:
'보안 > 리버싱' 카테고리의 다른 글
[리버싱] 스택 프레임 (0) | 2024.02.04 |
---|---|
[리버싱] 레지스터 (0) | 2024.02.04 |
[리버싱] 스택 (0) | 2024.02.04 |
[리버싱] 03 소프트웨어 분석 기법 (0) | 2024.01.28 |
[리버싱] 02 Binary 와 컴파일 과정 이해 (0) | 2024.01.28 |