Reversing abex Crackme #1 Write up
최근들어 리버싱을 하게되어 나뭇잎책을 읽으며 기초부터 공부하고 있다.
리버싱의 기초 문제인 abex 의 crack me 1번 문제이다.
우선 exe로 된 실행파일을 실행시키면 다음과 같이 에러 문구가 뜨면서 종료가 되게된다.
x32dbg 를 사용하여 exe 파일을 열면 다음과 같이 자동으로
401024의 코드를 보면 cmp eax, esi로 eax 와 esi 를 비교한다.
그 후 밑의 401026 코드에서 je(jump if equal)로 두 수가 같다면은 40103D의 코드로 이동시킨다
40103D의 코드는 Ok 로 문제가 해결되는 코드이다.
코드에서 Space를 눌르면 어셈블리언어를 자유롭게 패치할 수 있다.
je로 두수를 비교하지 않고 바로 JMP를 사용하여 점프시켜보자
그러면 처음 실행시 와는 다른 메시지가 출력되게 된다.
하지만 이렇게 코드패치만 진행할시에는 다음실행시에는 패치시킨 프로그램이 작동하지 않는다.
파일패치를 통해 새롭게 프로그램을 만들어줘야 다음 실행시에도 패치한 코드가 작동하게 된다.