Editing Software cracking
Content that violates any copyrights will be deleted. Encyclopedic content must be verifiable through citations to reliable sources.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
}} |
}} |
||
'''Software cracking''' (known as "breaking" mostly in the 1980s<ref name="kevelson198510">{{cite news | url=https://archive.org/stream/Ahoy_Issue_22_1985-10_Ion_International_US#page/n71/mode/2up |title=Isepic |work=Ahoy! |date=October 1985 |access-date=27 June 2014 |first=Morton |last=Kevelson |pages=71–73 |quote=The origin of the term probably lies in the activity burglars in the still of the night.}}</ref>) is an act of removing [[copy protection]] from a software.<ref name="Goode 2006"/> Copy protection can be removed by applying a specific ''crack''. A ''crack'' can mean any tool that enables breaking software protection, a stolen product key, or guessed password. Cracking software generally involves circumventing licensing and usage restrictions on commercial software by illegal methods. These methods can include modifying code directly through disassembling and bit editing, sharing stolen product keys, or developing software to generate activation keys.<ref>{{cite book|last1=Tulloch|first1=Mitch|title=Microsoft Encyclopedia of Security|date=2003|publisher=Microsoft Press|location=Redmond, Washington|isbn=0735618771|page=68|url=http://examples.oreilly.de/english_examples/9780735622180/cd_contents/Encyclopedia/EncySecur.pdf|access-date=July 20, 2014|archive-date=August 10, 2014|archive-url=https://web.archive.org/web/20140810105820/http://examples.oreilly.de/english_examples/9780735622180/cd_contents/Encyclopedia/EncySecur.pdf|url-status=dead}}</ref> Examples of ''crack''s are: applying a ''[[patch (computing)|patch]]'' or by creating reverse-engineered serial number generators known as ''[[keygen]]s'', thus bypassing software registration and payments or converting a trial/demo version of the software into fully-functioning software without paying for it.<ref name="Kammerstetter 2012">{{Cite |
'''Software cracking''' (known as "breaking" mostly in the 1980s<ref name="kevelson198510">{{cite news | url=https://archive.org/stream/Ahoy_Issue_22_1985-10_Ion_International_US#page/n71/mode/2up |title=Isepic |work=Ahoy! |date=October 1985 |access-date=27 June 2014 |first=Morton |last=Kevelson |pages=71–73 |quote=The origin of the term probably lies in the activity burglars in the still of the night.}}</ref>) is an act of removing [[copy protection]] from a software.<ref name="Goode 2006"/> Copy protection can be removed by applying a specific ''crack''. A ''crack'' can mean any tool that enables breaking software protection, a stolen product key, or guessed password. Cracking software generally involves circumventing licensing and usage restrictions on commercial software by illegal methods. These methods can include modifying code directly through disassembling and bit editing, sharing stolen product keys, or developing software to generate activation keys.<ref>{{cite book|last1=Tulloch|first1=Mitch|title=Microsoft Encyclopedia of Security|date=2003|publisher=Microsoft Press|location=Redmond, Washington|isbn=0735618771|page=68|url=http://examples.oreilly.de/english_examples/9780735622180/cd_contents/Encyclopedia/EncySecur.pdf|access-date=July 20, 2014|archive-date=August 10, 2014|archive-url=https://web.archive.org/web/20140810105820/http://examples.oreilly.de/english_examples/9780735622180/cd_contents/Encyclopedia/EncySecur.pdf|url-status=dead}}</ref> Examples of ''crack''s are: applying a ''[[patch (computing)|patch]]'' or by creating reverse-engineered serial number generators known as ''[[keygen]]s'', thus bypassing software registration and payments or converting a trial/demo version of the software into fully-functioning software without paying for it.<ref name="Kammerstetter 2012">{{Cite journal |last1=Kammerstetter |first1=Markus |last2=Platzer |first2=Christian |last3=Wondracek |first3=Gilbert |date=2012-10-16 |title=Vanity, cracks and malware: insights into the anti-copy protection ecosystem |url=https://dl.acm.org/doi/10.1145/2382196.2382282 |journal=Proceedings of the 2012 ACM Conference on Computer and Communications Security |language=en |location=Raleigh North Carolina USA |publisher=ACM |pages=809–820 |doi=10.1145/2382196.2382282 |isbn=978-1-4503-1651-4|s2cid=3423843 }}</ref> Software cracking contributes to the rise of [[online piracy]] where pirated software is distributed to end-users<ref name="Goode 2006"/> through filesharing sites like [[BitTorrent]], [[File hosting service#One-click hosting|One click hosting]] (OCH), or via [[Usenet]] downloads, or by downloading bundles of the original software with cracks or keygens.<ref name="Kammerstetter 2012"/> |
||
Some of these tools are called [[keygen]], [[Patch (computing)|patch]], [[Loader (computing)|loader]], or [[no-disc crack]]. A keygen is a handmade product serial number generator that often offers the ability to generate working serial numbers in your own name. A patch is a small computer program that modifies the machine code of another program. This has the advantage for a cracker to not include a large executable in a release when only a few bytes are changed.<ref name=Craig2005>{{cite book |last1=Craig |first1=Paul |last2=Ron |first2=Mark |editor1-first=Mark |editor1-last=Burnett |others=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 |title=Software Piracy Exposed - Secrets from the Dark Side Revealed |date=April 2005 |publisher=Syngress Publishing |location=United States of America |isbn=1-932266-98-4 |doi=10.1016/B978-193226698-6/50029-5 |pages=[https://archive.org/details/softwarepiracyex0000crai/page/75 75–76] |chapter=Chapter 4: Crackers |chapter-url=https://archive.org/details/softwarepiracyex0000crai/page/75 }}</ref> A loader modifies the startup flow of a program and does not remove the protection but circumvents it.<ref name="flt-flow" /><ref name="cbm-loaders">{{cite journal|author1=Shub-Nigurrath [ARTeam]|author2=ThunderPwr [ARTeam]|date=January 2006|title=Cracking with Loaders: Theory, General Approach, and a Framework|journal=CodeBreakers Magazine|publisher=Universitas-Virtualis Research Project|volume=1|issue=1|quote=A loader is a program able to load in memory and running another program.}}<!-- http://www.codebreakers-journal.com --> |
Some of these tools are called [[keygen]], [[Patch (computing)|patch]], [[Loader (computing)|loader]], or [[no-disc crack]]. A keygen is a handmade product serial number generator that often offers the ability to generate working serial numbers in your own name. A patch is a small computer program that modifies the machine code of another program. This has the advantage for a cracker to not include a large executable in a release when only a few bytes are changed.<ref name=Craig2005>{{cite book |last1=Craig |first1=Paul |last2=Ron |first2=Mark |editor1-first=Mark |editor1-last=Burnett |others=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 |title=Software Piracy Exposed - Secrets from the Dark Side Revealed |date=April 2005 |publisher=Syngress Publishing |location=United States of America |isbn=1-932266-98-4 |doi=10.1016/B978-193226698-6/50029-5 |pages=[https://archive.org/details/softwarepiracyex0000crai/page/75 75–76] |chapter=Chapter 4: Crackers |chapter-url=https://archive.org/details/softwarepiracyex0000crai/page/75 }}</ref> A loader modifies the startup flow of a program and does not remove the protection but circumvents it.<ref name="flt-flow" /><ref name="cbm-loaders">{{cite journal|author1=Shub-Nigurrath [ARTeam]|author2=ThunderPwr [ARTeam]|date=January 2006|title=Cracking with Loaders: Theory, General Approach, and a Framework|journal=CodeBreakers Magazine|publisher=Universitas-Virtualis Research Project|volume=1|issue=1|quote=A loader is a program able to load in memory and running another program.}}<!-- http://www.codebreakers-journal.com --> |
||
Line 37: | Line 37: | ||
==Methods== |
==Methods== |
||
The most common software crack is the modification of an application's binary to cause or prevent a specific key branch in the program's execution. This is accomplished by [[reverse engineering]] the compiled program code using a [[debugger]] such as [[SoftICE]],<ref>{{cite journal|last1=Ankit|first1=Jain|last2=Jason|first2=Kuo|last3=Jordan|first3=Soet|last4=Brian|first4=Tse|title=Software Cracking (April 2007)|date=April 2007|url=https://courses.ece.ubc.ca/cpen442/previous_years/2007_1_spring/modules/term_project/reports/2007/software_cracking.pdf|access-date=27 January 2018|publisher=The University of British Columbia - Electrical and Computer Engineering|archive-date=March 19, 2018|archive-url=https://web.archive.org/web/20180319101416/http://courses.ece.ubc.ca/cpen442/previous_years/2007_1_spring/modules/term_project/reports/2007/software_cracking.pdf|url-status=live}}</ref> [[OllyDbg]], [[GDB]], or [[MacsBug]] until the software cracker reaches the [[subroutine]] that contains the primary method of protecting the software (or by [[disassembler|disassembling]] an executable file with a program such as [[Interactive Disassembler|IDA]]).<ref>{{cite book |last=Cerven |first=Pavol |date=2002 |isbn=1-886411-79-4 |title=Crackproof Your Software: Protect Your Software Against Crackers |
The most common software crack is the modification of an application's binary to cause or prevent a specific key branch in the program's execution. This is accomplished by [[reverse engineering]] the compiled program code using a [[debugger]] such as [[SoftICE]],<ref>{{cite journal|last1=Ankit|first1=Jain|last2=Jason|first2=Kuo|last3=Jordan|first3=Soet|last4=Brian|first4=Tse|title=Software Cracking (April 2007)|date=April 2007|url=https://courses.ece.ubc.ca/cpen442/previous_years/2007_1_spring/modules/term_project/reports/2007/software_cracking.pdf|access-date=27 January 2018|publisher=The University of British Columbia - Electrical and Computer Engineering|archive-date=March 19, 2018|archive-url=https://web.archive.org/web/20180319101416/http://courses.ece.ubc.ca/cpen442/previous_years/2007_1_spring/modules/term_project/reports/2007/software_cracking.pdf|url-status=live}}</ref> [[OllyDbg]], [[GDB]], or [[MacsBug]] until the software cracker reaches the [[subroutine]] that contains the primary method of protecting the software (or by [[disassembler|disassembling]] an executable file with a program such as [[Interactive Disassembler|IDA]]).<ref>{{cite book |last=Cerven |first=Pavol |date=2002 |isbn=1-886411-79-4 |title=Crackproof Your Software: Protect Your Software Against Crackers}}</ref> The binary is then modified using the [[debugger]] or a [[hex editor]] such as [[HIEW]]<ref>{{cite web| url = https://www.cerias.purdue.edu/assets/pdf/bibtex_archive/bibtex_archive/2001-49.pdf| title = Protecting Software Codes By Guards| publisher = Hoi Chang, Mikhail J. Atallah, CERIAS, Purdue University (2001)| access-date = June 6, 2022| archive-date = March 10, 2023| archive-url = https://web.archive.org/web/20230310072122/https://www.cerias.purdue.edu/assets/pdf/bibtex_archive/bibtex_archive/2001-49.pdf| url-status = live}}</ref> or [[Machine code monitor|monitor]] in a manner that replaces a prior branching [[opcode]] with its complement or a [[NOP (code)|NOP]] [[opcode]] so the key branch will either always execute a specific [[subroutine]] or skip over it. Almost all common software cracks are a variation of this type. A region of code that must not be entered is often called a "bad boy" while one that should be followed is a "good boy".<ref name="Megabeets 2018 z717">{{cite web | title=Reversing a Self-Modifying Binary with radare2 | website=Megabeets | date=2018-01-14 | url=https://www.megabeets.net/reversing-a-self-modifying-binary-with-radare2/ | access-date=2023-06-29}}</ref> |
||
[[Proprietary software]] developers are constantly developing techniques such as [[code obfuscation]], [[encryption]], and [[self-modifying code]] to make binary modification increasingly difficult.<ref>{{Cite book |url=https://www.worldcat.org/oclc/272383172 |title=Reverse engineering code with IDA Pro |date=2008 |publisher=Syngress Pub |first1=Justin |last1=Ferguson |first2=Dan |last2=Kaminsky |isbn=978-0-08-055879-0 |location=Burlington, MA |oclc=272383172 |access-date=June 8, 2022 |archive-date=March 10, 2023 |archive-url=https://web.archive.org/web/20230310072141/https://www.worldcat.org/title/272383172 |url-status=live }}</ref> Even with these measures being taken, developers struggle to combat software cracking. This is because it is very common for a professional to publicly release a simple cracked EXE or Retrium Installer for public download, eliminating the need for inexperienced users to crack the software themselves. |
[[Proprietary software]] developers are constantly developing techniques such as [[code obfuscation]], [[encryption]], and [[self-modifying code]] to make binary modification increasingly difficult.<ref>{{Cite book |url=https://www.worldcat.org/oclc/272383172 |title=Reverse engineering code with IDA Pro |date=2008 |publisher=Syngress Pub |first1=Justin |last1=Ferguson |first2=Dan |last2=Kaminsky |isbn=978-0-08-055879-0 |location=Burlington, MA |oclc=272383172 |access-date=June 8, 2022 |archive-date=March 10, 2023 |archive-url=https://web.archive.org/web/20230310072141/https://www.worldcat.org/title/272383172 |url-status=live }}</ref> Even with these measures being taken, developers struggle to combat software cracking. This is because it is very common for a professional to publicly release a simple cracked EXE or Retrium Installer for public download, eliminating the need for inexperienced users to crack the software themselves. |