요즘 Windows 어플리케이션을 개발할 때 Assembly 언어로 개발하시는 분들은 보기 드물죠.
보통은 C/C++, VB, Delphi 등의 4GL 로 개발을 하게 됩니다.

이렇게 만들어진 프로그램을 에디터로 열어보면 아래 그림과 같이
소스 코드는 보이지 않고 뭔가 이상한 기호들이 가득하지요.


<Fig. 1>

전 리버싱을 접하기 전에는 컴파일러와 링커가 소스 코드를 이상하게 변화시키기 때문에
그 내용을 아무도 이해 할 수 없을꺼라고 생각했었습니다.

더 정확히는 그 내용을 이해할 수 있는 사람은 몇명 되지 않을꺼라 생각했던 거지요.
컴파일러는 사람이 보기 편한 소스코드를 CPU 가 이해할 수 있는 이진 코드로 바꿔놓고,
링커는 OS 에서 실행이 가능한 형태로 파일을 재구성하는 것 뿐이기 때문에,
이진 코드를 이해할 수 있는 리버서가 봤을때는 그 파일의 내부구조가 훤히 보이게 되는 것입니다.

즉, 극소수(?)의 사람들에게는 소스코드가 그대로 노출된다고 봐야겠지요.
이것이 리버스 엔지니어링의 묘미이기도 하구요.

세상 모든 이치가 그렇듯이 모를 때는 어려워 보이지만, 일단 알고나면 쉬워집니다.
4GL 개발자가 리버스 엔지니어링을 몰랐을때는 뭔가 대단히 어려워 보이고,
자기가 할 수 없을것 같지만 사실 알고보면 쉽습니다.
(그 중에 더 열심히 한 사람은 물론 더 잘하겠지요.)

알.고.보.면. 이라는 말이 상당히 많은 내용을 함축하고 있어서 처음에 좀 힘든것 뿐입니다.
앞으로 올리게 될 'analysis' 포스트들을 보시고 직접 따라해 보시면
아마도 조금은 ‘리버스 엔지니어링 이라는게 대충 이런 거구나’라고 느낄 수 있으실겁니다.

  1. showtime 2009.10.08 12:57 신고 댓글주소 | 수정 | 삭제 | 댓글

    잘 읽고 갑니다~ ^^

  2. 베리굿 2009.11.07 22:16 신고 댓글주소 | 수정 | 삭제 | 댓글

    감사합니다.^^

  3. 꿈을이제야 정했습니다. 2010.01.28 17:36 신고 댓글주소 | 수정 | 삭제 | 댓글

    2010년 1월 28일 목요일 오후 5:35분에서야 내가 이제 무얼해야할지를 알게되었습니다.

    감사합니다.

    • ReverseCore 2010.01.28 22:11 신고 댓글주소 | 수정 | 삭제

      안녕하세요.

      짧지만 임팩트가 강한 댓글입니다.

      장래의 진로를 결정하신듯 하니 우선 축하드립니다.

      개발, 리버싱에 관련된 내용이라면 작은 힘이나마 도와드리겠습니다.

      감사합니다.

  4. Dr.K 2010.05.24 02:40 신고 댓글주소 | 수정 | 삭제 | 댓글

    글잘읽고 갑니다. 님 웹사이트가 왠지 리버스 공부하는데 도움을 많이줄꺼같네요. ^^
    감사합니다 리버스코어님! 즐겨찾기 추가 클릭했어요~ 앞으로 글많이 남길께요.
    위에 파랑색으로 하이라이트 한 구절이 참 마음에 와닸네요~

  5. 질문~~ 2010.08.08 11:50 신고 댓글주소 | 수정 | 삭제 | 댓글

    4GL이 뭔가요??

    • reversecore 2010.08.09 10:58 신고 댓글주소 | 수정 | 삭제

      안녕하세요.

      4GL 이라는 말은 프로그래밍 언어를 세대별로 구분할 때 사용하는 말이구요...

      http://www.terms.co.kr/12345gl.htm

      요 링크를 보시면 간략히 잘 나타나 있습니다. ^^

      * 요즘은 이런식의 구분이 별 의미 없는것 같아요...

  6. maruhun 2010.08.08 15:18 신고 댓글주소 | 수정 | 삭제 | 댓글

    공부하면서 너무 궁금한 점이 많습니다..
    궁금한 점이 있으면 reversecore@gmail.com에 물어보면 되나요?

    • reversecore 2010.08.09 10:59 신고 댓글주소 | 수정 | 삭제

      네, 제 블로그 또는 메일로 문의하시면 됩니다. ^^

      블로그에 문의하시면 다른 분들도 같이 생각해 볼 수 있기 때문에 더 좋을것 같네요~

  7. mauhun 2010.08.09 13:58 신고 댓글주소 | 수정 | 삭제 | 댓글

    안녕하세요.. 메일 내용이 길이서 메일로 보냈는데요

    확인을 안하셔서 이렇게 다시한번 확인 부탁때문에 글을 씁니다..

    메일 보시고 다른분들이 봐도 좋은 질문이라면 예기해주시면 블로그로 옮기도록 하겠습니다.

    감사합니다^^

    • reversecore 2010.08.10 13:03 신고 댓글주소 | 수정 | 삭제

      안녕하세요.

      제가 mauhun 님께 받은 메일이 없는데요.

      혹시 실행파일을 첨부하셨나요?

      제가 쓰는 gmail 은 실행파일이 첨부된 메일은 수신하지 않습니다. ㅜㅜ

      죄송하지만 실행파일의 확장자를 exex, dllx, zipx 등으로 변경하여 다시 한번 보내주시기 바랍니다.

      reversecore@gmail.com

      감사합니다.

  8. Reverser_H 2011.01.19 20:26 신고 댓글주소 | 수정 | 삭제 | 댓글

    차근차근히 하다보면 저도 언젠간

    reversing을 잘할수 있겠죠? ㅎㅎㅎ





티스토리 툴바