완벽함이란 더 이상 무엇인가를 더할 것이 없을때 이루어 지는 것이 아니라, 더 이상 무엇인가를 뺄 것이 없을 때 이루어진다. - 앙뜨완느 마리 로제 드 생떽쥐페리
by 미친병아리 이글루스 피플 2006 이글루스 TOP 100 2007 이글루스 TOP 100
포토로그
메뉴릿
주저리 주저리
라이프로그
웹페이지 리버스 엔지니어링..
웹어플리케이션은 자바스크립트와 HTML을 사용하는 클라이언트 사이드 스크립트와 여러가지 언어를 사용하여 개발할 수 있는 서버사이드 코드로 구성된다.. 서버사이드 코드는 서버에서 실행이 되므로 서버에 접속할 수 있는 권한이 없으므로 리버스 엔지니어링은 불가능하다.. 하지만, 클라이언트 사이드 코드는 100% 내 PC로 다운로드 된 후 실행이 되므로 마음만 먹으면 맘대로 분석이 가능하다.. 게다 100% 텍스트로 되어 있으니 읽어보기도 쉽다..

간혹 이야기를 나누다 보면 클라이언트 사이드 코드를 사용자에게 숨길 수 있다고 생각하는 사람들이 있는데, 사실은 절대 숨길 수 없다.. 웹브라우저가 동작하는 방식을 생각해보면 당연한 구조상의 한계다.. 따라서 중요한 로직, 보안상 문제가 생길 수 있는 로직은 모두 서버사이드로 옮겨야 한다.. HTML 파일로 저장한 후에 PC에서 실행시키면서 마음대로 조작이 가능하기 때문이다.. 이런 부분을 간과하면 자칫 실수하기 쉬운 부분이다..

최근 수행중인 프로젝트 중에 이미 구축된 솔루션을 활용해야 하는 일이 있었는데, 정치적인 이유와 감정싸움 문제로 그 솔루션 업체의 지원을 하나도 받을 수 없는 상황이 되었다.. 결국, 만들어진 소스를 분석해서 원하는 기능을 만들어내야 하는 상황이 되었다.. 서버 쪽은 자바로 개발되어 있는데 jsp 소스는 있으나 자바 소스는 없고, class 파일만 있는 상황.. 난감하다..

결국, 서버사이드 코드는 그대로 활용하면서 클라이언트 소스만 수정을 하여 원하는 기능을 구현하기로 방향을 잡고 분석에 들어갔다.. 난이도를 요구하는 일은 아니지만, 관련 정보나 문서가 전혀 없으므로 이렇게 시도를 해보고 안되면 저렇게.. 시행착오를 거쳐가며 알아내야 하는 작업이므로 시간은 예상치보다 2배 이상의 시간이 걸렸다.. 지겹더군..

지겨워도 나중에 돌아가는 모습 보면 즐겁고, 몇가지 프로그램의 도움을 받아 좀 더 손쉽게 작업을 할 수 있었다.. HTML 소스나 자바스크립트 파일, CSS 파일을 쉽게 확인할 수 있는 프로그램은 Instant Source를 사용했다.. 웹브라우저에서 한 화면이 보여지는데 필요한 모든 파일을 죄다 찾아서 보여준다.. 골치 아픈 iFrame 구조도 잘 찾아준다.. 물론, 복잡한 경우 제대로 못 보여주는 경우가 있기도 하다..

그리고 서버에 보내는 정보와 내가 만든 페이지가 받는 정보에 대한 내용은 Fiddler를 사용을 해서 파라미터 이름과 보내는 데이터 내용을 확인했다.. POST로 데이터를 전송하는 모든 내용과 어떤 순서로 페이지들이 호출되는지를 실시간으로 모두 확인할 수 있다..

위의 2가지 프로그램 모두 IE에서만 동작한다.. 관련된 정보도 없고, 무슨 프로그램이 있는지는 모르겠지만, 아마도 FF용 프로그램들도 있을 것이라는 생각은 든다.. 물론, 위의 2개 프로그램보다 더 좋은 IE용 프로그램들도 있을 것이다..

아무튼 중요한 것은 전문적인 지식이 없어도 위의 2개 프로그램만 자신의 PC에 설치하면 누구나 쉽게 소스코드와 데이터가 왔다갔다 하는 것을 확인할 수 있다.. 웹 어플리케이션 개발시에는 이러한 상황을 잘 이해하고, 개발하는 프로그램의 목적과 상황에 맞춰 고려를 해서 프로그래밍을 해야할 것이다..

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 미친병아리 | 2007/10/20 21:12 | ▣ 컴터야그 ▣ | 트랙백 | 덧글(3)
트랙백 주소 : http://madchick.egloos.com/tb/1657780
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by xeraph at 2007/10/27 22:18
변수명을 알아보기는 좀 어렵겠지만 class 파일만 있어도 디컴파일러를 사용해서 소스를 살릴 수는 있지 않나용..에 그리고 FF의 경우에는 Web Developer나 FireBug를 쓰시면 될겁니다 :-)
Commented by 레인블루 at 2007/10/28 01:14
좋은 툴 소개 감사합니다. ^^
Commented by 미친병아리 at 2007/11/04 21:46
xeraph님 : 맞습니다.. 하지만, class 파일도 서버에 접근 할 수 있을때 가능한 방법이지요.. 클라이언트에서는 class 파일에 접근할 수 없으니까요..

레인블루님 : 특별한 상황에서는 아주 유용한 프로그램들 입니다..

:         :

:

비공개 덧글

Creative Commons License

< 이전페이지 다음페이지 >


이글루 파인더
카테고리
태그
최근 등록된 덧글
하하^^ 저도 요즘 뜸하..
by 김정수 at 11/27
잘 봤습니다. UML에 대..
by ohyecloudy at 11/21
잘 지내시죠? 여전히 일로..
by hehua at 11/20
월동준비없이 간만에 오..
by 쩌비 at 11/20
블로그가 업데이트 되어..
by Funny at 11/19
간만의 포스팅 반갑습니..
by 135th at 11/19
오랜만이세요.. 어케 ..
by zoops at 11/19
오래간만 입니다. :)
by 마음으로 찍는 사진 at 11/19
오랜만에 돌아오셨네요~..
by jely at 11/19
좋은평가 감사드립니다. ..
by ilsooni at 11/16
참 오래간만이시네요.^^..
by gonny at 11/03
ㅅㅂ 나도 몰른다고
by 야동매니아 at 10/20
하하, 이런경험 있는데..
by 씩씩한강냉이 at 10/03
꺅. 한글이 위대하기에 ..
by 씩씩한강냉이 at 10/03
소설식이라 편하고 재미..
by ohyecloudy at 10/01
환영합니다 미병님~^^
by Paromix at 09/16
온국민이 싫어하고 혐오..
by 닭날다 at 09/16
살아계셨군요... 계속..
by 미친감자 at 09/08
가끔씩 들리는데, 진짜..
by 랄라 at 09/05
웰컴~투~~~~~~..
by S2nNAMU at 08/25
최근 등록된 트랙백
데꾸벅의 생각
by techbug's me2DAY
UML, 실전에서는 이것..
by Ohyecloudy's Progr..
데드라인 - 소설로 재미..
by Ohyecloudy's S3
실전적 문장비법 글쓰기..
by 블로거1.0의 WEB2.0 도전기
우분투 리눅스 8.10 하루..
by joogunking
마이클잭슨 사망 소식들..
by Bluesky
후아유(2002) : 2000년대 ..
by 생활의 발견
知的人의 생각
by peter_c's me2DAY
톰캣!!
by 나두미키님의 이글루
정규 표현식 완전 해부와..
by 김재호의 디지털보단 아..
HTML 소스 제대로 보자,..
by [부동산]개발.정비구역
내 손안의 PC - 자바가 ..
by 上善若水
Stringbuilder OutOfMe..
by Pinch of Smack for D..
웹 오피스 정리
by Web N Bizr
네이버 블로그 검색 - ..
by InformationRedesign
에반게리온: 서 - 사운드..
by LG전자 XCANVAS홈..
블로그에서 수익은 기대..
by IT, 모바일, 엔터테..
"다음으로 지원한 이메일..
by 민노씨.네
알라딘 TTB2 둘러보다
by NKOKON's Web-Note
문답 # ActiveX 문답
by 아이리스가 만개한 언덕..
이글루링크
EBC (Egloos Broad..
erehwon.LAB
About willy
Living Loving and L..
修身齊家萬事成
【 이름쟁이™의 눈으로 】
개 풀 뜯어먹는 소리
觀鷄者의 망상 공간
Oz in Wonderland
김명신의 즐거운 하루
함께.. 늘 그렇게..
荷花(hehua)
소스코드위를 걷다.....
네러티브 오프로드
zoops 이야기
까모의 룰루랄라~
▒ 제닉스의 사고뭉치 ▒
河伊兒의 고물상
가로수들은 여전히 제자..
餘分D: physics and fun
극한추리 hansang's wo..
길고양이 이야기
어쨌건간에 흘러가는 者
선인장 일지
~★~ 우하하!!~ 프로..
without coffee
Lady Nariel's Golde..
검색엔진 루씬 Lucene..
fire, walk with me
디지털을 말한다 by oojoo
♠후리지아 향기처럼♠
일상 생활 속의 파편들
뽐뿌 inside
책읽는 엄마의 보석창고
Mono log
blogger jely
반복되는 일상속의 비정..
골룸의 골방
질풍 17주의 머브러브 라..
maniacs
AURA's Showcase
ozzyz review 허지웅..
디제의 애니와 영화 이야기
ANTIEGOIST : GyuHo..
미달이의 육아일기
All about IT Trends
Suicide Solution
얼음집
Trouble n Travel
모기불통신
Trip
찬별은 초식동물
숲 속 작은 섬
snowcat blog
전도서에 바치는 장미
한글이 꿈틀
이우진의 UCC 제작실 ..
INVENT
위로..위로..위로..
woody's film review
Show me the money
전자음악 알아보기
sunny's store
이규영 연예영화 블로그
◀ M.HOUSE - Masade..
Urban Living
쉽니다.
roadster
무디의 무책임한 세상
이제 다시... 바라보다.
random life
Beyond Web
ricordati di me
Jania's Blog
Gaious 功房 네오베..
애자일 이야기
- Last Paromix -
T9T9 Research Center
양군 블로그
소프트웨어 이야기
식사일보 food daily
Software Engineering..
티오
고재관의 블로그
mocca
yundream의 프로그래..
통TON
lalou
생각이 없는 블로그
이전블로그
rss

skin by 이글루스