리버싱 abex crackme 2
사용 프로그램: x32dbg Mar 10 2019 abex crackme 2번을 리버싱 해봅시다. 구글에서 abex crackme 2를 다운로드합니다. 실행하면, 다음의 프로그램이 실행됩니다. 'Check'를 누르면, 메시지 박스가 나옵니다. 아무 글자나 4 자리 넣고 'Check'를 누르면 다음 메시지 박스가 나옵니다. 'about'은 만들어진 날짜가 나옵니다. 'Quit'을 누르면 종료됩니다. abex crackme 2번 실행 파일을 x32dbg로 리버싱 해봅시다. EP(EntryPoint)를 찾습니다. ThunRTMain을 호출하는 것으로 보아 Visual Basic으로 제작된 것을 알 수 있습니다. JMP를 통해서 호출하므로 간접 호출 기법입니다. VB 코드는 해석하기 어려우므로, 일단 메시지 박스를 활용해서 찾아봅시다. 모든 모듈(문자열)을 찾으면, 메시지 박스에서 봤던 문자열이 보입니다. 더블 클릭으로 그 주소로 가봅시다. 이름 검증 후, 시리얼을 체크하므로, 밑으로 좀 더 내려봅시다. 시리얼 체크 부분이 나올 겁니다. 분기문 밑에 'Congratulations!'가 보입니다. 그리고, 메시지 박스를 호출하는 부분이 보입니다. 여기서 풀이 방법이 두 가지가 있습니다. 우선 첫 번째 방법입니다. '00403332' 주소에 있는 'JE crackme2.403408' 분기문이 거짓이라면, 아래로 진행되어 'Congratulations!'를 지나 'Yep, this key is right!'가 실행될 겁니다. 'JE'위의 'TEST AX, AX'는 AX가 0인가를 확인하는 구문입니다.(CMP AX, 0과 동일) 'JE crackm22.403408'은 AX가 0이면[...