CTF | wargame

Hack-me / Rape me,If you can (class파일 디컴파일[jad])

nopdata 2016. 7. 22. 02:09

Rape me, If you can



안드로드 문제이다. ??.dex파일이 주어지는데 이는 dex파일이 아닌 압축파일이다.

압축파일을 열어 보면 .class파일은 암호가 걸려 있고 나머지 두개는 암호가 걸려있지 않다.

storm.dat은 알아볼 수 없는 파일이고 hAcKmE.jad는 안드로이드 계열의 어떤 파일인것 같은데 잘은 모르겠다.

아마 java파일에서 컴파일 중 나온 오브젝트? 그 중 하나가 아닐까 싶다.


hAcKmE.jad파일을 보면 SecretKeySpec라는 문구가 있고, 암호화된 값으로 추측되는 긴 문자열이 있다.

그 밑에는 AES라고 적혀 있는 것으로 보아 AES암호화가 되어 있을 것이다.


구글에 암호화된 위 값을 넣으면 바로 문제의 답이 나온다. 일단 그건 무시하고,

http://pastebin.com/rFiHxQwp 에서 얻은 암호화된 값의 평문이다. cherishcat

이제 이 값을 넣고 압축을 풀면 hAcKmE.class파일을 얻을 수 있다.


class파일을 소스파일로 변경해야 한다. jad를 이용해서 class 파일을 java파일로 디컴파일 하면 소스를 얻을 수 있다.

자바 실력이 딸리는 바람에 자세히 이해는 하지 못했지만 대충 메인부분을 보면 다음과 같다.

먼저 SecretKeySpec객체를 생성하는데 암호화 방식은 AES로, key는 charishcat을 암호화한 값을 16진수 바이트로 넣는다.

이 키를 이용하여 읽어온 파일을 암호화 하는것 같다.

그러면 이제 key를 이용, 파일을 복호화해야하는데


http://aes.online-domain-tools.com 여기에서 아주 친절하게 파일과 키를 넣어주면 복호화를 해준다.


Nirvana 라는 가수의 Smells Like Teen Spirit이라는 곡의 가사인것 같은데 중간에 보면 password is라고 세로로 답이 씌여져 있다. passwordissmellsliketeenspirit


Hack-me Answer : smellsliketeenspirit