저는 swf 분석에선 ffdec를 사용합니다. 다만 최근에 처음 안 사실이.. jpexs랑 ffdec를 같은거더군요.(관심이 없었..)
아무튼 요즘 swf 취약점쪽으로 툴도 만드는겸 분석 방법에 대해 정리해둘까 합니다. (오늘은 디버깅이군요!)
ffdec 설치는.. https://www.hahwul.com/2015/03/31/swf-ffdec-jpex-free-flash-decompiler/
Plugin setting
adobe 에서 flashplayer와 debugging 툴을 받아줍니다. https://www.adobe.com/support/flashplayer/debug_downloads.html
Linux DownloadDownload the Flash Player Projector (64-bit) DownloadDownload the Flash Player Projector content debugger (64-bit)
Windows DownloadDownload the Flash Player projector content debugger DownloadDownload the Flash Player projector
MacIntosh DownloadDownload the Flash Player projector content debugger DownloadDownload the Flash Player projector
swc 관련(공통) PlayerGlobal (.swc) DownloadDownload the playerglobal.swc to target the latest version APIs
setting > Advanced Settings > Paths 하위에 각각 연동 어플리케이션 디렉토리 지정해줍니다.
SWF Debugging
ffdec를 실행후 상단 메뉴바에 보시면 debugging 관련 아이콘들이 보입니다. 다른 디버거와 비슷하니 금방 어떤용도인지 눈에 들어올겁니다. 일단 run, debug 모드가 있고 각각 swf를 실행하며 변수 데이터와 call stack 등에 변화를 지켜볼 수 있습니다.
위 이미지 중 코드부분을 보시면(중간에 빨간박스) 좌측에 행번호가 있는데 클릭으로 bp(breakpoint) 설정이 가능합니다. 다른 디버거와 똑같죠. debugging 모드 시작 시 f8, f9, f10 등 step over, continue 로 한줄한줄, 아니면 큰 뭉치로 보시면서 취약점을 찾아보시면 됩니다.
취약점 분석에 대한 내용은 아래 링크 참고해주세요.
http://www.hahwul.com/2017/06/web-hacking-swfflash-vulnerability.html
음 개인적으로는 디버깅으로 찾는거보다 코드보면서 먼저 찾고, 디버깅으로 필터링이나 보호기법이 어떤식으로 동작해서, 어떻게 풀려가는지 확인하는게 빠르고 정확해보이네요.
Proxy를 이용한 SWF Debugging
매번 swf를 받기 귀찮을땐 proxy 기능을 사용하시면 편합니다. 이를 활용하면 웹 트래픽중에서 swf들만 뽑아낼 수 있고, 바로 ffdec로 불러서 보거나 디버깅할 수 있습니다.
먼저 tool > proxy로 들어가면 아래와 같은 화면이 나타납니다.
여기서 포트 지정하시고 아래 부분에 Sniff 부분 필요하신 내용으로 체크해주시고 Start server 로 동작시켜주시면 됩니다. 그러면 웹 트래픽 중 잡힌 swf 는 로그처럼 쌓이게 되고, 더블클릭으로 쉽게 불러올 수 있습니다.