How to crack any software

Software cracking là gì?

Khái niệm Software cracking chỉ dễ dàng và đơn giản là việc sửa tuyệt can thiệp vào ứng dụng như thế nào kia nhằm mục đích mục tiêu có được license (giấy phép) hay đào thải module khám nghiệm license của nó nhằm rất có thể áp dụng tương đối đầy đủ các chức năng một giải pháp ko chính thức. Do đó, các kiến thức và kỹ năng xây dựng về tối thiểu là vấn đề tận hưởng bắt buộc bao gồm. Lúc triển khai bài toán craông xã phần mềm, chúng ta đã thực hiện một kỹ thuật được Điện thoại tư vấn là reverse engineering (dịch ngược ứng dụng qua 1 nhiều loại ngôn từ làm sao đó - như assembly chẳng hạn) với khai quật lỗ hổng của chính nó để viết crack, path, keygene, ...!

Bây tiếng họ đang đi kiếm hiểu một trong những có mang cơ bản của sự việc này nhé !

Software protection và licensing

Một software sau khoản thời gian được chỉ dẫn Thị Trường với mục tiêu thương mại thì luôn luôn được cách xử lý nhằm nhằm mục đích tránh Việc ăn cắp bản quyền gây thiệt sợ mang đến nhà cung cấp. Vậy, câu hỏi cách xử trí này được tiến hành như vậy nào? Nó là 1 module bé dại nhằm mục tiêu xác minh tính hòa bình của rất nhiều ai đó đã mua sản phẩm này. Có thể hotline nó là module protect license.

You watching: How to crack any software

Module này có khá nhiều hiệ tượng trở thành hoá nhằm ngăn ngừa tới mức về tối nhiều việc xâm phạm bạn dạng quyền (bao hàm câu hỏi thực hiện phần mềm ở tại mức độ ko được sự được cho phép ở trong nhà phân phối, hoặc ăn cắp các giải mã nhằm code lại ứng dụng không giống nhằm mục tiêu cạnh trạnh, ...)! Mình đang trình làng một số trong những kiểu dáng bảo vệ bạn dạng quyền phần mềm thịnh hành nhé.

Serial: Là một chuỗi ký tự mà phần mềm thưởng thức bạn nhtràn vào để ĐK phần mềm đó nhằm có thể áp dụng vừa đủ những kĩ năng và không xẩy ra giới hạn thời hạn áp dụng. Và những chuỗi serial này phụ thuộc vào tiêu chuẩn và sắp đặt riêng rẽ của những công ty cung ứng. Và trong chính phiên bản thân nhiều loại này cũng rất được phân các loại theo rất nhiều bề ngoài không giống nhau như:Số serial là 1 trong quý hiếm cố định và thắt chặt được lưu ở một hằng số làm sao đó vào phần mềm. lúc bạn ĐK (mua) thì sẽ được hỗ trợ chuỗi này để ĐK phần mềm.Số serial phụ thuộc vào thông tin đăng ký nhỏng tên, email, ... Nó đang dựa vào vào những quý hiếm này nhằm tính tân oán ra một số serial phù hợp cùng với nó.Số serial nhờ vào vào biết tin laptop mua nó nlỗi những thông số sản phẩm công nghệ, thông số phần cứng, ... Và cùng với dạng này, mỗi license chỉ áp dụng được độc nhất bên trên một laptop. Điển hình là Windows, khi bạn chuyển đổi phần cứng thì serial cũ nhưng các bạn vẫn sử dụng trước đó sẽ không sử dụng được nữa.Số serial được bình chọn online. Về bản chất, nó cũng giống những các loại serial không giống, nhưng sử dụng hiệ tượng kết nối cho tới server của nhà thêm vào, dìm lên tiếng trả về nhằm đăng ký phần mềm. Phổ phát triển thành với quen thuộc độc nhất vô nhị của hình dạng này là phần mềm IDM (Internet Download Manager) cùng Windows.

Còn các một số loại bảo đảm nữa, nhưng mà vị giới hạn của kỹ năng bản thân, cần mình chỉ xin phxay ra mắt mấy loại trên thôi nhé ! Giờ chúng ta sẽ đi kiếm đọc những đẳng cấp crack không còn xa lạ nhé.

Keygen (Key generator): Là một chương trình nhỏ dại tạo nên số serial nhằm đăng mang đến phần mềm. Được viết vì các cracker sau khoản thời gian đang tìm ra phương pháp tính toán số serial của phần mềm đó.Path: Là một chương trình tác động ảnh hưởng vào phần mềm nguồn (sửa chữa thay thế kết cấu, mã nguồn) nhằm mục tiêu đăng ký mà không cần phải đi qua bước nhập số serialREG File: Là một tệp tin cùng với phần không ngừng mở rộng là .reg (registry). khi chạy tệp tin này, nó vẫn phân phối Registry của Windows các biết tin cần thiết nhằm ĐK phần mềm.Loader: Là một dạng chương trình chạy trước chương trình bắt buộc ĐK mỗi một khi áp dụng nó. Nó đã biến hóa lịch trình thành đã có được đăng kí, với mỗi lần sử dụng yêu cầu lại đề nghị chạy loader trước.Key Maker: Là công tác tạo thành tệp tin đăng ký của riêng từng lịch trình (dạng .key chẳng hạn). Và điển hình nổi bật của các loại này là thằng WinRAR !Cracked .exe pháo file: Là tệp tin triển khai của ứng dụng đã bị bẻ khóa sẵn, ta buộc phải ghi đè nó lên file .exe gốc của ứng dụng nhằm áp dụng.

Bây tiếng bản thân vẫn ra mắt một vài hình thức thường xuyên được áp dụng nhằm thực hiện công việc này nhé.

W32Dasm: Giúp bọn họ dịch ngược file exe pháo, dll, com, ... sang mã assembly. Mình dùng thằng này với mục tiêu đảo ngược đoạn mã đánh giá serial (tự nếu như đúng đang thành ĐK phiên bản quyền quý phái sai cũng được gật đầu đồng ý (hehe)).OllyDbg: Cũng như thể cùng với W32Dasm, cơ mà nó có rất nhiều biết tin chi tiết hơn kế bên mã assemblgiống hệt như CPU, FPU, Stack, Memory, ... Mình dùng nó với mục đích tra cứu số serial chứ đọng chưa phải hòn đảo ngược quá trình kiểm tra.PEiD: Giúp bạn detect loại packer nhưng ứng dụng thực hiện. Ngoài ra, giả dụ file không biến thành paông xã thì nó đang cho chính mình biết rằng phần mềm này sử dụng ngôn từ gì!HIEW: Giúp các bạn xem và sửa mã hex của chương trình yêu cầu bẻ khoá.

See more: Download Idm 6 - Download The Latest Crack Idm 6

Tiếp theo, mình vẫn giới thiệu một vài lệnh và thông tư căn bản của Assembly để một thể cho bài toán những chúng ta cũng có thể gọi trong phần thực hành thực tế nho nhỏ tiếp đây nhoé !

Assembly

Các chỉ thị cnạp năng lượng bản:

MOV dest, src: Chuyển quý giá từ toán hạng nguồn vào toán hạng đíchPUSH src: Cất cực hiếm toán hạng nguồn vào đỉnh ngăn uống xếpPOP. dest: Chuyển giá trị từ đỉnh ngăn uống xếp vào toán hạng đíchLEA reg, mem: Đưa địa chỉ Offmix của toán hạng nguồn vào tkhô cứng ghi đíchĐịa Chỉ dest, src: Cộng toán hạng nguồn và đích. Kết quả lưu giữ ở toán hạng đíchSUB dest, src: Trừ toán hạng nguồn và đích. Kết quả lưu giữ ở toán hạng đíchMUL dest, src: Nhân toán hạng nguồn và đích. Kết quả lưu ở toán hạng đíchDIV dest, src: Chia toán hạng nguồn và đích. Kết quả giữ ở toán hạng đíchINC dest: Tăng 1 cho toán hạng đíchNOT dest: Đảo bitAND dest, src: Phép và xúc tích và ngắn gọn giữa toán hạng đích và nguồn. Kết quả trả về ở toán hạng đíchOR dest, src: Phnghiền hoặc logicTEST dest, src: So sánh nội dung 2 toán hạng qua phép toán AND. Kết quả tác động đến các cờ

Một số câu lệnh nhảy tất cả ĐK cơ bản:

JA: Jump if aboveJAE: Jump if above or equalJB: Jump if belowJBE: Jump if below or equalJE: Jump if equalJNE: Jump if not equalJZ: Jump if zeroJNZ: Jump if not zeroJMP: Jump Unconditionally

Sang phần tiếp theo sau, Think lớn crack nhé !

Think to crack

Nhỏng sẽ trình làng ở trên, ứng dụng thương thơm mại Khi được xây dựng sẽ sở hữu được phần đa module protect license khác biệt. Và vấn đề sinh sống đây là làm thế nào chúng ta cũng có thể qua được phần lớn module này nhằm có thể thực hiện công tác một cách rất đầy đủ độc nhất vô nhị. Để được điều đó, bọn họ rất cần phải đọc module protect sẽ là nhiều loại gì, nó ra mắt ra làm sao vào công tác khi nó được thực hiện. Để có thể gọi được như thế, câu hỏi họ buộc phải làm cho là bắt buộc gọi nó để rút ra được phương pháp cản lại chủ yếu nó.

Việc phát âm quy trình này đang dễ ợt nếu nhỏng họ bao gồm source code của phần mềm đó trong tay. Nhưng thực tiễn thì ko khả thi vày không người nào cung ứng mang đến chúng ta sản phẩm đấy cả )! Vì vậy, chúng ta vẫn đề nghị gọi nó ở một dạng ngữ điệu khác, chính là Assembly - một dạng ngôn ngữ thứ. Sau khi dịch ngược phần mềm quý phái mã sản phẩm công nghệ, họ vẫn trace đến module protect này. Và phần này cực kỳ nhiều chủng loại bắt buộc chúng ta cần được năng động đổi khác hướng phía giải quyết và xử lý nhằm tương xứng với những trường vừa lòng ví dụ.

Rút ít gọn gàng lại, bọn họ vẫn làm cho rất nhiều bước bao gồm nhỏng sau: Tìm cách mix breakpoint (bản thân đang trình làng nó sau) tự những API thông dụng của Windows như: GetWindowTextA, GetDlgItemTextA, MessageBoxA. Vì sao vậy? Vì vào đa số trường phù hợp nhập thông báo ĐK phần mềm vào thì lịch trình luôn rước đông đảo công bố ta nhập (GetWindowTextA, GetDlgItemTextA), kế tiếp soát sổ cùng trả về thông tin (MessageBoxA, MeesageBeep) của các thông báo đó là đúng tốt không đúng. Vì vậy, với biện pháp này, họ sẽ tới được tức thì trước quá trình cách xử lý thông báo nhưng mà chúng ta đang nhập (tức là trcầu khi module protect license được gọi). Hoặc đơn giản rộng là chúng ta thực hiện câu thông báo trả về (như: "Invalid serial number") để lần ngược về quá trình cách xử trí của nó. Hoặc một trong những API không giống như: RegQueryValue, RegOpenKeyExA, ReadFile, ... để cách xử lý cùng với ngôi trường thích hợp dùng RegKey giỏi KeyFile.

Breakpoint: tốt còn gọi là "điểm ngắt" - Có nghĩa là ngắt (tuyệt dừng) một các bước đã hoạt động tại một vị trí nào đó, từ bỏ đó rất có thể kết xuất cực hiếm của một vài ba hoặc toàn bộ các trở thành của chương trình. Điểm ngắt còn hoàn toàn có thể được cấu hình thiết lập vì các thiết kế viên như là một trong những sự cửa hàng cùng với phương pháp tháo gỡ. Nói phổ biến điểm ngắt được sử dụng để dừng lại quy trình triển khai của một công tác.

Okie, định hướng suông cụ đủ rồi. Bây giờ đồng hồ bọn họ đã thực hành thực tế xíu nhé ! Đối tượng đem ra thực hành vẫn là ứng dụng Sweet MIDI Player 2.6.7, có giá là 14.95$. Với phần mềm này, nó áp dụng chính sách sinh mã serial theo User ID mang lại từng sản phẩm công nghệ. Chúng ta đã đi tìm kiếm số serial phù hợp nhằm đăng ký nhé. Mình đã cần sử dụng OllyDbg để thực hiện bài toán này. Trước hết, bọn họ sở hữu về, cài đặt và chạy hệt như thông thường. Bụp, một vỏ hộp thoại bắt ta nhập Password dựa vào User ID mà lại nó gửi mang đến. Tất nhiên, họ cứ đọng nhập bừa vào (Xác Suất chính xác là 1/∞) để thấy message nó phun ra ra làm sao.

See more: Mouse And Keyboard Recorder Phần Mềm Ghi Lại Thao Tác, Mouse And Keyboard Recorder

OK, ghi nhớ rước message đó (Not a valid password)! Chúng ta tắt công tác này đi. Msinh hoạt nó lên bởi OllyDbg. Tiếp theo, nhận F9 để chạy công tác, rồi nháy yêu cầu con chuột vào khung CPU rồi lựa chọn Search for -> All referenced text string

Trong cửa sổ Text string referenced in Swmipl32, bọn họ tìm đến đoạn string "Not a valid password!". Lúc tìm thấy, họ lựa chọn nó rồi nhấn Enter. Khi đó, bọn họ vẫn ở khu vực cất đoạn text trên (0132E289 - hoặc hoàn toàn có thể không giống Khi ở trang bị của những người). Đôi khi, chúng ta chỉ cần lần ngược lên trên, tìm về đoạn nào có lệnh JE (hoặc JNE) rồi hòn đảo ngược bọn chúng nó lại (JE -> JNE với JNE -> JE), chạy ứng dụng và đăng ký với lên tiếng ltinh tinh, hoàn toàn có thể vẫn thành công xuất sắc. Về cơ bạn dạng, thằng này cũng như vậy, chúng ta chỉ việc đi lên bên trên một chút sẽ thấy đoạn:

0132E23C 74 4B JE SHORT Swmipl32.0132E289rồi double click vào, sửa JE thành JNE và bnóng F9 một đợt nữa để chạy lại cùng ĐK là hoàn thành, nhưng lại nó trải nghiệm chúng ta cần khởi hễ lại ứng dụng, và nó đã kiểm soát số serial kia khi nó được khởi động lại -> vẫn chưa phù hợp lệ. Vì vậy, họ cần phải đi tìm kiếm số serial thiệt sự của nó. OK, trở lại liên hệ 0132E289. Chúng ta đã đặt breakpoint tại trên đây, vào OllyDbg, nhấn F2 để tại vị (tắt - toggle) breakpoint. Sau khi để dứt, họ thừa nhận F9 nhằm chạy chương trình. Nhập password vào với bnóng ĐK, kho đó sẽ không còn mở ra thông báo invalid password nữa, mà chúng ta đã dừng lại ở khu vực 0132E289 vì chưng chúng ta sẽ đặt breakpoint sinh hoạt kia. Tiếp theo, bọn họ nhận F8 nhằm step over vào hàm giải pháp xử lý đoạn này, chú ý xuống góc mặt phải của OllyDbg, bọn họ sẽ thấy:

Okie, cuộn chuột lên ở trên một chút ít, họ thấy hàng số nhưng bản thân nhập vào (123456) xuất hiện thêm tại đây. Có cơ may rồi, cuộn tiếp, biết đâu chúng ta sẽ tới được đoạn cơ mà nó vẫn đối chiếu chuỗi đúng cùng với chuỗi của bọn họ (hehe)! Vâng, quả như, chỉ lên thêm một ít với họ đang chạm chán chuỗi của chính mình cùng chuỗi của mình. Không chỉ một, nhưng không ít (cuoideu)!

Lấy thử chuỗi này (BA053FE6) để đăng ký xem sao nhé. Tiếp tục nhấn F9 nhằm chạy tiếp, bọn họ nhập lại mẫu chuỗi vừa kiếm được xem sao. Olala, được rồi này (haha)!

Giờ test khởi hễ lại phần mềm coi nó gồm hỏi nữa ko nhé (cuoideu)!

Lời kết

Vì quan niệm crachồng này không thể lý giải và reviews hết vào một nội dung bài viết được. Nên mình chỉ xin phnghiền trình làng hầu hết có mang căn phiên bản của nó. Và cũng một phần là do kỹ năng và kiến thức của bản thân mình vẫn còn đó thuôn đề xuất thiết yếu truyền thiết lập được hết trong bài viết này. Mong đầy đủ người thông cảm.

Bài viết này share không nhằm mục tiêu cùng với mục đích tuyên truyền việc sử dụng phần mềm không có bản quyền. Bài viết chỉ share với mục đích tò mò về nghệ thuật reverse engineering cùng bảo mật phần mềm. Xin cảm ơn!