* 책 리뷰는 지극히 주관적인 생각을 적은 것으로, 참고만 하시기 바랍니다.




꽤 오랫동안 눈팅 해오던 블로그가 있었다. 블로그 주인은 악성코드와 관련한 게시글도 종종 올리고, 초급자를 위한 강의도 하며 활발한 활동을 하고 계신 분이었다. 어쩌다보니 SNS 친구도 맺게 되고(일방적인 팔로워 일 뿐 그 분은 당연히 날 모른다) 같은 분야 종사자라는 것에 홀로 나름의 유대감도 느꼈었다. 


그러던 중 며칠 전 책을 냈다는 이야기를 들었다. 대상독자는 이제 막 악성코드를 분석하고 있는 혹은 분석하고 싶은 사람들을 위한 책이었다. 사실 내가 볼 수준의 책은 아니었지만, 그래도 또 지인이 낸 책이라고 생각해서 바로 구입했다. 거기에, 최근 분석을 하고 싶어 하는 친구들이 많아져서 초급자가 볼만한 쉽고 좋은 책을 찾던 중이었기에 타이밍도 좋았다.


이번 리뷰는 그런 커다란 기대때문에 생긴 실망감에 대한 이야기가 될 것이다.




이전에 쓴 윈도우 레지스트리 포렌식 책 리뷰에서 말했듯이 책 두께가 주는 첫 인상을 무시 할 수는 없다. 두께가 얇을수록 좋은 책이라는 얘기는 절대로 아니다. 다만, 두꺼운 책 보다 얇은 책이 당연히 진입 장벽이 낮아지고 독자로 하여금 좀 더 공략 욕구(?)를 돋게 할 수 있다. 우리가 보는 책은 딱딱한 기술 서적이므로 이런 심리적 마케팅도 당연히 필요 하다고 생각한다.



저자도 나와 같은 생각으로 이 책을 구성했는 지는 모르겠다. 헌데, 이번경우에는 책이 얇아서 단점이 된 경우다. 즉, 내가 봤을 때 내용이 부실하다. 얇은 책이 보기에 좋지만, 사실 책의 두께보다 훨씬 중요한건 내용이다. 저자는 빠르고 쉽게 많은 것을 전달하려다 보니 기본적인 중요한 것을 놓친 것이 아닐까. 그게 아니라면, 아마 출판 시스템의 우리가 모르는 어떤 사정에 의해 얇게 쓰여져야 할 수 밖에 없었다고 본다. 저자 스스로도 이런 문제점을 인지 했는지 책의 머리 말에서는 이렇게 말하고 있다.



어떻게 보면 『리버싱 이정도는 알아야지』는 기술서라고 하기엔 부족한 면이 많습니다. 

이론에 치우치지 않다 보니, 기술을 설명하기에 충분한 내용을 담고 있지 않습니다. 

필자는 이 책을 집필하면서 이론적인 지식을 전달하기보다 공부 방법과 습관을 만들어주고 싶었습니다.



그렇다면 과연 저자가 원하는 목적은 이 책에서 달성 할 수 있었을까. 결론적으로 말하면, 머리말에서 말한 저자의 포부는 책을 다 읽은 시점에서도 잘 느껴지지 않았다. 이제부터 책을 보며 느낀 불편함을 간단하게 정리해 보았다.





첫 째로, 참고 사진에 대한 설명이 부족하다. 


개인적으로 기술 서적은 참고 자료가 많으면 많을 수록 좋다고 생각한다. 초급자가 대상독자이기 때문인지 이 책 역시 상당히 많은 참고 사진이 존재한다. 그 부분은 분명 좋은 점이지만, 참고 사진으로 뭘 말하고 싶은 것인지 한번에 파악하기 힘들다. 또한 캡쳐 사진의 대부분이 Olly 디버거에서 보이는 어셈블리 코드 화면인데, 어셈블리 코드에 대한 충분한 주석이 없다. 사진에 대한 설명도 부족하고 사진 안의 내용에서도 주석이 없으니 초심자는 이해하기가 힘드리라 생각된다. 단순히 사진에 대한 한 줄 설명과 연속적인 나열은 뒷 부분에서도 말하겠지만 흔한 악성코드 분석 보고서의 스타일이다.


또, 얼마 되진 않는 양이지만, 예제 코드 내용에 쓰여 있는 주석은 대부분 영어로 작성되어 있다. 소스코드도 저자가 직접 작성했을 것으로 보이는데, 한글로 써도 전혀 문제 없는 주석 부분을 굳이 영어로 쓴 것은 무슨 의도인지 모르겠다. 영어 주석의 내용이 어렵거나 해석이 힘든건 아니지만, 읽는 사람에게 세심한 배려심이 부족해 보이는 부분이다.



둘 째로, '왜' 에 대한 설명이 없다.


사실 이 책의 가장 아쉬운 부분이다. 저자의 바람대로 공부 방법과 습관을 만들어주고 싶었으면 이 부분이 꼭 있어야 겠다고 생각했다. 모든 분야가 마찬가지겠지만, 특히나 악성코드 분석은 '왜' 라는 원초적인 질문이 중요하다고 본다. 이 책에서는 왜 그렇게 해야 하는지, 왜 그렇게 되는 건지, 왜 이렇게 밖에 할 수 없는 지에 대해 말해주지 않는다. 


사실 저자의 의도는 '가이드를 줬으니 나머지는 스스로 공부해라' 였을 것이다. 물론 그런 의미도 십분 이해는 한다. 그런 의도를 감안 하더라도 이 정도의 설명은 읽는 사람에게 불친절하다. 특히 대상 독자가 초급자라면 더욱.


'이거 그냥 분석 보고서 쓴건데?' 같이 일하고 있는 상급자가 책을 훑어 보고는 이런 얘기를 했었다. 다 읽고 생각해보니 그 말이 촌철살인의 감상평이었다. 아마도 저자 역시 꽤 오랫동안 해당 분야의 업무를 수행하면서 알게 모르게 분석 보고서 형태의 문서 스타일이 굳어 진 것으로 생각 된다. 분석 보고서는 간결하고 핵심만 전달하며 내용을 요약해서 보여주지만, '교육용' 으로는 적합하지 못하다. 



셋 째로, 정확한 대상 독자의 수준이 모호하다.


저자는 책의 이곳저곳에서 초급자 혹은 분석을 막 시작하는 단계에 있는 사람들이 대상 독자라고 밝혔다. 그러나 두 번째에서 말한 것과 비슷한 이유로 초급자가 보기에 이 책은 조금 불친절하다. 기본적인 패킹을 풀 수 있고 어셈블리 언어를 읽는데 지장이 없으며 개발에 대한 이해도 어느정도 있는 초급자가 얼마나 될까. 또 내용의 완벽한 이해를 위해선 어느정도 윈도우에 대한 선수지식도 필요하다.


저자는 그런 세세한 것에 신경 쓰지 말고 큰 개념만 잡으라고 한다. 이 책을 완벽히 이해하는데 필요한 선수 지식이 없는 사람이 개념을 얼마나 이해 할 지는 의문이다. 그리고 그런 독자가 결국 이 책의 궁극적 목표인 '리버싱에 대한 흥미' 를 얼마나 느끼고 책을 덮을지 역시 의구심이 든다.


백번 양보하여 어느정도 지식을 가진 초급자가 대상이었다 해도, 그런 초급자는 굳이 이 책을 볼 필요가 없어진다. 그 정도 수준의 독자가 한 단계 실력을 업그레이드 할 수 있는 좋은 책은 이미 시중에 많이 나와 있다.


결국, 이 책은 초급자가 대상이지만 초급자에게는 어렵고, 중급자 이상이 보기엔 뭔가 아쉽다. 누구에도 추천하기 애매한 계륵같은 책이 됐다.





어느 곳에나 명암이 있듯이, 당연히 좋은 점도 있다. (윈도우)악성코드 분석은 중급 정도의 실력까지는 윈도우 API 와의 싸움이라고 생각한다. API 가 일반적으로 어떻게 쓰이는지에 대한 흐름과 정확한 동작만 알고 있다면 어느 정도까지 수준의 분석은 정말 쉽게 할 수 있다. 


저자 역시 그걸 알았는지 API 흐름에 대해 집중적으로 설명하려는 것이 느껴졌다. API 가 어떻게 쓰이는지 이런 흐름만 이해하고 있어도 악성코드 분석에 엄청난 도움이 될 것이다. 물론 여기에서도 개인적인 아쉬운 점이 있지만 완벽 할 순 없기에 사소한 이야기는 하지 않겠다.




서두에서도 말했지만, 요즘 초급자가 악성코드 분석을 쉽게 배울 수 있는 책을 왕왕 찾고 있는 중이었다. 그 와중에 발견한 이 책은 내게 단비와도 같은 책이 될 줄 알았으나, 내 기준이 높았는지 그러지 못했다


저자 역시 더 많은 내용을 넣고 싶었겠지만 지면의 제약으로 원하는 결과물이 나오지 못했을 것으로 생각해 본다. 





리버싱 이 정도는 알아야지
국내도서
저자 : 이시우
출판 : 비제이퍼블릭 2018.05.31
상세보기






블로그 이미지

Elfmfl

,