abex' crackme #1 크랙
위 파일은 소스폴더에 존재하지 않아서 비슷한 예제를 가져왔다.
내 백신 프로그램은 예제 파일 안에 계속 트로이 목마(바이러스)가 있다고 다운이 안되서 백신을 끄고 실습을 진행했다.
실행화면이다. 시작하기전 악성코드로 인식이 되어 가상환경에서 실습을 하려 했으나 가상환경이 느려서 그냥 진행
확인을 누르면 이런 문구가 뜬다.
이문제는 많이 풀어봤다... 하도 리버싱을 입문하다 실폐를 해서...
첫번째 메세지가 드는 부분에 BP를 걸어두었다.
첫번째 메세지가 떳다. 즉 main 함수 내부로 들어왔다고 나는 해석이 된다.
두 메모리 EDI와 ESI에 매모리 값을 저장
TEST 연산을 한다.
TEST연산은 첫번쨰 오퍼랜트와 두번째 오퍼랜트를 AND 연산을 하여 플래그세트를 반환한다.
다르기 때문에 0을 반환하는데 AF가 변화했다.
JNE는 거짓일경우 점프한다는 문장이다.
모르겠다.
ida por 소환
여기서 분기가 시작된다.
CMP 는 EAX AND ESI
일단 함수 안까지 실행
찾았다 개색기야
이렇게 가도록 만들면 됨
JE 분기가 참이 되어야하는데
참이되게 하기는 힘들것 같음
거짓일때 점프하도록 패치
응 풀렸어 ㅋㅋ
도구의 단축키나 실행시킬때 끝까지 실행시키는 법을 몰라서 F9를 연타한다. 도구 사용법좀 배우고 싶은데... 마땅한 정보가 없다...
일단 내방식으로 크랙
이번엔 책의 내용을 살펴보겠다.
===================================================
나 같은 경우 EP 코드가 꽤 길다... 내컴퓨터가 이상한것 같다. main에 도착하면 코드가 매우 간결해진다.. 이유는 어셈블리언어로 제작해서 그렇다고 한다.
분기시 EAX와 ESI를 분기하는데 아무리 봐도 너무 차이가 난다....
이부분은 나중에 알게되면 포스팅을 하고 책에서는 더 자세히 들어간다.
함수를 넘기는 파라미터가 역순으로 넘어간다. 그택의 구조가 FILO 를 취하고 있기 때문이다.
마지막으로 덤프창에 메세지가 깨져서 나온다. 올리디버거와 같은 문제점인데 이부분은 이해하기 어려웠다.