abex crackme #1
해당 시리즈에서는 책 "리버싱 입문(조성문 지음/프리렉 출판사)"를 공부하며 배운 내용을 정리한다.
abex crackme의 첫 번째 예제 문제를 통해 배울 수 있는 개념 2가지를 정리해보겠다.
문제
처음에 실행하면 위의 두 창이 순서대로 나온다. 컴퓨터가 하드디스크를 CD-Rom이라고 착각하게 만드는 것이 문제이다.
문제를 해결하고 나면 이와 같이 창이 뜨게 된다.
1. 프로그램 코드 변경하기
프로그램 코드 변경 방법
- F8로 계속해서 명령어들을 실행하다가 내가 변경하고 싶은 코드에서 멈춘다.
- 마우스 오른쪽 버튼 -> [Assemble...] 메뉴 클릭
- 명령어 수정
- 버튼 -> 버튼
주의할 점!
프로그램 실행 위치가 변경하고 싶은 코드 위에 있을 때 비로소 코드를 변경한다. 그 전까지는 계속 실행시켜준다. 미리 변경하면 안 된다.
2. 제로 플래그 변경하기
제로 플래그 레지스터(Zero Flag Register)
예를 들어 아래와 같은 명령어를 실행한다고 하자.
CMP EAX, ESI
이때 결과가 같다고 나오면 1이, 다르다고 나오면 0이 제로 플래그 레지스터에 저장된다.
제로 플래그 변경하는 법
오른쪽의 Registers (FPU)칸의 알파벳 옆 숫자를 0에서 1로, 혹은 1에서 0으로 바꿔준다.
Author And Source
이 문제에 관하여(abex crackme #1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seoyoung/abex-crackme-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)