Posted by: moonbaby Dec 19 2003, 12:33 AM Homepage : URL http://www.southbaypc.com/download/FVSetup.exe Production : South Bay Software FolderView 1.9 Copyright by : Copyright © 2000-2
Trang 1Posted by: moonbaby Dec 19 2003, 12:33 AM
Homepage : URL http://www.southbaypc.com/download/FVSetup.exe Production : South Bay Software ( FolderView 1.9 )
Copyright by : Copyright © 2000-2003 All Rights Reserved
Cracked File : FolderView.exe ( Microsoft Visual C++ 6.0 )
Type : Name/Serials
Packed : N / A
Crack Tool : OllyDbg 1.09d, Hex Workshop 4.1, W32dsmv10
Unpack Tool : N / A
Carried Out : Get Correct Serials
Note : None
About FolderView 1.9
FolderView lets you view the contents of any folder on your computer, and then print it out or save it to a text file on disk This is very convenient for times when you need to send someone the contents of a directory You can simply attach the saved file to an e-mail and send it the other person The directory contents can be sorted by name, file size, file type, or date modified FolderView even gives you information on your MP3s, such as the artist, song title, length of the song, and more!
-
>> >> Chương trình này có thể tiến hành theo hai cách, Patch hoặc tìm ra
số Serial thực
>> Dùng PeiD kiểm tra, biết chương trình này được viết bằng Microsoft Visual C++ 6.0
>> Dùng W32dsmv10 mở chương trình, lục tìm trong dãy chuỗi, ta thấy dòng
"Sorry, you have entered an incorrect " từ đó truy ra địa chỉ là 00408320
Trang 2>> Dùng Olly load chương trình lên, chuyển đến đây
00408320 68 405B4100 PUSH FOLDERVI.00415B40 ; |Text = "Sorry, you have entered an incorrect registration code."
>>>> >>>> Cách thứ nhất : Patch
>>>> Trace chương trình lên một đoạn, ta thấy đoạn mã lệnh sau :
004082CE 83C4 08 ADD ESP,8
004082D1 85C0 TEST EAX,EAX
004082D3 5F POP EDI
004082D4 74 43 JE SHORT FOLDERVI.00408319 < === Patch here
Để Patch chương trình ta chuyển JE thành JNZ Sau khi chuyển thì mã 74
43 chuyển thành 75 43 Vào Hex Workshop 4.1, tìm đến đây, và chuyển lại mã
============ > Quá trình PATCH đã tiến hành xong
>>>> >>>> Cách thứ hai : TÌM SỐ SERIAL ĐÚNG
>>>> Trace lên một chút, ta thấy hai câu lệnh GetDlgItemTextA, đặt BreakPoint ở đây
004082A8 FFD7 CALL EDI ; \GetDlgItemTextA
004082BA FFD7 CALL EDI ; \GetDlgItemTextA
>> Trace xuống chút, ta thấy lệnh :
004082C9 E8 52030000 CALL FOLDERVI.00408620
>> Trace vào đây để đi đến đoạn mã hoá Khi vào trong, ta thấy câu lệnh sau :
00408630 | E8 AB000000 CALL FOLDERVI.004086E0
>>>> Trace vào tiếp, ta thấy tập lệnh mã hoá chuỗi :
>>>> Giai đoạn mã hoá chuỗi U nhập vào lần thứ nhất :
>> Kiểm tra xem chuỗi có được nhập vào hay không
Trang 300408717 | 85F6 TEST ESI,ESI < === ESI chứa chiều dài chuỗi U nhập
00408719 | 76 13 JBE SHORT FOLDERVI.0040872E
Chuyển giá trị ở địa chỉ 451B30 ( 32h ) vào EDX
0040871B | 8B15 305B4100 MOV EDX,DWORD PTR DS:[415B30] <
==== 32h
>> Đưa từng ký tự của chuỗi nhập vào EBX
00408721 |> 0FBE1C38 /MOVSX EBX,BYTE PTR DS:[EAX+EDI]
>> EBX = EDX + EBX ==== > Kết quả lưu ở EBX
00408725 | 03DA |ADD EBX,EDX
>> ECX = ECX + EBX = > Kết quả lưu ở ECX = > ECX lưu kết quả cuối cùng của vòng lặp thứ nhất
00408727 | 03CB |ADD ECX,EBX
>> Tăng EAX lên 1 === > EAX là biến đếm của vòng lặp
00408729 | 40 |INC EAX
>> Kiểm tra dã xử lý hết chuỗi chưa, nếu chưa thì tiếp tục, còn không thì thoát
0040872A | 3BC6 |CMP EAX,ESI
0040872C |.^ 72 F3 \JB SHORT FOLDERVI.00408721
>>>> Quá trình của chỗi được viết lại :
1- Ký tự ban đầu + 32h ==== > Kết quả lưu ở ECX
2- Kết quả trước + ( ký tự kế + 32h ) ==== > Kết quả lưu ở ECX
3- Thoát khỏi vòng lặp thì ECX lưu giữ kết quả
>> Chuỗi thứ nhất có định dạng : XXXX-
00408735 | 51 PUSH ECX ; /<%u>
00408736 | 68 885B4100 PUSH FOLDERVI.00415B88 ; |Format =
"%u-"
>>>> Giai đoạn mã hoá chuỗi U nhập vào lần thư hai
00408749 | 85F6 TEST ESI,ESI
0040874B | 76 14 JBE SHORT FOLDERVI.00408761
0040874D | 8B15 345B4100 MOV EDX,DWORD PTR DS:[415B34] <
=== 28h
00408753 |> 0FBE2C38 /MOVSX EBP,BYTE PTR DS:[EAX+EDI]
00408757 | 0FAFEA |IMUL EBP,EDX
Trang 40040875A | 03CD |ADD ECX,EBP
0040875C | 40 |INC EAX
0040875D | 3BC6 |CMP EAX,ESI
0040875F |.^ 72 F2 \JB SHORT FOLDERVI.00408753
>>>> Quá trình của chỗi được viết lại :
4- Ký tự ban đầu x 28h ==== > Kết quả lưu ở EBP
5- Kết quả trước + ( ký tự kế x 28h ) ==== > Kết quả lưu ở ECX
6- Thoát khỏi vòng lặp thì ECX lưu giữ kết quả
>> Chuỗi thứ hai có định dạng : XXXX-
00408761 |> 51 PUSH ECX ; /<%u>
00408762 | 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14] ; |
00408766 | 68 885B4100 PUSH FOLDERVI.00415B88 ; |Format =
"%u-"
>> Hai chuỗi kết hợp có định dạng XXXX-XXXX-
00408779 | 52 PUSH EDX ; /StringToAdd
0040877A | 53 PUSH EBX ; |ConcatString
>>>> Giai đoạn mã hoá chuỗi U nhập vào lần thứ ba :
00408785 | 85F6 TEST ESI,ESI
00408787 | 76 13 JBE SHORT FOLDERVI.0040879C
00408789 | 8B15 385B4100 MOV EDX,DWORD PTR DS:[415B38] <
=== 1Eh
0040878F |> 0FBE2C38 /MOVSX EBP,BYTE PTR DS:[EAX+EDI]
00408793 | 03EA |ADD EBP,EDX
00408795 | 03CD |ADD ECX,EBP
00408797 | 40 |INC EAX
00408798 | 3BC6 |CMP EAX,ESI
0040879A |.^ 72 F3 \JB SHORT FOLDERVI.0040878F
>>>> Quá trình của chỗi được viết lại :
7- Ký tự ban đầu + 1Eh ==== > Kết quả lưu ở EBP
8- Kết quả trước + ( ký tự kế + 1Eh ) ==== > Kết quả lưu ở ECX
9- Thoát khỏi vòng lặp thì ECX lưu giữ kết quả
>> Chuỗi thứ ba có định dạng : XXXX-
0040879C |> 51 PUSH ECX ; /<%u>
0040879D | 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14] ; |
Trang 5004087A1 | 68 885B4100 PUSH FOLDERVI.00415B88 ; |Format =
"%u-"
>> Kết hợp ba chuỗi có định dạng XXXX-XXXX-XXXX-
004087B4 | 51 PUSH ECX ; /StringToAdd
004087B5 | 53 PUSH EBX ; |ConcatString
004087B6 | FF15 9C314100 CALL DWORD PTR
DS:[<&KERNEL32.lstrcatA>] ; \lstrcatA
>>>> Giai đoạn mã hoá chuỗi U nhập vào lần thứ tư :
004087C0 | 85F6 TEST ESI,ESI
004087C2 | 76 14 JBE SHORT FOLDERVI.004087D8
004087C4 | 8B15 3C5B4100 MOV EDX,DWORD PTR DS:[415B3C] <
=== 0Bh
004087CA |> 0FBE2C38 /MOVSX EBP,BYTE PTR DS:[EAX+EDI] 004087CE | 0FAFEA |IMUL EBP,EDX
004087D1 | 03CD |ADD ECX,EBP
004087D3 | 40 |INC EAX
004087D4 | 3BC6 |CMP EAX,ESI
004087D6 |.^ 72 F2 \JB SHORT FOLDERVI.004087CA
>>>> Quá trình của chỗi được viết lại :
10- Ký tự ban đầu x 0Bh ==== > Kết quả lưu ở EBP
11- Kết quả trước + ( ký tự kế x 0Bh ) ==== > Kết quả lưu ở ECX
12- Thoát khỏi vòng lặp thì ECX lưu giữ kết quả
>> Chuỗi thứ tư có định dạng : XXXX
004087D8 |> 51 PUSH ECX ; /<%u>
004087D9 | 8D5424 14 LEA EDX,DWORD PTR SS:[ESP+14] ; |
004087DD | 68 70584100 PUSH FOLDERVI.00415870 ; |Format = "%u"
>> Bốn chuỗi kết hợp lại có định dạng XXXX-XXXX-XXXX-XXXX 004087F0 | 50 PUSH EAX ; /StringToAdd
004087F1 | 53 PUSH EBX ; |ConcatString
>>>>>>>> Vậy là ta đã hoàn toàn hiểu được cách tạo Serial của chương trình này
Trang 6User : Moonbaby Serial : 1223-32920-1063-9053
User : HVA-CrAkErTeAm Serial : 1863-46520-1583-12793
-
////////////////////////////////////////////////////////////////////////////////////////////////
Sau khi Crack một vài chương trình, nhận thấy trang web
http://www.southbaypc.com này được viết code cho chương trình giống hệt nhau Hầu như không có biến hoá gì cả Rất tôi cho bước khởi đầu