column
리버서의 연륜을 말해주는 Opcode Manual
reversecore
2010. 8. 31. 01:00
반응형
지난주부터 "IA-32 Instruction" 챕터를 작업하는 중인데요, IA-32 Instruction 이란 쉽게 말해 아래 그림에서 빨간 박스로 표시된 부분을 말하는 것입니다.
디버거에 탑재된 Disassembler 가 저 Instruction 을 해석해서 우리가 익히 보는 (오른쪽의) Disassembly 코드를 만들어 내지요.
"IA-32 Instruction" 챕터를 작업하면서 제 노하우를 공개하였습니다. 그건 바로 Intel IA-32 Manual 에서 Instruction 을 해독하기 위해 필요한 Opcode Map(Opcode Table) 부분만 프린터로 출력한 것입니다. 저한테는 Opcode 매뉴얼인 셈이지요. (아래 그림 참고)
작업 중인 책 내용의 일부를 소개합니다. (참고 섹션 내용입니다.)
* 참고
위 출력물이 너덜너덜 해질 때쯤 여러분은 IA-32 Instruction 해석의 고수가 되어 있으실 겁니다. 저 또한 5년 동안 손 때묻은 저만의 출력물을 한 부 가지고 있습니다. 후배나 동료가 Instruction 해석에 관해서 물어오면 자랑스럽게 꺼내서 가르쳐 줍니다. 많이 참고하다 보면 어떤 내용이 대충 어느 페이지에 있다는 감이 생겨서 한번에 그곳을 펼칠 수 있습니다. (생활의 달인?)
제가 가장 존경하는 선배님도 이러한 출력물을 가지고 계셨습니다. 그 당시에도 매우 낡아 보였지요. 어찌 보면 이것이 리버서의 연륜(?)을 나타내는 하나의 척도로 볼 수 도 있겠습니다. 여러분께서도 꼭 자신만의 출력물을 한 부 만들어서 활용해 보시기 바랍니다.
이처럼 오랫동안 저랑 같이 작업한 제 손 때묻은 매뉴얼 이라서 어느덧 애정이 생겨 버렸습니다. (기술자들은 모두 그런 게 한두 개씩은 있잖아요? 자신과 오랫동안 함께 하면서 분신이 되어버린 도구 같은…)
최근 1~2년은 주로 각종 자동화 시스템의 개발/유지보수 업무를 하면서 Opcode 매뉴얼을 거의 꺼내 보지 못했었는데, 이번에 "IA-32 Instruction" 챕터를 쓰면서 다시 꺼내어 보니 감개가 무량하더군요. (그동안 소홀해서 미안해~ 이번 챕터는 다 니 덕이야~ 고마워~)
더불어 제게 처음 IA-32 Instruction 을 가르쳐 주시고(사실 개발, 분석을 다 가르쳐 주셨죠) 제가 가장 존경하는 선배님(형님)이 생각납니다. 지금은 외국에 계셔서 만나 뵙기는 힘듭니다만 오늘은 그분이 더 보고 싶네요. ^^~
반응형