잠깐 Flash 파일을 분석할 일이 있어서 swf 파일을 분석하고 있었습니다.

그런데 핵심 코드인 ActiveScript(이후 AS)가 변조되어 나오더군요.

사실 그냥 코드인 걸로 착각할 뻔 했지만 AS에 신텍스 오류가 있음을 발견하고 변조되었음을 눈치챘습니다.

아니나 다를까 플래시파일만 전문적으로 프로텍트를 거는 유틸리티가 존재하더군요.

• ASV ( Active Script Viewer )
• Flash Decompiler
• Imperator °FLA
• SWF Decompiler
 
위의 프로그램들로 swf 파일을 디컴파일 해보니 각각의 AS 결과가 다르게 나오더군요.

일단 현재로써 할 수 있는 것이 압축이 안 되어 있다면 AS 부분을 바이너리 분석을 해서 유추하는 방법이 최선일 거 같았습니다.

그런데 해당 swf 파일은 압축이 되어 있더군요.

그래서 압축된 swf 파일을 비압축 swf 로 해제하는 툴을 찾아봤지만 구글신께서도 찾지 못하는... ㄷㄷㄷ

어쩔 수 없이 잠깐동안 swf 파일의 포멧을 공부하고 압축된 swf 파일을 비압축 swf 파일로 압축해제 하는 툴을 대충 만들었습니다.

압축방식은 zlib(RFC1950-1952) 를 사용하더군요.

사용자 삽입 이미지

cws2fws


사용자 삽입 이미지

cws2fws


invalid-file

cws to fws converter, swf format, need password.


압축을 해제하고 나니 AS에 들어간 스트링들이 다 나오더군요.

아직은 보호된 swf 파일을 해제하는 툴을 찾진 못해 삽질을 할 수 밖에 없을 듯 하네요.

swf에 프로텍트를 거는 툴을 이용하여 프로텍트를 건 후의 바이너리를 분석해 봤더니, 아래의 그림과 같이 swf 헤더가 끝나는 부분에 80byte 정도와 swf 끝 부분에 80 정도를 추가하더군요.

swf spec 만 있으면 프로텍트를 제거하는 툴을 만들 수 있을텐데 말이죠.. -_ㅡ;

사용자 삽입 이미지

헤더 부분의 스크램블

사용자 삽입 이미지

단말 부분의 스크램블


헐.. 결국 내손에.. -_ㅡ;

invalid-file

Macromedia Flash(SWF) File Format Specification


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기