소프트웨어 크래킹

Software cracking

소프트웨어 소프트웨어("차단"은 1980s[1]대부분에서 잘 알려 져)단속한다 수정 또는 해제하는 바람직하지 않은 그 사람은 소프트웨어(소프트웨어 크래커)균열로 간주된다 기능 소프트웨어의 조작에 대한 보호, 일련 번호, 하드웨어 키, 날짜 검사를 포함한 특히 복사 방지 기능(제거합니다.한d디스크 체크) 또는 소프트웨어의 번거로움(nag screen이나 애드웨어 등).

균열은 예를 들어 도난당한 일련 번호나 [2]균열 행위를 수행하는 도구와 같은 달성 수단을 의미합니다.이러한 도구 중 일부는 keygen, patch, loader 또는 no-disc crack이라고 불립니다.Keygen은 수제 제품 일련 번호 생성기로, 종종 사용자 이름으로 작업 일련 번호를 생성할 수 있는 기능을 제공합니다.패치는 다른 프로그램의 기계 코드를 수정하는 작은 컴퓨터 프로그램입니다.이는 크래커가 몇 바이트만 [3]변경해도 큰 실행 파일을 릴리스에 포함하지 않는 장점이 있습니다.로더는 프로그램의 시작 흐름을 수정하고 보호를 제거하지는 않지만 이를 [4][5]회피합니다.로더의 잘 알려진 예는 게임에서 [6]속임수를 쓰는 트레이너입니다.Fairlight그들의 .nfo 파일 중 하나에서 이러한 유형의 균열은 와레즈 장면 게임 [7][4][8]출시에는 허용되지 않는다고 지적했다.핵전쟁으로 인해 보호장치가 유효한 [9]균열이 되기 위해서는 어떤 시점에서도 효과가 없을 수도 있습니다.

대부분의 나라에서 깨진 복사본의 배포는 불법이다.소프트웨어 [10]크래킹에 대한 소송이 있었다.특정 [11]상황에서는 크래킹된 소프트웨어를 사용하는 것이 합법적일 수 있습니다.그러나 리버스 엔지니어링 및 소프트웨어 크래킹을 위한 교육 리소스는 합법적이며 Crackme 프로그램의 형태로 제공됩니다.

역사

첫 번째 소프트웨어 복사 보호는 Apple II,[12] Atari 8비트 제품군Commodore 64 [citation needed]시스템용 소프트웨어에 적용되었습니다.소프트웨어 퍼블리셔는 소프트웨어의 무단 복제를 막기 위해 점점 더 복잡한 방법을 구현하고 있습니다.

Apple II 에서는, operating system이 플로피 드라이브 헤드를 이동하는 스텝 모터를 직접 제어해, 각 트랙으로부터 읽어낸 니블이라고 불리는 원시 데이터를 직접 해석해 데이터 섹터를 식별합니다.따라서 데이터를 하프 트랙(0, 1, 2.5, 3.5, 5, 6...), 쿼터 트랙(0, 1, 2.25, 3.75, 5, 6...) 및 이들의 조합에 저장함으로써 복잡한 디스크 기반 소프트웨어 복사를 보호할 수 있었습니다.또한 트랙은 완벽한 링일 필요는 없지만 섹터가 겹치는 오프셋 트랙에 걸쳐 엇갈릴 수 있도록 분할할 수 있습니다. 가장 극단적인 버전은 나선형 트랙으로 알려져 있습니다.또한 많은 플로피 드라이브에는 헤드 이동 상한선이 고정되어 있지 않으며, 일반 35트랙 위에 36번째 트랙을 추가로 쓸 수 있는 경우도 있었습니다.표준 DOS에서는 모든 디스크가 동일한 35트랙, 13섹터 또는 16섹터 레이아웃을 가지고 있다고 가정했기 때문에 표준 Apple II 복사 프로그램에서는 이러한 보호된 플로피 디스크를 읽을 수 없었습니다.Locksmith 및 Copy II Plus 등의 특수 니블 복사 프로그램은 알려진 보호 방법의 참조 라이브러리를 사용하여 이러한 디스크를 복제할 수 있습니다. 보호된 프로그램이 크래킹되면 복사 보호 시스템이 완전히 제거되고 일반 Apple II 복사 프로그램이 할 수 있는 표준 포맷 디스크로 전송됩니다.읽어주세요.

이러한 초기 복사 보호를 해킹하는 주요 경로 중 하나는 정상적인 CPU 동작을 시뮬레이트하는 프로그램을 실행하는 것이었습니다.CPU 시뮬레이터는 해커에게 각 프로세서의 명령어를 싱글스텝하여 시뮬레이션을 실행할 때 CPU 레지스터와 변경된 메모리 공간을 조사하는 기능 등 많은 추가 기능을 제공합니다(현대식 디스어셈블러/디버거라면 누구나 이 기능을 사용할 수 있습니다.Apple II는 내장 opcode disassembly를 제공하여 원시 메모리를 CPU opcode로 디코딩할 수 있도록 했습니다.이것에 의해, 카피 방지가 다음에 무엇을 실시하려고 하는지를 조사할 수 있습니다.일반적으로 복사 방지 시스템의 모든 비밀은 시뮬레이션을 통해 확인할 수 있기 때문에, 복사 방지 시스템은 거의 또는 전혀 방어할 수 없었습니다.그러나 시뮬레이션 자체는 원래 CPU에서 실행되어야 하기 때문에 소프트웨어가 해킹될 뿐만 아니라 시뮬레이션이 최대 속도에서도 매우 느리게 실행되기도 합니다.

Atari 8비트 컴퓨터에서 가장 일반적인 보호 방법은 "불량 섹터"를 통한 것입니다.이러한 섹터는 디스크 드라이브에서 의도적으로 읽을 수 없는 디스크 섹터입니다.소프트웨어는 프로그램이 로드될 때 이러한 섹터를 검색하고 이러한 섹터에 액세스할 때 오류 코드가 반환되지 않으면 로드를 중지합니다.디스크를 복사하여 불량 섹터를 기억하는 특수 복사 프로그램을 사용할 수 있었습니다.사용자는 애플리케이션을 사용하여 단일 섹터를 지속적으로 읽고 드라이브 RPM을 표시함으로써 드라이브를 회전시킬 수 있습니다.디스크 드라이브의 상단을 떼어내면, 작은 드라이버를 사용하고, 드라이브의 RPM 속도를 특정의 포인트 이하로 늦출 수 있습니다.드라이브의 속도가 느려지면 응용 프로그램은 필요에 따라 "불량 섹터"를 쓸 수 있습니다.이 조작이 완료되면, RPM 의 속도가 통상대로 돌아와, 카피가 크래킹 되지 않게 됩니다.물론 소프트웨어를 크래킹하여 디스크 드라이브를 조작할 필요 없이 쉽게 복사된 디스크에 적합한 섹터를 만들 수 있습니다.시간이 지남에 따라 더욱 정교한 방법이 개발되었지만, 거의 모든 방법이 잘못된 데이터 정렬로 인해 서로 다른 데이터를 별도의 액세스로 반환할 수 있는 섹터와 같은 잘못된 형식의 디스크 데이터와 관련되었습니다.Atari의 "스마트" 드라이브의 컨트롤러 BIOS를 대체한 (Happy Computers와 같은 회사로부터) 제품이 출시되었습니다.이러한 업그레이드된 드라이브를 통해 사용자는 복사 방지 기능을 새 디스크에 배치하여 원래 프로그램의 정확한 복사본을 만들 수 있었습니다.

코모도어 64에서는 소프트웨어를 보호하기 위해 몇 가지 방법이 사용되었습니다.ROM 카트리지에 배포된 소프트웨어의 경우, 프로그램 코드를 쓰려고 하는 서브루틴이 포함되어 있습니다.소프트웨어가 ROM 상에 있으면 아무 일도 일어나지 않지만 소프트웨어가 RAM으로 이동하면 소프트웨어가 비활성화됩니다.코모도어 플로피 드라이브는 작동하기 때문에 쓰기 보호 스킴을 1개 사용하면 플로피 드라이브 헤드가 레일 끝에 부딪혀 드라이브 헤드가 잘못 정렬될 수 있습니다.경우에 따라서는 이 결과를 피하기 위해 소프트웨어의 크래킹버전이 바람직할 수 있습니다.잘못 정렬된 드라이브 헤드는 일반적으로 레일 스톱에 부딪혀 저절로 고정되는 경우가 드물었습니다.또 다른 잔인한 보호 계획은 1번 트랙에서 40번 트랙까지 몇 번 왕복하는 것이었다.

초기 소프트웨어 크래커의 대부분은 컴퓨터 애호가들이었고, 이들은 종종 소프트웨어의 크래킹과 확산에 있어 서로 경쟁하는 그룹을 형성했다.새로운 복제 방지 체계를 가능한 한 빨리 깨는 것은 종종 돈벌이 가능성보다는 자신의 기술적 우수성을 입증하는 기회로 여겨졌습니다.소프트웨어 크래커는 통상, 그 액션으로부터 큰 메리트를 얻을 수 없었습니다.또, 그 동기는,[13] 보호를 해제하는 과제 그 자체였습니다.일부 저숙련 취미 생활자들은 이미 깨진 소프트웨어를 가지고 게임이 게임 플레이어에게 전달할 메시지를 바꾸기 위해 암호화되지 않은 여러 문자열의 텍스트를 편집하고, 종종 저속한 것으로 여겨지기도 한다.변경된 복사본을 파일 공유 네트워크에 업로드하는 것은 성인 사용자들에게 웃음거리가 되었다.1980년대의 크래커 그룹은 크랙 인트로스로 알려진 애니메이션 화면을 그들이 해독하고 공개한 [14]소프트웨어 프로그램에 부착함으로써 자신과 그들의 기술을 홍보하기 시작했다.기술 경쟁이 균열의 어려움에서 시각적으로 놀라운 내면을 창조하는 어려움으로 확대되자 데모센으로 알려진 새로운 하위 문화의 토대가 마련되었습니다.데모센은 1990년대부터 불법적인 "와레즈 장면"에서 벗어나기 시작했고 지금은 완전히 다른 하위 문화로 여겨지고 있다.많은 소프트웨어 크래커는 나중에 매우 유능한 소프트웨어 리버스 엔지니어로 성장했습니다.크래킹 보호에 필요한 어셈블리에 대한 깊은 지식을 바탕으로 드라이버를 리버스 엔지니어링하여 Windows용 바이너리 전용 드라이버에서 Linux 기타 운영 체제용 소스 코드를 가진 드라이버로 이식할 수 있습니다.또한 음악과 게임 인트로가 게임에 필수적인 부분이었기 때문에 하드웨어가 가정용 사용자에게 합리적인 가격으로 제공되면서 음악 형식과 그래픽이 매우 인기를 끌었다.

인터넷의 발달과 함께 소프트웨어 크래커는 비밀스러운 온라인 조직을 발전시켰다.90년대 후반, "소프트웨어 보호 역전"에 대한 가장 존경받는 정보 출처 중 하나는 Fraavia의 웹사이트였습니다.

+HCU

High Crack University(+HCU)는 리버스 엔지니어링의 천재이자 RCE의 전설적 인물로 꼽히는 올드 레드 크래커(+ORC)가 Reverse Code Engineering(RCE; 리버스 코드 엔지니어링) 연구를 추진하기 위해 설립한 대학이다.그는 또한 이 주제에 관한 많은 논문들을 가르치고 저술했으며, 그의 텍스트는 그 분야의 고전으로 여겨져 [15]RCE 학생들에게 필수 읽기이다.

리버서(reverseer)라는 닉네임 앞에 "+" 기호를 추가하면 +HCU의 멤버십을 의미합니다.+HCU의 학생 중에는 세계 [15]유수의 Windows Reversor가 있었습니다.+HCU는 매년 새로운 리버스 엔지니어링 문제를 발표하여 소수의 응답자가 대학 [15]학부 자격을 취득했습니다.

+Fravia는 +HCU의 교수였습니다.Fraavia의 웹사이트는 "+Fraavia의 Reverse Engineering 페이지"로 알려져 있으며, 그는 프로그래머와 더 넓은 사회에 "부패하고 만연한 물질주의의 세뇌"에 도전하기 위해 그것을 사용했습니다.전성기에 그의 웹사이트는 매년 수백만 명의 방문자를 받았고 그 영향력은 "전파적"[15]이었다.또한 +Fravia는 [16]후세를 위해 +HCU 학생들이 작성한 튜토리얼 데이터베이스도 관리하고 있습니다.

현재 +HCU 졸업생 대부분은 Linux로 이행하고 있으며 Windows 리버스로서 남아 있는 사람은 거의 없습니다.이 대학의 정보는 [15]이 분야의 새로운 연구 프로젝트를 시작한 RCE의 새로운 세대의 연구원들과 실무자들에 의해 재발견되었다.

방법들

가장 일반적인 소프트웨어 크랙은 프로그램 실행에서 특정 키 분기를 발생시키거나 방지하기 위해 응용 프로그램의 바이너리를 수정하는 것입니다.이것은 Soft와 같은 디버거를 사용하여 컴파일된 프로그램 코드를 리버스 엔지니어링함으로써 실현됩니다.소프트웨어 크래커가 소프트웨어를 보호하는 주요 방법을 포함하는 서브루틴에 도달할 때까지(또는 실행 파일을 [18]IDA 등의 프로그램으로 분해하여) ICE,[17] OlyDbg, GDB 또는 MacsBug실행합니다.그런 다음 이전 분기 운영 코드를 보완 또는 NOP 운영 코드로 대체하는 방식으로 디버거 또는 HIEW와 같은[19] 16진수 편집기사용하여 바이너리를 수정하여 키 분기가 항상 특정 서브루틴을 실행하거나 건너뜁니다.거의 모든 일반적인 소프트웨어 균열은 이 유형의 변형입니다.독점 소프트웨어 개발자들은 코드 난독화, 암호화 및 자체 수정 코드와 같은 기술을 지속적으로 개발하여 이러한 수정을 [20]더욱 어렵게 만들고 있습니다.이러한 조치를 취하더라도 개발자들은 소프트웨어 크래킹에 대처하기 위해 고군분투하고 있습니다.이는 프로페셔널이 크래킹된 단순한 EXE 또는 Retrium Installer를 공개적으로 공개하는 것이 일반적이기 때문에 경험이 부족한 사용자가 직접 소프트웨어를 크래킹할 필요가 없기 때문입니다.

이 기술의 구체적인 예로는 응용 프로그램의 시간 제한 시행에서 유효 기간을 제거하는 균열이 있습니다.이러한 균열은 보통 프로그램 실행 파일을 변경하는 프로그램이며 응용 프로그램에 링크된 .dll 또는 .so의 경우도 있습니다.원래 바이너리 파일을 변경하는 프로세스를 [21]패치라고 부릅니다.하드웨어 동글을 필요로 하는 소프트웨어에서도 유사한 균열이 발생할 수 있습니다.기업은 합법적으로 구입했지만 특정 하드웨어에 라이선스가 부여된 프로그램의 복사 보호를 해제할 수도 있습니다.이를 통해 하드웨어 장애로 인한 다운타임의 위험이 없어집니다(물론 구입한 하드웨어에서만 소프트웨어를 실행할 필요가 없습니다).

또 다른 방법은 CloneCD와 같은 특수 소프트웨어를 사용하여 상용 복사 방지 응용 프로그램의 사용을 검사하는 것입니다.애플리케이션 보호에 사용되는 소프트웨어를 검출하면, 다른 툴을 사용해 CD 또는 DVD 의 소프트웨어로부터 카피 보호를 해제할 수 있습니다.이것에 의해, Alcohol 120%, Clone DVD, Game Jackal, 또는 Daemon Tools등의 다른 프로그램이, 보호된 소프트웨어를 유저의 하드 디스크에 카피할 수 있습니다.스캔이 가능한 상용 복사 방지 애플리케이션으로는 SafeDisc 및 StarForce가 [22]있습니다.

또, 원래의 소스 코드 또는 머신 코드보다 높은 레벨의 코드에 액세스 하기 위해서, 프로그램을 디컴파일 할 수도 있습니다.이것은 스크립트 언어 및 JIT 컴파일을 사용하는 언어에서 가능한 경우가 많습니다.예를 들어 위의 균열(또는 디버깅)이 있습니다.요구를 충족시키기 위해 CIL을 조작하는 것을 검토할 수 있는 NET 플랫폼.Java의 바이트 코드도 플랫폼 종속 머신 [23]코드에서 실행되도록 프로그램이 컴파일되기 전에 중간 언어가 있는 것과 유사한 방식으로 작동합니다.

SecuROM, SafeDisc, StarForce 또는 Denuvo와 같은 보호를 위한 고급 리버스 엔지니어링에서는 크래커 또는 많은 크래커가 보호 검토에 더 많은 시간을 할애하여 보호 코드 내의 모든 결함을 찾아내고 실행 파일(.EXE) 및 라이브러리(.)에서 보호를 자동으로 "랩 해제"하도록 자체 도구를 코딩해야 합니다.DLL) 파일.

인터넷에는 인기 게임이나 애플리케이션을 위해 와레즈 그룹이 만든 크랙을 다운로드 할 수 있는 사이트가 다수 있다(단, 이러한 [24]사이트를 통해 배포되는 악성 소프트웨어를 입수할 위험이 있다).이러한 균열은 소프트웨어의 합법적 구매자에 의해 사용되지만, (대부분 P2P 네트워크를 통해) 부정 복사를 다운로드하거나 다른 방법으로 취득한 사람도 사용할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Kevelson, Morton (October 1985). "Isepic". Ahoy!. pp. 71–73. Retrieved June 27, 2014. The origin of the term probably lies in the activity burglars in the still of the night.
  2. ^ Tulloch, Mitch (2003). Microsoft Encyclopedia of Security (PDF). Redmond, Washington: Microsoft Press. p. 68. ISBN 0735618771. Archived from the original (PDF) on August 10, 2014. Retrieved July 20, 2014.
  3. ^ Craig, Paul; Ron, Mark (April 2005). "Chapter 4: Crackers". In Burnett, Mark (ed.). Software Piracy Exposed - Secrets from the Dark Side Revealed. Publisher: Andrew Williams, Page Layout and Art: Patricia Lupien, Acquisitions Editor: Jaime Quigley, Copy Editor: Judy Eby, Technical Editor: Mark Burnett, Indexer: Nara Wood, Cover Designer: Michael Kavish. United States of America: Syngress Publishing. pp. 75–76. doi:10.1016/B978-193226698-6/50029-5. ISBN 1-932266-98-4.
  4. ^ a b FLT (January 22, 2013). "The_Sims_3_70s_80s_and_90s_Stuff-FLT". This can be the only reason you have come to the conclusion that a modified startup flow is the same like the imitated behavior of a protection, like an EMU does it.
  5. ^ Shub-Nigurrath [ARTeam]; ThunderPwr [ARTeam] (January 2006). "Cracking with Loaders: Theory, General Approach, and a Framework". CodeBreakers Magazine. Universitas-Virtualis Research Project. 1 (1). A loader is a program able to load in memory and running another program.
  6. ^ Nigurrath, Shub (May 2006). "Guide on how to play with processes memory, writing loaders, and Oraculumns". CodeBreakers Magazine. Universitas-Virtualis Research Project. 1 (2).
  7. ^ FLT (September 29, 2013). "Test_Drive_Ferrari_Legends_PROPER-FLT". Test.Drive.Ferrari.Racing.Legends-SKIDROW was released with a "Loader" and not a cracked exe. This is why you see the original exe renamed to "TDFerrari_o.exe". As this is not allowed and in this case considerably slows down the game with Xlive messages while starting and playing the game, you can see why we have included a proper cracked.
  8. ^ SKIDROW (January 21, 2013). "Test.Drive.Ferrari.Racing.Legends.Read.Nfo-SKIDROW". Yes our "method" is a loader and our competitors have used the same method for "cracking" xlive games like this.
  9. ^ "Batman.Arkham.City-FiGHTCLUB nukewar". December 2, 2011. Archived from the original on September 13, 2014. UNNUKED: game.plays.full no.issues crack.is.fine no.single.byte.patch.used protection.bypass.means.not.active.means.removed protection.does.not.kick.in.at.any.point this.or.removal.makes.no.difference [ZoNeNET]
  10. ^ Cheng, Jacqui (September 27, 2006). "Microsoft files lawsuit over DRM crack". Ars Technica.
  11. ^ Fravia (November 1998). "Is reverse engineering legal?". Archived from the original on March 5, 2022.
  12. ^ Pearson, Jordan (July 24, 2017). "Programmers Are Racing to Save Apple II Software Before It Goes Extinct". Motherboard. Archived from the original on September 27, 2017. Retrieved January 27, 2018.
  13. ^ "What Motivates Software Crackers?" (PDF). Sigi Goode and Sam Cruise, Australian National University, Journal of Business Ethics (2006).
  14. ^ Reunanen, Markku; Wasiak, Patryk; Botz, Daniel (March 26, 2015). "Crack Intros: Piracy, Creativity and Communication". International Journal of Communication. 9: 20. ISSN 1932-8036.
  15. ^ a b c d e Cyrus Peikari; Anton Chuvakin (January 12, 2004). Security Warrior. "O'Reilly Media, Inc.". p. 31. ISBN 978-0-596-55239-8.
  16. ^ Vianello, Francesco. "Academy Home Page". Fravia's archive pages of reverse engineering. Retrieved May 17, 2022.
  17. ^ Ankit, Jain; Jason, Kuo; Jordan, Soet; Brian, Tse (April 2007). "Software Cracking (April 2007)" (PDF). The University of British Columbia - Electrical and Computer Engineering. Retrieved January 27, 2018. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  18. ^ Cerven, Pavol (2002). Crackproof Your Software: Protect Your Software Against Crackers. ISBN 1-886411-79-4.
  19. ^ "Protecting Software Codes By Guards" (PDF). Hoi Chang, Mikhail J. Atallah, CERIAS, Purdue University (2001).
  20. ^ Reverse engineering code with IDA Pro. Justin Ferguson, Dan Kaminsky. Burlington, MA: Syngress Pub. 2008. ISBN 978-0-08-055879-0. OCLC 272383172.{{cite book}}: CS1 유지보수: 기타 (링크)
  21. ^ Eilam, Eldad (2005). Reversing : secrets of reverse engineering. Elliot J. Chikofsky. Indianapolis, IN: Wiley. ISBN 0-7645-9768-X. OCLC 80242141.
  22. ^ "Gamecopyworld Howto".
  23. ^ "A Survey of Reverse Engineering Tools for the 32-Bit Microsoft Windows Environment" (PDF). RAYMOND J. CANZANESE, JR., MATTHEW OYER, SPIROS MANCORIDIS, MOSHE KAM, Drexel University, USA.
  24. ^ McCandless, David (April 1, 1997). "Warez Wars". Wired. ISSN 1059-1028. Retrieved February 4, 2020.