프로그램의 실행 과정
디버거에는 문자열 검색 기능이 있다
MOV DWORD PTR SS:[EBP-0E4], 004023D0
)MOV DWORD PTR SS:[EBP-0E4], 004023D0
)가 저장된 메모리 위치로 이동가장 먼저 해야할 일은 열쇠가 되는 문자열을 검색하는 것이다
Yep, this key is right
Nope, this serial is wrong
분석하고 나서 알게 되는 것은 다음과 같은 프로세스 를 통해 일련번호를 검사한다는 것
abcd
/ 일련번호 : 1234
를 입력한 뒤 프로그램 분석을 시작한다
TEST AX, AX
구문에서 정답인지 오답인지 판단MOV DWORD PTR SS:[EBP-94], EAX
EAX
레지스터가 가리키는 주소에 있는 데이터를 DWORD
(4Byte)만큼 읽어서 EBP-94
에 복사한다는 명령EBP-94
에 어떤 데이터가 있는지 확인1234
가 있음을 확인C5C6C7C8
는 사용자가 입력한 이름 abcd
과 일치하는 일련번호임을 알 수 있다!