HACKING



크게 작게 인쇄

쉐어웨어 크랙.

요즈음 쉐어웨어라는 것으로 특히 통신망의 발달로 인해 많이 정착된 제도가 있다. 쉐어웨어라는 것은 프로그래머가 개발한 프로그램에서 어느정도의 제약을 두어 통신망 등을 통해 프로그램을 공개하고 사용자가 그 프로그램이 마음에 들면 프로그램에 첨부 된 등록서와 돈을 제작자에게 부치면 제작자는 해당 프로그램의 제약이 없어진 등록된 프로그램을 사용자에게 제공해주는 방식으로 중계자가 없어 가격이 싼 편이어서 요즈 음 굉장히 많이 쓰이는 제도이다.

쉐어웨어의 등록 방식에 크게 두가지가 있는데 첫째는 등록버전과 비등록버전을 따로 두어서 사용자가 등록을 하면 제작자가 등록버전을 보내주는 방식과 비등록버전에서 등록신청을 하면 제작자가 패스워드를 보내주고 그 패스워드를 비등록버전 등록메뉴에서 입력하여 등록버전이 되는 것이다. 그런데 해커들은 후자의 경우 프로그램을 해킹 하여 등록버전을 만드는 경우가 많이 있다. 어떻게 그렇게 할 수 있으며 그를 막을 수 있는 법을 알아보자. 여기서는 간단히 패스워드를 입력하여 등록시키는 경우에 대해서 만 설명을 해본다.




입력부분 찾기
우선 패스워드를 입력하는 부분을 찾아야 하는데 대개는 바이오스의 키보드 인터럽트를 사용하므로 Interrupt 16h의 호출을 추적하면 된다. 이 경우 어느 정도 수준의 디버거나 디스어셈블러 정도만 있으면 쉽게 찾을 수 있다. 좋은 디버거인 경우 패스워드를 입력하는 부분에서 핫 키를 누르면 바로 나올 수도 있다.

비교부분 찾기
입력 부분에서 Enter키를 검사하는 부분을 찾아 쫓아가보면 입력받은 암호와 실제 암호를 비교하는 루틴이 나온다. 암호가 맞는지를 검사하는 부분은 크게 두 가지로 나눌수 있는데 첫째는 문자열을 가지고 계산을 하여 나온 결과를 가지고 비교하는 것과 문자열 자체를 암호와 비교하는 것이 있는데 전자의 경우 대부분 숫자만으로 이루어진 암호에 속하며 후자의 경우 영문 또는 숫자가 들어간 코드 등이 대부분이다.

문자의 경우는 CMPS 의 어셈블리어 코드를 발견하면 십중 팔구 맞으나 전자의 경우는 CMP를 찾아야 하는데 연산 중간과정에서도 MP가 상당수 나올 수 있다. CMP를 발견하 기는 커녕 연산을 하여 결과를 어디에 저장하는지 조차 알기 힘들 때가 있다. 우선 비교하는 부분을 찾으면 문제는 굉장히 쉬워진다. 비교한 결과만 조금 바꾸어주면 되기 때문이다.

고치기
비교하는 부분은 대부분 CMPS 또는 CMP 를 하나만 쓴 부분일 것이다. 그리고 그 아래에는 비교결과가 같으면 분기하는 JZ(또는 ZE) 이나 틀리면 분기하는 JNZ(또는 JNE)의 어셈블리어 코드가 있을 것이다. JZ를 JMP로 고치거나 JNZ를 NOP로 고치면 무조건 맞 
는 것으로 간주하게 된다. 디버깅 상태라면 CMP 또는 CMPS연산 수행 후에 Zero Flag를 세트해줘도 된다. 문자열을 암호로 하되 검사를 한 자 한 자씩 하는 경우도 드물지만 있으나, 그 경우 에는 한 자 한 자 각각의 검사 루틴을 위와 같이 처리하면 된다.

코멘트 0
해킹방어 | 전체게시물 119
안내

포인트안내닫기

  • 글읽기0
  • 글쓰기0
  • 댓글쓰기0
  • 다운로드0
해킹방어리스트
번호 제목 등록일 조회
119 텍스트 04-28 5568
118 텍스트 09-17 10494
117 텍스트 09-17 6852
116 텍스트 09-17 6759
115 텍스트
쉐어웨어 크랙.
09-17 7357
114 텍스트 03-26 7882
113 텍스트 02-15 15958
112 텍스트 02-15 7082
111 텍스트 12-28 8590
110 텍스트 12-27 10993
109 텍스트 11-25 7394
108 텍스트 11-28 6646
107 텍스트 11-28 7713
106 텍스트 10-29 9925
105 텍스트 10-14 6632
104 텍스트 09-18 7911
103 텍스트 03-05 13853
102 텍스트 09-25 8566
101 텍스트 09-25 48479
100 텍스트 09-25 15703
 맨앞이전123456