728x90
반응형

리버스엔지니어링 8

자동분석 시스템으로 분석하기 힘든 샘플

악성코드를 분석할 때 증상위주로 파악하기 위해서 자동분석을 많이 사용합니다. 이때 문제가 발생하는건 크게 다음과 같습니다. 1. 자동분석 탐지 (가상환경, 모니터링 도구 등의 유무) 2. 인자 값 필요 3. 특정 환경 필요 (설치된 다른 프로그램 등) 4. 기타 (더 있을텐데 생각이 안나서..) 2,3번의 경우도 많은데 자동분석 시스템에서는 지극히 평범하고 정상적인 프로그램처럼 나옵니다. 하지만, 코드를 분석하면 원인을 알 수 있습니다. Ollydbg로 열어보면 실제 코드가 0x00401000 에서 시작하는 전형적인 비주얼 C 로 작성된 코드임을 알 수 있습니다. 0x00401000에 브레이크포인트(F9)를 걸고 달립니다. 0x00401045 에서 레지스트리를 읽어서 특정 값인지 비교합니다. 악성코드가 ..

SEH

일부 악성코드나 패커는 일부러 exception 을 발생시켜 분석을 방해하는 형태가 있다. 그때의 스택 구조와 각 구조체 정의에 대한 자료이다. 자료 정리는 팀내 모님께서 ... typedef struct _EXCEPTION_RECORD { DWORD ExceptionCode; DWORD ExceptionFlags; EXCEPTION_RECORD *ExceptionRecord; PVOID ExceptionAddress; DWORD NumberParameters; UINT_PTR ExceptionInformation[0Fh]; } EXCEPTION_RECORD; typedef struct _EXCEPTION_REGISTRATION { EXCEPTION_REGISTRATION *prev; EXCP_HANDL..

정적분석과 동적분석

악성코드 분석 방법에는 크게 정적분석과 동적분석이 있다. * 정적분석(Static Analysis) 샘플 실행하지 않고 분석. 타백신 실행하기, 내부 스트링보기, 단순 디스어셈블(?) * 동적분석(Dynamic Analysis) 샘플 실행하면서 분석 모니터링 프로그램(윈도우 악성코드의 경우 파일, 프로세스, 레지스트리, 네트워크) * 코드분석 디스어셈블, 디버거, 리버스 컴파일러 초급, 중급, 고급은 바로 정적분석, 동적분석과 코드분석 실력의 차이

F-Secure Reverse Engineering Challenge Level 1

F-Secure 리버스엔지니어링 문제 Level 1 의 그냥 따라가면된다. 파일은 아래에서 http://www.f-secure.com/khallenge/e3278641a885fedcdf7ec8bced72b8c1/FSC_Level1.zip 암호는 그냥 abcdef 라고 입력하고 코드를 따라가면 69001088 부터 원래 암호를 저장하는 것을 알 수 있다. %c 만 보면 8자 임을 알 수 있고 690010BF 가지 따라가 완성된 값은 Asm07REC 이 값을 690010C9 에서 비교함을 알 수 있다.

728x90
반응형