2024. 2. 27. 22:37ㆍInformation Security 정보보안/Reverse Engineering 리버스 엔지니어링
배울내용:
Crackme2.exe
Crackme3.exe
어셈블리 변조하기
어셈블리 코드 분석
assembly code 분석
레지스터
Register
어셈블리어 명령어
Reversing Engineering
리버싱 엔지니어링 기초
Crackme02.exe 파일 분석하기
Crack02.exe 파일을 실행하면 이렇게 로그인 창이 뜬다
About 을 눌렀을떄 아래 이벤트가 발생한다
로그인을 시도했을때는 최소 4 자리를 쓰라고한다
물론 4자리를 넣으면 serial이 틀리다고 뜨면서 안된다
이번시간에 이를 분석해서 뚫어보고 분석해 볼 것이다
[미션]
>프로그램의 실행이 성공했을 경우 메세지 박스 1) 캡션 , 2) 텍스트 수정후 파일로 저장
1) 캡션 : Mission Clear
2) 텍스트 : Yea, this serial is right.!
이런 미션이 주어졌다고 하자
한번 변조해보자
먼저 성공과 실패 문구를 확인해보자
확인하는 방법은 이전 시간에 방법을 배웠다 아래의 링크로가서 보면된다
https://sarimus.tistory.com/92
Reverse Engineering DAY_009 어셈블리 변조하기, Helloworld.exe 분석, Crackme1.exe, 어셈블리 코드 분석, assembl
배울내용: 어셈블리 변조하기 Helloworld.exe 분석 Crackme1.exe 어셈블리 코드 분석 assembly code 분석 레지스터 Register 어셈블리어 명령어 Reversing Engineering 리버싱 엔지니어링 기초 아래는 OllyDBG 로 분석
sarimus.tistory.com
이걸 더블 클릭해서 성공과 실패의 메세지가 어떻게 가는지 볼수가있다
먼저 성공을 보면
JE (Jump if Equal) 만약 조건이 맞으면 00403408 로 가는데 00403408 로 한번가보면
실패 메세지가 뛰워주게 된다는 걸알수있다
만약 저거를 변조해서 JMP 로 성공값으로 보내주면 된다
이렇게 변조해서 다시 실행해보자
그러면 위와같이 성공한 메세지가 뜨게 된다
그런데 우리가 원하는 Serial 을 알고싶은데 Serial 값은 어떻게 찾을까?
우선 아까 JMP 했던 부분에 F2 로 Break point 를 걸어주고
아이디와 Serial을 1234 로 입력한뒤에 로그인해보면
원래맞는 serial를 비교를 해볼건데 그값이 Stack 에 저장될것이다
그래서 보니 1234 이외에 95969798 라는걸 알수있다
아마 95969798 은 Serial 같다는 느낌이 많이든다
그리고 다시
이렇게 넣어준뒤에 Check 누르면
이렇게 성공하는것도 보인다
Crackme02.exe 를 성공적으로 성공메세지를 뛰운다
Crackme03.exe
이걸 그냥 실행시
이런 창이나오고 확인을 누르게 되면
이렇게 file을 못찾는 걸 알수있다.
getFileSize 로 파일을 불러오고
이파일을 크기를 비교해서 맞으면 아래로 가고 welldone 또는 the found file is not a valid keyfile.... 이 둘중다시 선택,
만약에 크기가 틀리면 hmmmm , I can't find the file! 이게 출력이 되는것같다
그리고 제일 중요한게 어떤파일을 여는지이다
빨간줄을 보면 abex.l2c 라는 파일이 12 (HEX) (18 bytes) 가 되면 아마 될것같다
그러면 text 파일을 만들어서 영문자 18개 (18bytes)를 넣어서 저장해준다
이걸 작성하고 이름을 abex.l2c 로 저장해준다
그리고 Crack02.exe 파일이 있는곳에 abex.l2c 를 옮겨주고 실행해보자
그러면 이와같이 성공한다
만약 글씨가 17개나 19 개더라도 18bytes(12 (HEX)) 가 아니라서 실패한다