티스토리 뷰

문제 풀이에 앞서,

안녕하세요. 정말 오랫만입니다.

역시나 다른 시험때문에 포스팅을 쓸 여유가 없습니다.ㅠㅠ 죄송합니다.

꾸준히 올리도록 노력하겠습니다. 피드백은 언제나 환영입니다. 항상 감사합니다:)


문제

문16. 역공학(reverse engineering) 프로세스에 대한 설명으로 옳지 않은 것은?

 

① 코드 난독화를 수행하면 역공학을 쉽게 할 수 있다.

② 제품의 추상화가 하위 수준에서 상위 수준으로 수행된다.

③ 소스 코드를 분석하여 이해하기 쉬운 다이어그램으로 변형한다.

④ 기존 시스템을 이해하기 위해 시스템을 구성하는 주요 요소들과 이들 사이의 관계를 파악한다.


정답

①번


풀이전 기초

* 역공학 (Reverse Engineering)

- 소프트웨어의 한 분야로 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계 기법 등의 자료를 얻어내는 일을 말한다. 이것은 시스템을 이해하여 적절히 변경하는 소프트웨어 유지 보수 과정에 특화되어 있다.

 

* 코드 난독화 (Code Obfuscation)

- 코드 난독화는 프로그램을 변화하는 방법의 일종으로, 코드를 읽기 어렵게 만들어 역공학을 통한 공격을 막는 기술을 의미한다.

- 소스코드 난독화와 바이너리 난독화로 나눌 수 있다.

 

* 소스코드 난독화

- 소스코드를 알아보기 힘든 형태로 바꾸는 것

ex) 띄어쓰기 무시 등

 

* 바이너리 난독화

- 컴파일 후에 생성된 바이너리를 역공학을 통해 분석하기 힘들게 변조하는 기술

ex1) 필요 이상으로 복잡한 코드를 만들거나 아무것도 하지 않는 코드(함수)를 삽입한다.

ex2) 코드를 여기저기로 복사하고 옮긴다.

ex3) 데이터를 알아보기 힘들게 인코딩(encording)한다.


풀이과정

코드 난독화 수행시 역공학이 더 어려워진다. 그러므로 옳지 않은 선다는 ①번.


마치며...

오늘은 자료도 필요없고 내용도 짧아서 비교적 수월한 포스팅이었네요. 히히

그럼 항상 행복하세요~

댓글