본문 바로가기
Q&A2021년 1월 5일1분 읽기

리버스 엔지니어링 시작하려면 어셈블리어를 꼭 알아야 하나요?

전
전민규
조회 608댓글 3

리버싱에 관심이 있는데, x86 어셈블리어를 먼저 공부해야 하나요? 아니면 IDA Pro 같은 도구 사용법부터 배워도 될까요?

댓글 3

김김영삼5년 전

어셈블리어 기초는 반드시 필요합니다. IDA나 Ghidra가 디스어셈블해줘도 결국 읽는 건 어셈블리니까요.

다만 모든 명령어를 외울 필요는 없고, 기본적인 것들만 알면 됩니다:

  • 레지스터(EAX, EBX, ESP, EBP, EIP)
  • MOV, PUSH, POP, CALL, RET, JMP, CMP, JE/JNE
  • 스택 프레임 구조
  • 함수 호출 규약(cdecl, stdcall)

이 정도 알고 나서 Ghidra(무료)로 간단한 crackme를 분석하면서 실력을 키우세요.

구구자현(guest)5년 전
Ghidra가 IDA Pro보다 좋은 건가요? 무료라서 기능이 부족하진 않나요?
김김영삼5년 전

Ghidra는 NSA에서 만든 도구로, IDA Pro와 비교해도 기능이 상당히 좋습니다. 디컴파일러도 내장되어 있고요. IDA Pro는 라이선스가 수백만원이라 개인이 구매하기 어렵습니다. 학습 목적이라면 Ghidra로 충분하고, 실무에서도 많이 씁니다.

Ctrl+Enter로 등록