반응형




안녕들 하시죠 !

 

정보보호 공부를 하면서 리버싱이라는 단어는 자주 들어왔는데요.

리버싱?  분석할 때 쓰는거? 그거 디버깅 아니야?  라는 생각만 하고 살았는데 직접 책을 펴고 공부해보니 어렵지만 흥미로운 분야인 것 같습니다.


너무도 유명한 책 리버싱 핵심원리일명 나뭇잎 책이라고도 불리는데 이 책을 가지고 하나하나 따라해보고 있습니다.

 

 

리버싱 공부에 들어가기에 앞서 리버싱이 도대체 뭘 뜻하는지에 대해서 알아보고 들어가려고합니다.

 


버스 엔지니어링[reverse engineering]

완성된 제품을 분석하여 제품의 기본적인 설계 개념과 적용 기술을 파악하고 재현하는 것.

실행파일을 수정하거나 프로그램의 동작을 변경할 수 있고, 또 유사한 동작의 복제 프로그램이나 보다 기능이 향상된 프로그램도 개발할 수 있다.

 


 

리버싱 분석 방법에는 크게 2가지가 있습니다.

 

첫째, 정적분석 


파일을 실행시키지 않고 겉모습을 관찰.

파일의 종류, 크기, 헤더, 등록정보 등의 다양한 내용 확인.

내부 코드와 그 구조를 확인.

위의 내용을 가지고 동적분석에 활용.


둘째동적분석


파일을 직접 실행해 파일, 레지스트리, 네트워크 등을 관찰하여 프로그램의 행위를 분석한다.



 

2진수 (Binary) -> 16진수 (Hex) -> 어셈블리(Assembly)



일반적으로 우리가 작성한 소스코드를 빌드하게되면 .exe 실행파일이 생성되게됩니다.

이러한 .exe 실행파일2진수(Binary)로 되어있습니다.







2진수라하면 01로 되어있는데 사람이 보고 분석하기에는 너무 어려워 2진수에서 16진수(Hex)로 변환을 시켜줍니다.

 



이렇게 변환시킨 Hex Code(16진수) 또한 사람이 보기에 직관적이지 못하니 좀더 쉽게 파악하기위해

Hex Code(16진수) Disassemble과정을 거쳐 어셈블리(Assembly)코드 형태로 변환시켜줍니다.




우리는 앞으로 이 어셈블리 코드를 가지고 분석을 하게 될 것 입니다.

 

분석을 위해서는 Ollydbg라는 디버거가 필요한데요.

다음시간에는 Ollydbg의 설치와 설정과정에 대해 알아보겠습니다. 


오늘은 여기까지입니다 감사합니다 !




참고서적 이승원 「리버싱 핵심원리」 인사이트(2018) p3~11

+ Recent posts