2013년 3월 25일 월요일

자신이 만든 jar 파일을 남이 뜯어 소스 보지 못하게 하기

jar 파일, Java로 만든 실행 파일을, 남이 뜯는 것을 방지하는 것은, 원천적으로 불가능하다고 합니다. 물론 C로 짠 것도 시간만 들이면 얼마든지 뜯을 수 있겠지만, 그 난이도가 차원이 다릅니다.

실제로, 자바 디컴파일러를 저는 가지고 있습니다. 알아보기 쉽게 변수명 함수명까지 그대로 나옵니다.

하지만,

jar 파일을 뜯어 소스 보는 것을 막는 건 불가능해도, 소스를 봐도 뭐가 뭔지 못알아보게 하는 방법은 있습니다.

http://proguard.sourceforge.net/#downloads.html

에 들어가세요.

Download section at SourceForge 버튼을 클릭하세요.

Download 어쩌구가 보이실 겁니다. 클릭해 다운받아 압축 푸시면 됩니다.

압축을 풀어보면

1

이렇게 나오는데, bin 폴더에 들어가세요.

image

여기에 우리가 실행할 파일이 있습니다. proguardgui 라고 보이시나요? 더블클릭.
리눅스 환경을 위해 sh 파일까지 친절하게 구비되어 있습니다.

도스창이 하나 뜨고, 이후 뭔가 창이 더 뜰 겁니다. 왼쪽 부분을 봐주세요.

image

우선, Input/Output 을 클릭해보세요. 그리고 오른쪽 부분을 보세요.

image

Add input 버튼을 클릭하면, 파일을 불러오는 창이 나타나는데, 소스를 공개하고 싶지 않은 jar 파일을 선택하세요.

Add output 버튼을 클릭하면, 파일을 저장하는 창이 나타나는데, 새로 만들어질 jar 파일이 어디에 저장할 지 지정하시면 됩니다.

다시 왼쪽으로 돌아와서 Obfuscation 을 클릭하세요.

창 아래 오른쪽 부분을 보세요.

image

Add 를 클릭하세요. 창이 또 하나 뜰겁니다.

image

여기가 중요한데, 일단 위와 같이 하세요.

Java 소스를 짜실 때, 클래스끼리 통신이 필요없는 것은 private 로 선언해 두셨어야 합니다. 그 private된 변수와 메소드 이름만 이상한 걸로 바뀌게 되고, public 으로 선언된 것은 그대로 남습니다.

OK 누르셔서 창 닫고, 원래 창으로 돌아와서, 다시 왼쪽을 보세요.

Process 를 클릭하세요.

image

이제 준비는 끝났습니다.

image

오른쪽 아랫 부분에 Process! 버튼이 있는데, 클릭하시면 작업이 수행됩니다.

만들어진 jar 파일을 배포하시기 전에, 반드시 실행해서 오류가 생기는지 확인해 보세요. 오류가 생긴다면, private 선언할 것과 public 선언할 것을 확실히 구분해 선언해 주시고 jar 파일을 다시 만들어서 위의 과정을 다시 따라 주세요.

디컴파일로 뜯어봤습니다.

먼저, 난독기 돌리기 전의 모습

image

그리고, 난독기 돌린 후의 모습

image

변수 이름이 q, r, s 등등 마구잡이로 섞여 있는 게 보이시나요?

위의 디컴파일러(Decompiler)가 필요하다면 http://blog.naver.com/hujinone22/185136002 에서 찾아보실 수 있습니다.

Windows 에서 Jar 파일을 실행하는 방법은?

jar 파일은, 자바로 만들어진 class 파일들을 압축한 파일입니다. class 파일 안에는 명령들이 들어 있습니다.

자바로 만들어져 있으므로, 반드시 JRE 또는 JDK가 설치되어 있어야 실행이 가능합니다.

http://java.com/download/

에서 다운로드해 설치하시면 준비는 끝납니다.

jar 파일이 바탕화면에 있다고 가정하고 설명을 진행하겠습니다.

Windows 8의 경우, jar 파일이 실행 파일처럼 보일 겁니다. 하지만, 그렇지 않고 압축 파일처럼 보이는 경우가 있습니다.

01

이렇게 말이죠.

시작 메뉴를 열고 cmd 를 입력하고 엔터를 눌러 봅시다.

02

image

이렇게 나왔습니까?
”>” 왼쪽에 있는 단어가, 사용자 이름일 겁니다.

cd desktop

이라고 입력하고 엔터를 눌러주세요.

image

그다음은 쉽죠.

java –jar [jar파일이름]

이렇게 입력하고 엔터를 눌러 주시면 됩니다.

 

이렇게 하기 귀찮다면, 메모장을 여세요.

image

이렇게 입력합니다. 아까 마지막에 명령어 친 거랑 똑같이 입력하시면 됩니다.

저장을 하는데, 이 때

image

bat 파일로 저장해 주세요. 형식은 “모든 파일”로 해 놓으셔야 합니다.

이제 bat 파일을 더블클릭해 보세요. 실행이 되나요?

이 bat 파일에는 파일 경로를 넣지 않았기 때문에, jar 파일과 반드시 같은 폴더에 있어야만 bat 파일이 작동하게 됩니다. jar 파일이름을 바꿔도 안됩니다.(바꾸고 싶으면 bat 파일을 메모장으로 불러와서 수정하세요.)

2013년 3월 8일 금요일

Microsoft Word 로 hwp 읽기

드디어 MS가 워드용 hwp 필터를 올렸습니다.

이제 워드로 hwp 파일을 거의 완벽하게 읽을 수 있게 되었습니다.

Microsoft Office 2007 SP2 이후 버전 모두에 적용됩니다.

http://www.microsoft.com/ko-kr/download/details.aspx?id=36772

s1

설명에는 윈도우 7, 윈도우 8, 서버 2012만 된다고 나와 있지만, 윈도우 비스타에서도 설치가 잘 되고 불러오기도 잘 됩니다.(64비트, SP2 기준)

XP는 보장 못합니다.

HJOW의 신버전 블로그입니다. 이 블로그는 제 관심사에 해당하는 기사, 동영상 등을 퍼오거나, 작성하는 곳으로, 마음껏 퍼가셔도 됩니다. 제 홈페이지는 http://hujinone11.dothome.co.kr 입니다.