프로그래밍과 잡담

아 진짜 안드로이드는 언어를 잘못 선택한거다. 본문

프로그래밍/안드로이드

아 진짜 안드로이드는 언어를 잘못 선택한거다.

크레온 2014. 10. 12. 21:35

왜 하필 자바를 선택해가지고 보안을 똥을 만든거야?


자바라는 언어는 C/C++과 다르게 바이트코드형태로 컴파일을 한다.


C/C++은 바이너리코드로 컴파일을 한다.


그리고 자바라는 언어는 가상머신을 사용한다. 가상머신에서 돌리기 위해서 바이트 코드를 사용하고

C/C++과 같은  네이티브 언어들은 그딴거 필요 없다.


역컴파일 시에 둘의 차이 점으로는 자바는 역컴파일 해버리면 완전 코드가 다 들어난다.

하지만 C/C++은 그렇지가 않다. 아주 간단한 코드의 경우에는 좀 비슷하게 나오는데 자바처럼 완전 똑같이 나오지는 않는다.


고로 자바를 사용해서 만드는 안드로이드 앱들은 코드가 완전히 들어나게 된다.

그 코드들은 해킹을 아주 수월하게 만들어버린다. 물론 C 언어도 해킹은 가능하다 근데  자바처럼 그렇게 쉽게 되질 않는다.


그래서 자바는 역컴파일을 방지하기 위해서 프로가드와 같은 소스 난독화 프로그램을 사용한다. 

난독화가 뭐냐면 코드를 막 뒤죽박죽으로 만들어버리는 프로그램인데 조금 귀찮게 하는거에 불과해서 해킹을 당하는건 여전히 네이티브 언어에 비해서 쉽다.


안드로이드처럼 자바를 이용하는 앱들은 해킹에 매우 취약하다.  자바의 이러한 특성때문에 말이다.


고로 인앱결제로 앱을 팔아먹어야지 뭐 ㅅㅂ 


그냥 앱을 팔면 해킹되서 망하기 쉽다.  더러운 자바. 


이런 거지같은걸 왜 앱을 만드는데 쓰는거야.



아, 자바도 C에 비해서 좋은 장점은 있다.


웹처럼 서버가 털리지 않는 이상  바이트코드가 들어나지 않기 때문에  웹같은 곳에 아주 많이 사용된다.

또한 C언어 처럼 메모리 관리를 안해도 앱이 그럭저럭 잘 돌아간다.

실력이 뛰어지 않아도 그럭저럭 돌아가는 앱을 만들 수 있다는거지.


그에 반해서 C언어는 메모리 관리 제대로 못하면 메모리가 꽉차서 프로그램이 뒈져버리는 현상이 발생한다.


안드로이드는 쉬운 접근성 때문에 자바를 쓴거 같은데 결국은 해킹에 취약한 프로그램을 만들어 버린거지.

접근성만 키우면 뭐해 보안은 똥망인데.. 





반응형
Comments