00404B61 > E8 02FDFFFF CALL unpacked.00404868
00404B66 . 50 PUSH EAX
00404B67 . 89C6 MOV ESI, EAX
00404B69 > 8B449C 18 MOV EAX, DWORD PTR SS:[ESP+EBX*4+18]
==> đưa 4 char đầu của String Default vào EAX
00404B6D . 89F2 MOV EDX, ESI
00404B6F . 85C0 TEST EAX, EAX
00404B71 . 74 0A JE SHORT unpacked.00404B7D
00404B73 . 8B48 FC MOV ECX, DWORD PTR DS:[EAX-4]
00404B76 . 01CE ADD ESI, ECX
00404B78 . E8 07DEFFFF CALL unpacked.00402984 ==> tiếp tục gọi hàm
mã hóa
00404B7D > 4B DEC EBX
00404B7E .^ 75 E9 JNZ SHORT unpacked.00404B69
00404B80 . 5A POP EDX ==> hiện RS
00404B81 . 58 POP EAX
00404B82 . 85FF TEST EDI, EDI
00404B84 . 75 0C JNZ SHORT unpacked.00404B92
00404B86 . 85D2 TEST EDX, EDX
00404B88 . 74 03 JE SHORT unpacked.00404B8D
00404B8A . FF4A F8 DEC DWORD PTR DS:[EDX-8]
00404B8D > E8 66FCFFFF CALL unpacked.004047F8
00404B92 > 5A POP EDX
00404B93 . 5F POP EDI
00404B94 . 5E POP ESI
00404B95 . 5B POP EBX
00404B96 . 58 POP EAX
00404B97 . 8D2494 LEA ESP, DWORD PTR SS:[ESP+EDX*4]
00404B9A . FFE0 JMP NEAR EAX
00404B9C . C3 RETN
004EAD4E |. 33C0 XOR EAX, EAX
004EAD50 |. 5A POP EDX
004EAD51 |. 59 POP ECX
004EAD52 |. 59 POP ECX
004EAD53 |. 64:8910 MOV DWORD PTR FS:[EAX], EDX
004EAD56 |. 68 70AD4E00 PUSH unpacked.004EAD70 ; ASCII
"_^[‹å]Ã"
004EAD5B |> 8D45 D8 LEA EAX, [LOCAL.10]
004EAD5E |. BA 0A000000 MOV EDX, 0A
004EAD63 |. E8 609AF1FF CALL unpacked.004047C8
004EAD68 \. C3 RETN
004EAED4 |. 8B55 F8 MOV EDX, [LOCAL.2] ==> đưa RS vào EDX
004EAED7 |. 58 POP EAX
004EAED8 |. E8 C39CF1FF CALL unpacked.00404BA0
004EAEDD |. 75 1C JNZ SHORT unpacked.004EAEFB
004EAEDF |. B3 01 MOV BL, 1
004EAEE1 |. 8BC6 MOV EAX, ESI
004EAEE3 |. E8 B8FEFFFF CALL unpacked.004EADA0
004EAEE8 |. B8 3CAF4E00 MOV EAX, unpacked.004EAF3C ;
ASCII "Register success!"
004EAEED |. E8 BA5FF5FF CALL unpacked.00440EAC
004EAEF2 |. 8BC6 MOV EAX, ESI
004EAEF4 |. E8 43AFF7FF CALL unpacked.00465E3C
004EAEF9 |. EB 02 JMP SHORT unpacked.004EAEFD
004EAEFB |> 33DB XOR EBX, EBX
004EAEFD |> 33C0 XOR EAX, EAX
004EAEFF |. 5A POP EDX
004EAF00 |. 59 POP ECX
004EAF01 |. 59 POP ECX
004EAF02 |. 64:8910 MOV DWORD PTR FS:[EAX], EDX
004EAF05 |. 68 2AAF4E00 PUSH unpacked.004EAF2A ; ASCII
"‹Ã^[‹å]Ã"
004EAF0A |> 8D45 F4 LEA EAX, [LOCAL.3]
004EAF0D |. E8 9298F1FF CALL unpacked.004047A4
004EAF12 |. 8D45 F8 LEA EAX, [LOCAL.2]
004EAF15 |. E8 8A98F1FF CALL unpacked.004047A4
004EAF1A |. 8D45 FC LEA EAX, [LOCAL.1]
004EAF1D |. E8 8298F1FF CALL unpacked.004047A4
004EAF22 \. C3 RETN
004EAFDB . 84C0 TEST AL, AL ==> if AL=0 then
004EAFDD . 74 09 JE SHORT unpacked.004EAFE8 ==> bắn nag
*** Vẫn là những động tác quen thuộc cuối cùng , cứ thế ta làm : tắt Ollydbg ,
chạy chương trình , nhập vào : :)
Name: hoadongnoi Serial : Pict-96F6ure5s-E676
Hoặc :
Name : REA-cRaCkErTeAm Serial : Pict-D614ure5s-5645
OK ! Done !
Enjoy !
Chúc thành công ! :laugh:
III/ End Tut :
- Finished : 02/2/2005
- Thank to my family, Computer_Angel, Moonbaby , Benina , QHQCrker ,
Kienmanowar , Nini all REA‘s members, HacNho, Zombie , RongChauA,
exctlong, The_lighthouse, dqtln, all my friend, and YOU .
hoadongnoi(REA)
Crack soft in site www.softstack.com
********************************
** Software : Hide Files & Folders v2.2 (or v1.89) March 25,2005
** Download :
** Type : Serial.
** Tool crk : OllyDbg 1.10b, Peid 0.93.
** Packed : N/A
** Code : Borland Delphi 6.0 7.0
** Keygen : N/A
** Request : RealSerial.
** Đôi lời về soft : Đây là phân mềm bảo vệ file và thư mục với nhiều mode tùy
chọn như : chế độ ẩn , chế độ yêu cầu password để mở …. Hì hì cái nì chỉ có mấy
chức năng thế thôi , rất có ích cho mấy bác có ảnh người iu mà muốn dấu kín cho
riêng mìn, nói zui zậy thui keke …
********************************
*** Dùng PeID 0.93 biết được prog được code bằng Borland Delphi 6.0 - 7.0 vậy
là không bị pack thế là chúng ta gặp may đó.
*** Đầu tiên chúng ta chạy thử chương trình , nhập Serial : 1234567890123456,
nhấn OK xem nào … wây 1 cái nag văng ra cùng với thông báo sau ”The
registration code is incorrect”
*** Dùng OllyDbg v1.10 load prog , tìm kiếm cái thông báo trên ”… incorrect”.
Chúng ta sẽ tìm được tại địa chỉ 004A0EEB
double click vào dòng đó bạn sẽ tới đây:
Code:
004A0EEB |. B8 5C0F4A00 MOV EAX,HFF.004A0F5C ; |ASCII
"The registration code is incorrect." ; chúng ta đang ở đây
Tại đây chúng ta nhìn lên trên mươi dòng, ta đến địa chỉ 004A0EAC tại đây ta ấn
F2 để đặt BreakPoint.
*** Nhấn F9 run prog. Nhấn vào button ”Enter Registration …”, prog sẽ ice luôn
tại điểm đặt BP, không sao chúng ta nhấn F8 một lần, sẽ xuất hiện form cho chúng
ta nhập code, bạn nhập đại gì vào cũng được nhưng cho dễ theo dõi tôi nhập
1234567890123456 , OK , bạn quay lại Olly ta đang ở địa chỉ 004A0EB1 .
*** Nhấn F8 tới địa chỉ 004A0EB8
Code:
==== Local calls from 004A1590, 004AC82A, 004ADDAB ===
004A0E8C /$ 55 PUSH EBP
… Có một số lệnh ở đây ….
004A0EAC |. E8 C3FEFFFF CALL HFF.004A0D74 ; Hàm gọi form đăng
ký Set BP here
004A0EB1 |. 84C0 TEST AL,AL
004A0EB3 |. 74 40 JE SHORT HFF.004A0EF5 ; nếu FS rỗng thì đưa
ra thông báo yêu cầu nhập serial
004A0EB5 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; đưa
your serial vào EAX
004A0EB8 |. E8 0BF5FFFF CALL HFF.004A03C8 ; hàm kiểm tra
serial
=== Trace into 1 ===
004A03C8 /$ 55 PUSH EBP
… có một số lệnh ở đây …
004A03FC |. E8 5745F6FF CALL HFF.00404958 ;hàm nì tính số ký tự của
chuỗi serial bạn nhập vào, và đặt giá trị đó vào EAX
004A0401 |. 83F8 10 CMP EAX,10 ; so sánh EAX với 10h ( hay 16 hệ
10)
004A0404 |. 0F85 A4000000 JNZ HFF.004A04AE ; nếu EAX khác 10h thì
gọi nag
004A040A |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004A040D |. 50 PUSH EAX
004A040E |. B9 08000000 MOV ECX,8 ;xét 8 ký tự your serial
004A0413 |. BA 01000000 MOV EDX,1 ; bắt đầu từ ký tự thứ 1
004A0418 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A041B |. E8 9847F6FF CALL HFF.00404BB8 ; cắt xâu serial thành 2
xâu; xâu1=8 ký tự đầu
004A0420 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
004A0423 |. 50 PUSH EAX
004A0424 |. B9 08000000 MOV ECX,8 ; xét 8 ký tự của your serial
004A0429 |. BA 09000000 MOV EDX,9 ; bắt đầu từ ký tự thứ 9
004A042E |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A0431 |. E8 8247F6FF CALL HFF.00404BB8 ; xâu2=8 ký tự cuối ,
FS=x1[ ]+x2[ ]
004A0436 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004A0439 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; xét xâu1
004A043C |. E8 1F2EF6FF CALL HFF.00403260 ; kiểm tra xem các ký tự
x1[ ] có là các chữ số hay không
004A0441 |. 837D F8 00 CMP DWORD PTR SS:[EBP-8],0 ; chú ý : tại
đây EAX = giá trị chuỗi x1 đã chuyển thành số, tất nhiên ở dạng hexa
004A0445 |. 75 67 JNZ SHORT HFF.004A04AE ; nếu không thì
gọi nag
004A0447 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004A044A |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004A044D |. E8 0E2EF6FF CALL HFF.00403260 ; kiểm tra các ký tự
x2[ ] có là các chữ số hay không
004A0452 |. 837D F8 00 CMP DWORD PTR SS:[EBP-8],0 ; chú ý tại
đây EAX= giá trị chuỗi x2 đã chuyển thành số
004A0456 |. 75 56 JNZ SHORT HFF.004A04AE ; nếu không thì gọi
nag
004A0458 |. BE 30000000 MOV ESI,30
004A045D |> 33C0 /XOR EAX,EAX ; đoạn lặp này đếm số lần xuất
hiện các chữ số từ 0 tới 9 trong FakeSerial
Số lần xuất hiện được giữ tại SS: [EBP-8]
004A045F |. 8945 F8 |MOV DWORD PTR SS:[EBP-8],EAX
004A0462 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4]
004A0465 |. E8 EE44F6FF |CALL HFF.00404958
004A046A |. 85C0 |TEST EAX,EAX
004A046C |. 7E 17 |JLE SHORT HFF.004A0485
004A046E |. BA 01000000 |MOV EDX,1
004A0473 |> 8BCE |/MOV ECX,ESI ; đoạn lặp đếm số lần xuất hiện
các chữ số từ 0 tới 9
004A0475 |. 8B7D FC ||MOV EDI,DWORD PTR SS:[EBP-4]
004A0478 |. 3A4C17 FF ||CMP CL,BYTE PTR DS:[EDI+EDX-1]
004A047C |. 75 03 ||JNZ SHORT HFF.004A0481
004A047E |. FF45 F8 ||INC DWORD PTR SS:[EBP-8] ; tăng lên 1 gặp
ký tự 1 lần