본문 바로가기
정보보안/리버싱

리버싱) abexcm1.exe#2 - abex crackme

by _miiiiiin_zzang_ 2021. 5. 13.

 abex crackme#2 : 프로그램을 분석해서 사용자가 입력한 이름과 관련있는 일련번호를 찾아내기

이름과 시리얼 번호가 너무 짧아도 안됨

이름과 시리얼 번호가 매치가 안될 때 생기는 화면


프로그램 실행

사진 클릭 시 확대 가능

프로그램 실행 시 사용자 입력을 기다리는 창 확인 가능

F9 입력 시

사진 클릭 시 확대 가능

우측 하단에 Debuggee Status가 Running으로 바뀐 것 확인 가능

현재 상태가 running이기 때문에 꺼지지 않음

 

문자열 검색

 

코드영역 > 오른쪽 마우스 > Search for > Allreferenced text strings

[All referenced strings] 메뉴 클릭 시 프로그램에서 사용하는 전체 문자열을 확인 가능

찾고 싶은 문자열 더블클릭하면 해당 문자열로 바로 이동 가능

위 내용을 보고 0040237C를 스택에 복사하려는 것을 확인 가능

즉 Please enter at~~~ 이 내용은 0040237C에 저장되는 것을 확인 가능

[All referenced strings] > 오른쪽 마우스

[Follow in Disassembler] : 코드 화면으로 바로 이동

[Search for text] : 문자열 검색 기능

 

코드 분석

[Analyse code] 어셈블리어 코드 분석하는 기능, 자동으로 적용되며 사용자가 이해하기 쉽게 코드 변환해줌, 틀자마자 보이는 디폴트 화면

[Remove analysis from module] 모듈에서 코드를 분석한 내용 모두 제거

[Remove analysis from selection] 선택된 영역에서만 코드를 분석한 내용을 제거

 

스택분석

변수를 스택에 저장해서 함수로 전달할 수 있고 서브루틴에서 사용되는 변수를 저장하는 공간으로 활용

서브 루틴을 수행하기 전에 메인 루틴의 레지스터를 스택에 저장할 수 있음

주소 0040237C에는 "Please enter at least 4 chars as name!"이 저장되어 있고

주소 004023D0에는 "Error!"가 저장되어 있음

00403054 에 브레이크 포인트(F2) 잡고 실행(F9)

 

실행하면 창이뜨고 창에 짧은 이름과 시리얼 넘버 입력한 후 확인

해당 코드를 00403070까지 실행 되는 것 확인 가능

 

댓글