abex' crackme #1 write-up
2021. 2. 6. 19:51ㆍ악성코드 분석
- 초기 실행결과
- 동적 분석 (ollydbg)
이 프로그램은 어셈블리로 짜여진 코드이므로 코드가 매우 간결하게 되어있음
처음 시작할때 F8 키를 누르면서 한줄씩 실행하게 됨, 40100E에서 MessageBoxA 함수가 불려지고 화면에 초기 실행결과들(해석해보면 HD를 CD-Rom으로 생각하게 만들라고 함)이 나옴. 만약 그냥 실행을 하면 "Nah... This is not a CD-RPM Drive!" 이라는 문구가 메시지박스로 나오게 되지만 프로그램을 크랙하여 타이틀이 "YEAH"이고 "OK, I really ~~~ " 라는 문구를 띄어야 하는거 같음.
- 해결방법 예측
- 401026주소에 있는 JE 명령어가 40103D를 가르키고 있으므로 JMP 명령어로 바꾸어 무조건 점프하게 해주면 될거같다는 생각함. (JE --> JMP)
- 401024주소에서 EAX와 ESI를 비교하여 같으면 "YEAH"라는 창을 출력하는것 같으므로 EAX 값과 ESI 값을 조정하면 될것같다고 생각함.
- 1번 방법
해당 주소에서 마우스 오른쪽키 클릭 후 Assemble를 눌러 어셈블리를 변경함. 401026주소에 있는 JE 명령어를 JMP 명령어로 변경하여 무조건 "YEAH"로 이동하게 함. (정확히는 "YEAH"는 아니고 40103D로 이동)
- 2번 방법
위와 같은 방식으로 40101D위치에서 어셈블리를 INC ESI -> MOV ESI,1 로 변경함. 다른부분을 안바꾼 이유는 해봤지만 Assemble로 명령을 바꾸는 것은 주소를 덮어쓰는 것이기 때문에 INC나 DEC와 같은 명령어는 주소가 1씩 증가하지만 MOV명령어는 더 많이 증가하여 JE명령어까지 덮어쓰기 때문에 저기에 넣음. 결과적으로는 ESI, EAX 둘다 2가 되어 같아지므로 1번방법과 똑같이 "YEAH"로 이동하게 된다. (정확히는 "YEAH"는 아니고 40103D로 이동)
- 결과
'악성코드 분석' 카테고리의 다른 글
easy-crackme1.exe 분석 보고서 (0) | 2021.05.06 |
---|---|
지역변수 출력 (리버싱 유형 - 1) (0) | 2021.03.17 |
메모리 구조 (0) | 2021.02.25 |
x64dbg 사용법 (0) | 2021.01.30 |
리버스 엔지니어링 기초 (레지스터 및 명령어) (0) | 2021.01.28 |