잠깐 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) 를 사용하더군요.
압축을 해제하고 나니 AS에 들어간 스트링들이 다 나오더군요.
아직은 보호된 swf 파일을 해제하는 툴을 찾진 못해 삽질을 할 수 밖에 없을 듯 하네요.
swf에 프로텍트를 거는 툴을 이용하여 프로텍트를 건 후의 바이너리를 분석해 봤더니, 아래의 그림과 같이 swf 헤더가 끝나는 부분에 80byte 정도와 swf 끝 부분에 80 정도를 추가하더군요.
swf spec 만 있으면 프로텍트를 제거하는 툴을 만들 수 있을텐데 말이죠.. -_ㅡ;
헐.. 결국 내손에.. -_ㅡ;
그런데 핵심 코드인 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