공부방
지그 (Sieg)
전체 방문자
오늘
어제

티스토리

  • 분류 전체보기
    • 일상
      • 식사
      • 제품리뷰
    • 취미
      • 식물
      • 열대어
      • 여행
      • 보드게임
    • 공부
      • 해킹공부
      • 웹해킹문제
      • 리버싱문제
      • 모바일해킹문제
      • 오류해결
      • 코딩공부
      • 정보보안기사공부

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 모바일후킹
  • 파이썬
  • 보드게임
  • 칼리리눅스사용법
  • 드림핵
  • 프로그래밍
  • 메모장후킹
  • 와이어샤크
  • 모의해킹
  • abex' crackme
  • 해킹공부
  • 칼리리눅스
  • 취미
  • 해킹
  • 파티게임
  • 웹해킹문제
  • 리버싱
  • 코딩
  • 웹해킹
  • 해킹문제

최근 댓글

최근 글

공부방

공부/리버싱문제

[abex' crackme] crackme5 문제

2023. 8. 12. 09:00

1. crackme5.exe를 실행하였습니다.

 

2. 입력 값 없이 바로 Ckeck를 실행하였습니다.

 

3. 입력 값이 없거나 틀릴 시 다음과 같은 문자열이 출력되는 것을 확인하였습니다.

 

4. 아이다 툴에 해당 문자열을 검색하였습니다.

 

5. 검색 후 그래프로 바꾸어서 오답과 정답이 나뉘는 분기 부분을 확인하였습니다.

 

6. 동적 분석을 위해 "11111111111111" 테스트 값을 입력하였습니다.

 

7. ZF 값이 0일때 오답 쪽으로 가는 것을 확인하였습니다.

 

8. ZF 값을 1로 변조 시 정답 쪽으로 가는 것을  확인하였습니다.

 

9. 이제 ZF값을 변조하는 부분을 찾아봅시다. 바로 윗부분에 두 값을 비교하는 명령어인 cmp을 확인하였으며, 0 값과 eax 값을 비교하는 것을 확인하였습니다.
   이때 eax의 값은 1이므로 1 =/= 0 이므로 ZF값이 변하지 않는 것을 확인하였습니다.

 

10. eax를 0으로 바꾸기 위해 윗부분에 call하는 lstrcmpiA함수를 확인하였습니다.

 

11. 함수 내에서 lpString1과 lpString2를 인자로 받는 부분을 확인하였습니다.
     예상으로 lpString1문자열과 lpString2문자열을 비교하는 함수로 추측되었습니다.

 

12. 윗부분에서 lpString1이라고 주석이 달린 부분을 확인하였으며, 그 부분의 값을 확인하였습니다.

 

13. lpString2라는 주석이 달린 부분의 값 확인 시 "11111111111111" 테스트 값과 유사한 값이 확인되었습니다.

 

14. 테스트 값으로 추정되는 부분을 확인하기 위해서 이번엔 "22222222222222222" 테스트값을 입력하였습니다.

 

15. 확인 시 1 -> 31h, 2 -> 32h로 변환된 것을 확인 할 수 있었습니다.

 

16. 키보드에 있는 문자들을 입력하여 다음과 같이 표를 작성하여 표를 이용하여 lpString2문자열을 변환하였습니다.

 

17. 변환된 값을 crackme5.exe에 입력하였습니다.

 

18. 정답이라는 것을 확인하였습니다.

'공부 > 리버싱문제' 카테고리의 다른 글

[abex' crackme] crackme10 문제  (0) 2023.08.23
[abex' crackme] crackeme3 문제  (0) 2023.08.11
지그 (Sieg)
.
Designed By 정상우.

티스토리툴바