악성코드 분석/리버스 엔지니어링 4

패킹과 언패킹

프로그램 코드 크기를 줄이려고 압축하거나 프로그램 분석을 어렵게 만들려고 암호화하는 것을 패킹(Packing)이라고 합니다. 단순 압축하는 것을 컴프 레싱(Compressing), 암호화하는 것을 프로텍팅(Protecting)이라고 구분 컴프 레싱(Compressing) 실행 코드를 압축해서 PE 파일의 특정 섹션에 저장하고 프로그램이 실행될 때 공간에 압축을 풀어 실행하는 구조 프로텍팅(Protecting) 실행 파일을 암호화해서 분석을 어렵게 만드는 기술이다. 실행코드는 암호화된 상태로 배포되고, 실행 시점에 복호화되어 동작을 수행한다. Packer Compressor Protector 파일 소형화 코드 난독화 저용량 실행 파일 생성 내부 실행 로직 보호 프로그램 실행 속도 저하 프로그램 크기 증가 ..

레나 리버싱 17 강 일련번호 생성 로직 분석

XOR ESI, ESI 명령어는 같은 레지스터를 XOR 연산하게 되면은 0으로 초기화하는 과정입니다. 빨간색으로 네모칸 친 부분이 일련번호 생성 부분이고 차례대로 번호를 붙여서 설명하겠습니다. 입력된 값 : lena151 1. 'MOV EDX, DWORD PTR DS : [403038] ' EDX 레지스터로 DWORD(4바이트) 크기만큼 복사하는 명령어입니다 (WORD는 2바이트) '403038'에 있는 데이터 4바이트만큼 EDX에 복사한다. 주소에는 '6C 65 6E 61'이 저장되어 있으며, ASCII 코드로 'lena'라고 확인할 수 있습니다. 2. 'MOV DL, BYTE PTR DS : [EAX + 403037] EAX 레지스터에는 1이 저장되어 있으며, 1 + 403037 = 403038이라고..

실전 악성코드와 멀웨어 분석 실습 - 11-01

실습 환경 운영체제 : Windows XP 가상화 : Vmware Workstation 12 도구 : PEView , ProcMon , IDA Pro , Strings 먼저 기초 정적 분석으로 PEView 도구를 사용하여 GINADLL과 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 문자를 찾을 수 있었습니다. 그러하여 GINA 가로채기 악성코드라 짐작할 수 있었습니다. 그림 2-1 과 2-2를 보고 임포트 함수에는 Register를 변경하는 임포트 함수와 악성코드를 실행시킨 후에 ProcMon으로 본 결과 GinaDLL에 msgina32.dll 경로를 삽입하는 것을 볼 수 있습니다. IDA pro를 사용하여 Lab11-01 파일을 확인하면 서브루틴이 0..

[악성코드 분석] 리버스 엔지니어링이란?

리버스 엔지니어링(Reverse Engineering) - 소프트웨어의 한 분야로, 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어내는 일을 말합니다. 이것은 시스템을 이해하여 적절히 변경하는 소프트웨어 유지보수 과정의 일부 입니다. 다른 단어로는 역공학이라고도 말하는데요 개발을 예로 들어서 설명드릴게요 개발은 위해서 분석, 설계, 코딩, 테스트, 유지보수 등의 절차를 밟아가며 개발하는 순공학에 반대로 뒤집다라는 뜻에 리버스가 붙은 역공학이라고 부릅니다. 소프트웨어 제품은 판매시 소스는 제공하지 않으나 각종도구를 활용하여 컴파일된 실행 파일과 동작상태를 정밀 분석하면 그 프로개름의 내부동작과 설계 개념을 어느 정도 추척할수 있고, 이러한 정보를 이용하여 크랙, 파일을 수정..