리버스 엔지니어링 2권 : 디버거 편 - 윈도우 실행 파일 구조와 원리로 배우는 IT EXPERT
이호동 지음 / 한빛미디어 / 2017년 3월
평점 :
장바구니담기


리버스 엔지니어링이라고 하면 드는 생각이 먼저 '어려워 보인다'가 아닐까 싶다. 실제로도 그럴것 같은게 이미 만들어진 것을 보고 뜯어서 원래의 것을 도출하고 알아내야 하기 때문이지 않을까. 심지어 책이 매우 두껍다!(무려 1396페이지. 토비의 스프링 3.0만큼 두껍다)

이책은 윈도우 프로그래밍에 대한 리버스 엔지니어링과 고급 디버깅에 관심이 있는 분에게 초점이 맞추어진 중고급이상 레벨의 책이다! 그래서 개발 환경은 윈도우10 + Visual Studio 2013(or 2015), Windows SDK 10이다. 윈도우 프로그래밍에 대해 잘 알지 못해 코드, 덤프등을 봐도 완전히 이해는 못했다.


기본적인 PE(Portable Executable)의 파일구조 등은 1편에서 이미 소개를 했고, 2편에서는 본격적으로 리버스 엔지니어링과 디버거 구현에 대해 설명한다.  초반 어셈블리에 대한 설명에 들어가기 앞서 우리가 사용하는 CPU에 대해 간단히 역사를 훑는다. 32bit에서 64bit 컴퓨터 시대로 넘어올 때 인텔과 AMD의 미묘한 관계는 흥미롭다. 지금도 두 기업의 경쟁이 현재진행형인 점을 보면 둘 다 모두 대단한 기업임이 틀림없다. 어셈블리어에 대한 설명을 보고 있노라니 학부시절 컴퓨터 구조와 임베디드 프로그래밍 하던 시절이 생각이 난다. 레지스터, Accumulator, Program Counter, Stack Pointer 등 중요하면서도 기본적인, 컴퓨터의 근간을 이루는 것들은 다시 한 번 제대로 정리할 필요가 있을 것 같다.


다양한 덤프 코드들과 자세한 그림을 바탕으로 설명이 진행되어 찬찬히 두고 읽으면 꼭 리버스 엔지니어가 아니더라도 많은 도움이 될 책이라 생각이 된다.



윈도우 실행 파일 구조와 원리로 배우는 리버스 엔지니어링 2 디버거 편, 한빛미디어(이호동)




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자바 ORM 표준 JPA 프로그래밍 - 스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임워크 에이콘 오픈소스 프로그래밍 시리즈
김영한 지음 / 에이콘출판 / 2015년 7월
평점 :
장바구니담기


Java개발자로서 ORM을 제대로 써보지 못한 것에 대한 한(?)이 맺혀 구입한 책.

실무에서는 아직 JPA를 사용하지 않기에 따로 공부하기 시작했다.


1장부터 어렵게 시작하는 것이 아닌, 객체와 RDB간의 어색한 매핑을 예시로 보여주며 이것을 JPA가 해결해줄 수 있는 것을 보여준다. 패러다임의 불일치를 깔끔하게 해결해 줄 수 있는 것이다.

지연실행이 가능하게 하는 영속성 컨텍스트 부분의 설명도 왜 그런지 끄덕끄덕 하면서 읽을 수 있게 쉽게 설명을 하고 있다.

다양한 어노테이션을 사용하여 설정이 가능하고 국민 프레임워크인 스프링과 연계하여 더 큰 시너지를 발휘할 수 있다.


아직 앞부분을 보고 있지만 알찬 내용과 군더더기 없는 설명은 정말 정성들여 책을 썼다는 느낌을 들게 한다. 미리 공부해서 실무때 깔끔하게 사용할 수 있기를 바라며.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
행복한 프로그래밍 - 개정판
임백준 지음 / 한빛미디어 / 2016년 11월
평점 :
장바구니담기




먼 회사 선배님이시자 즐겨 듣는 팟캐스트의 수장이신 임백준님의 책이 개정되어 새로 나왔다. 이것으로 두 번째 임작가님의 책을 읽게 되었다(첫 째는 "누워서 읽는 앍고리즘")

2003년이 초판이었는데 13년 만에 개정판이 나온 것이다. 2003년이면 내가 까마득한 중학생 시절 프로그래밍이 뭔지도 몰랐던 시절이었으니 참 아득한 옛날로 느껴진다.


프로그래머에게 있어 프로그래밍은 단순한 밥벌이 수단이 아닌 행복을 가져다 주는 도구이다. 이 점을 책에 잘 녹여내였다. 

다소 다양하고 분방(?)한 분야들을 작은 책 한권에 담느라 깊은 내용은 다루지 않았지만, 이 한 권을 읽고 나면 얕게 많은 방면에 대해 알게 되어 프로그래밍에 대해 더 흥미를 끌 수 있게 해준다. 프로그래밍에 관한 재미있는 에피소드나 나도 모르고 사용하는 기술들의 탄생 배경, 우여곡절들을 이야기 하고 있기에 꼭 프로그래머가 아니더라도 정말 읽어볼 만한 책인 것 같다.


아직 주니어인 나에게 있어 이 책은 내 개인의 철학과 신념 등을 되돌아보고 정립해 나갈 수 있게 해주었다. 단순히 돌아가는 코드가 아닌 아름답고 효율적인 코드란 어떻게 하면 될까부터 시작해서, 새로운 분야를 어떻게 접근하고 공부해볼까 하는 인사이트도 던져주었다. 


비전공자인가? 읽고 이 분야에 대해 다양한 의문심과 호기심을 싹틔워줄 수 있다.

주니어인가? 읽고 자신의 철학을 가질 수 있다.

시니어인가? 는 나도 잘 모르겠다. 내가 시니어가 아니라...


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo