티스토리 뷰

728x90
반응형

[Reversing] 델파이(Delphi) 관련 정리


영화 '결백' 동영상 파일(*.AAC)로 위장하여 유포되는 백도어

https://asec.ahnlab.com/1351


참조

https://sanseolab.tistory.com/56

http://www.reversenote.info/how-to-analyze-delphi/

https://reverseengineering.stackexchange.com/questions/2873/which-ida-pro-signature-should-be-used-for-borland-delphi-6-0-7-0-binaries-as-re

https://sanseolab.tistory.com/55


분석을 하다보면 여러 언어(VB, dotNet, C, C++, MFC, Delphi....)로 컴파일 된 악성파일을 보게된다. 최근 "영화 '결백' 동영상 파일(*.AAC)로 위장하여 유포되는 백도어" 글을 읽어보니 "LOCK파일 해제" 델파이로 작성 된걸 확인할 수 있었다. 해당 파일을 분석 시도해보았지만 델파이 언어로 작성되어 눈에 잘 안들어오고 델파이 관련해서도 찾아볼겸 정리해본다.(가상환경에서 실행 시 다양한 안티리버싱이 있는 것으로 추정되고 패킹도? 되있지 않을까 싶다.. 쉬운 샘플을 찾아 추후 분석해 보겠습니다.)

먼저 델파이는 객체지향 언어이며 특징으로는 필요한 라이브러리가 보통 정적으로 박혀있다고 한다. 그렇기 때문에 파일 크기도 크다고 한다. 델파이로 작성된 악성파일의 분석에 관한 팁을 위주로 작성을 해보겠다.(추후 샘플 확보 후 추가 작성 예정)


본글은 위 참조 블로그를 통해 알게 된 내용을 정리하겠습니다.

짧게 설명하면 IDR라는 델파이 디컴파일러를 통해 IDA(LoadMAP), ollydbg(MapConv), x64dbg(SwissArmyKnife) 각 디버거의 플러그인을 통해 도움을 받을 수 있다.


먼저 IDA Pro는 디스어셈블러이자 디버거이다. IDA 스크립트에 대해 소개하면 IDC는 C언어와 유사한 IDA의 내장 스크립트이며, IDAPython은 IDC 기반으로 만들어진 Python 스크립트이다. 

(그림 1)을 보게되면 순서대로 스크립트 파일을 가져와 실행, 스크립트 명령어 창을 실행, 최근 실행한 스크립트 확인을 살펴볼 수 있다.

(해당 기능에 대해 완벽하게 숙지를 못한 상태이며, 추후 기회가 있을 때 활용 팁을 작성할 예정에 있습니다.)

(그림 1)


다음으로 (그림 2)와 같이 ollydbg 디버거의 MapConv 플러그인을 통해 도움을 받을 수 있는데 IDR을 이용하여 분석 파일을 로딩한 후 .map 파일을 생성하여 디버거에 임포트 시키면 된다.

추가적으로 IDR에 분석 파일을 로딩하면 Unit[숫자]로 표시되는 것은 파일 제작자가 직접 제작한 부분으로 해당 부분을 분석하여 확인할 필요가 있다.

(그림 2)


다음으로는 관련된 라이브러리 함수(Delphi RTL) 정보는 Embarcadero 사이트에서 확인할 수 있다. (MSDN 같은 것)

마지막으로 델파이는 함수 호출 규약이 다르다고 한다. 함수의 인자를 레지스터를 추가로 이용하는데 EAX, EDX, ECX 순이고 이후 스택을 통해 사용한다고 한다. 최근 Windows10 x64에서 x64 파일을 분석을 해보았는데 함수 인자가 스택에 들어가지 않고 레지스터에 값이 있는걸 의아해 했는데 델파이 관련해서 찾아보던 중 이런한 방식을 이용하는 것을 함께 알 수 있었다.(x86 파일만 해봐서...)


728x90
반응형
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today