프로젝트의 최종 목적이 중첩 난독화와 키를 이용한 역난독화를 제공하는 도구를 개발하는 것이었기 때문에, 이번 주에는 역난독화에 대한 분석을 진행하기로 하였다. 따라서 역난독화를 본격적으로 해 보기 전에, 현재 나와 있는 역난독화 프로그램을 이용하여 난독화 된 코드를 해독해보고, 역난독화 도구에 대한 기본적인 내용을 알아보기로 하였다.
역난독화 하려는 코드는 원래 우리의 난독화 도구를 이용한 코드로 하려고 했으나, C언어의 난독화 해제를 지원하는 프로그램을 찾아봐도 보이지 않아서 원래 난독화 도구를 이용한 코드를 자바로 변환해서… 역난독화 도구를 이용해보기로 하였다.
이용한 역난독화 도구는 javaDeobfuscator이다.
역난독화에 이용할 코드
제어 흐름 난독화, 연산자 난독화, 변수명 난독화를 한번씩 적용하여 만든 코드”test.java”를 역난독화에 이용하기로 하였다.
(내가 보기에도 어렵다)
코드는 정상적으로 돌아가는 것을 확인하였다.
역난독화 코드 적용
test.java소스코드를 확보한 후, 역난독화 프로그램을 위의 링크에서 다운받아 적용시켜 보았다. 사용방법은 간단하다. 해당 링크 에 나온 것처럼 다운받고 해당 방법들을 따라해 보았다.
인텔리제이를 이용해 jar파일을 만들고, 제대로 실행되는 것까지 확인했으나 역난독화 도구가 동작하지 않는다.
클래스 파일이 아닌 것 같다고 했는데 정상적으로 생성된 jar파일이라 jar파일에는 이상이 없을 것 같다. 해결책을 찾아봐야겠다.