HACKING



크게 작게 인쇄

크랙(crack) 이란?

크랙(crack) 이란 카피락을 무력하게 만드는 것을 뜻하며 이런 의미에서 크랙커(cracker)는 그런 일을 하는 사람을 칭합니다. 하지만 cracker는 usenet에서는 hacker성격과 반대되는 나쁜 사람들을 칭하는 의미로써 쓰이기도 합니다.

패치(patch)란 근원적인 뜻은 소프트웨어를 만든 회사에서 임시적으로 버그같은 것을 수정할 목적으로 실행화일을 직접고치는 일 또는 알고리즘의 변화없이 임시로 소스래벨에서 버그를 막는 일.. 등을 말합니다. 이런 이유에서 락의 있어서 패치란 실행화일을 고쳐버리는 일을 뜻합니다.

크랙을 만드는 과정은 일괄적이지 않으며 개인마다 쓰는 방법은 모두 틀릴것입니다. 변경되지 않는 처리라면 오직 "분석해서 수정"하다는 것뿐이 없다고 생각합니다. 크랙은 프로그램의 락이 걸린 실행화일 자체를 분석/추적/수정해야만 가능합니다. 분석과 추적작업은 역어셈블리된 소스를 대상으로 행해지는 것이기때문에 어셈블러 프로그래밍을 할수 있거나 혹은 어셈블리코드들을 이해하는 사람들만이 제작능력이 있는 사람이라고 말할수 있습니다.

어떤 언어를 배운분이라면 그언어의 소스를 본다면 그것이 무엇을 하는 프로그램의 소스이며 또 어떻게 고치면 자신이 원하는 일을 할수 있게 하는지 알수 있을것입니다. 어셈블러는 기계코드와 1:1대응이 되기때문에 실행화일을 어셈블러의 소스에 가까운 것으로 바꿀수 있습니다. 위의 말을 종합한다면 어셈블러 프로그래머는 실행화일만으로도 그 프로그램을 고칠수 있다는 말이 되겠지요. 결국 분석한다는 것은 어셈블러프로그래머의 입장에서는 소스래벨 디버깅과 크게 다르지 않습니다.

크랙 자체를 만드는 것은 하위접근이 가능한 씨나 파스칼 어셈블러 등등의 어떤 언어로도 만들수 있습니다. 다만 크랙을 만들기위해서 하는 락의 분석 작업은 역어셈블리된 소스를 대상으로 행해지기때문에 크랙자체를 만드는 언어와는 상관없이 어셈블러는 알아야합니다

실행화일로 된것은 어떤이유에서인가 락이 걸린화일을 직접적으로 수정하지 못하여 실행시에 메모리에서 수정해야만 할때 쓰는 방식이며 프로그램 자체가 크랙된것은 그런 현상이 없는 프로그램에서 단순히 직접적으로 디스크의 화일자체를 고친것입니다. 크랙을 만드는 제일 유명한 단체는 험블(humble)입니다. 그 밖에도 단체인지 개인인지는 모르지만 많은 사람들이 있는 것은 확실합니다.


pctools 로 크랙 만들기는 "분석작업을 한뒤에 패치를 pctools로 한다" 입니다. 크랙에 있어서 중요한것은 락의 분석작업입니다. 사실상 분석작업이 크랙의 100%라고 말을 해도 과언이 아닐것입니다. 하지만 일반적으로 겉으로 나타나는것은 패치작업이죠. 크랙킹작업을 옆에서 지켜보면 계속해서 코드만을 보다가 한~~~참후에 패치가 가능한것이면 pctools로 패치를 해서 락을 제거 합니다. 그리고 누군가 어떤 프로그램의 크랙방법을 알려달라고 묻게되면 pctools로 패치하는 방법을 알려주게 되는거죠.

이런 이유로 겉으로 나타나는 패치작업이 크랙의 전부인것으로 알고 있는 분들이 많이 있습니다. 크랙자체를 만드는 것은 분명히 pctools로 하는 경우도 있는것은 틀림이 없습니다. 하지만 크랙이라는 것이 프로그램의 수정이기때문에 분석이 없을수가 없습니다. 좀더 다른 관점에서 봤을때 pctools의 작업은 기록작업 이외에는 아무 의미가 없습니다. 또한 자체압축같은 것이 되어 있는 프로그램에서는 pctools의 패치작업은 사용하지 못하며 부수적인 프로그램을 만들어서 디스크가 아닌 램에서 프로그램을 수정하게 만들어야합니다. 다시말해서 모든 락의 크랙제작 pctools를 항상 사용가능한것은 아닙니다.

인터럽트를 훅해서 메모리에서 수정한다는 말은  프로그램이 압축이 되어 있거나 또는 다른 이유에 의해서 패치를 하지 못할때에는 추가적으로 디스크에서 메모리로 프로그램이 올라온후 실행을 위해서 원형의 모습을 갖추었을때 프로그램의 코드를 고치는 작업을  말합니다. 보다 자세한 설명은 80개열의 CPU의 인터럽트의 메카니즘상의 문제이므로 이정도로 줄이겠습니다.

역어셈블리 소스를 만들어주는 프로그램은 많습니다. 소서라는 프로그램이 그 대표적인 것입니다. 그렇지 않으면 반어셈블러(?)정도의 소스라면 일반적인 모든 디버그에서 제공하고 있습니다. 크랙은 추적작업이 병행되어야 편하기때문에 많은 크랙커들은 전적인 역어셈블러보다는 디버거의 사용을 선호하고 있습니다.

디버거는 프로그램의 버그(오류)의 발견을 위해서 그 프로그램을 부분적으로 실행하면서 역어셈블리된 코드를 보여주거나 CPU의 래지스터 상태를 보여주는 프로그램을 칭합니다.

소프트아이스(Soft-Ice)란 많은 종류의 디버거중에 하나이며 강력합니다. SI는 많은 기능을  가지고 있으며 구할수 있는  디버거중에 가장 편리(?)하고 막강한  디버거라고 생각합니다.

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

포인트안내닫기

  • 글읽기0
  • 글쓰기0
  • 댓글쓰기0
  • 다운로드0
해킹방어리스트
번호 제목 등록일 조회
119 텍스트 04-28 5560
118 텍스트
크랙(crack) 이란?
09-17 10487
117 텍스트 09-17 6847
116 텍스트 09-17 6746
115 텍스트 09-17 7347
114 텍스트 03-26 7876
113 텍스트 02-15 15938
112 텍스트 02-15 7073
111 텍스트 12-28 8580
110 텍스트 12-27 10982
109 텍스트 11-25 7384
108 텍스트 11-28 6639
107 텍스트 11-28 7705
106 텍스트 10-29 9917
105 텍스트 10-14 6622
104 텍스트 09-18 7899
103 텍스트 03-05 13839
102 텍스트 09-25 8561
101 텍스트 09-25 48470
100 텍스트 09-25 15688
 맨앞이전123456