Extract TIFF v1.5 ”, và chương trình chỉ cho phép chúng ta dùng thử 100 lần nếu chúng
ta ko đưa money cho họ và đổi lại họ sẽ đưa số Serial cho chúng ta . Đưa money để buy
soft á . Nghe hơi lạ tai , chúng ta đâu có thói quen này , và lần này cũng vậy thôi hãng
VeryPdf ạ ! Hihiiiii :) Muốn vậy thì chúng ta chỉ có 1 cách duy nhất là Kill & Kill nó
thôi . Thông cảm nhé hãng VeryPdf , $ còn phải dùng vào nhiều việc lém . haha ! :D
- OK ! bây giờ nhìn vào Dialog ta thấy mã ID của Software : Product ID :
[ZLTA987654325JNX] (cái này ta ko cần quan tâm làm gì cho mệt óc ) . Nhìn xuống
phía dưới là chỗ mà ta phải nhập Series , đây mới là chỗ ta cần . OK ! ta nhập
đại vào 1
cái Series xem nó bảo sao . Ở đây em nhập là : Series : 0361985 . Nhấn OK . Oh ! 1 cái
nag văng ra như súng AK đập ngay vào mặt chúng ta : "Series number error , please
check it and try again " . Nó chửi Serial của chúng ta tầm bậy các bạn ạ :(( . Thế có ức
ko cơ chứ , mà cũng đúng thôi , nếu chúng ta nhập đúng thì chúng ta đã chẳng phải ngồi
đây . Hihi ! :wub: Khi chúng ta exit cái Dialog Box đó nó còn pop-up ra 1 cái nag
nhắc nhở ta : "Please register " , biết rồi nói mãi , làm gì mà cứ nhắc hoài thế , chờ tý
nữa tớ sẽ đưa Serial (not money ) ngay thôi mà . Hihi ! :smiling:
Ok , chúng ta hãy ghi nhớ lấ
y tất cả những thứ đó .
- Bây giờ chúng ta hãy load chương trình vào trong OllyDbg , click chuột phải chọn
Search for / All referenced text strings để tìm chuỗi thông báo trên . Ặc ặc mất mấy
vài phút mà vẫn không thấy cái thông báo đó đâu cả . Chẳng nhẽ chúng ta lại chịu bó tay
trước thời cuộc sao . Không đâu các bạn cứ bình tĩnh , chúng ta lại sử dụng phương pháp
Stackcủa anh Moonbaby .
- Nhấn Ctrl + F2 để load lại chương trình vào trong OllyDbg . Nhấn F9 để Run chương
trình . Chúng ta lại nh
ập FS như ở trên vào , ở đây ta nhập là Series : 0361985 . Xong
nhấn Ok , xuất hiện thông báo : "Series number error, please check it and try again "
. Giữ nguyên chương trình , quay trở lại Ollydbg , nhấn F12 , Olly sẽ dừng chương trình
lại . Nhấn tiếp Alt + K để hiện cửa sổ : “Call stack of main thread “ . Ta thấy ngay thông
báo :
*** Ở đây chúng ta chú ý đến dòng màu đỏ :
Code:
Call stack of main thread
Address Stack Procedure / arguments Called from Frame
0012EF60 10001867 ? USER32.MessageBoxA verypdf.10001861
0012EF64 00150356 hOwner = 00150356 ('Please registe
0012EF68 100172D0 Text = "Series number error, pleas
0012EF6C 00000000 Title = NULL
0012EF70 00000010 Style = MB_OK|MB_ICONHAND|MB_APPLM
***Double-click vào cột “Called from” của dòng màu đỏ này , chúng ta đến địa chỉ sau :
Code:
1000185B 68 D0720110 PUSH verypdf.100172D0 ; ASCII "Series
number error, please check it and try again."
10001860 56 PUSH ESI
10001861 FF15 34330110 CALL NEAR DWORD PTR DS:[<&USER32.Mess>;
USER32.MessageBoxA ===> We’re here .
10001867 68 FB030000 PUSH 3FB ===> Set BreakPoint here .
1000186C 56 PUSH ESI
*** Sau khi đặt BP tại đây , Ollydbg sẽ dừng chương trình lại , nhấn F8 để xuất hiện lại
thông báo : "Series number error, please check it and try again " Nhấn OK để chấp
nhận thông báo này , chương trình sẽ dừng lại tại điểm BP mà chúng ta vừa đặt . Xoá
điểm BP này đi . RETN , nhìn lên trên 1 chút chúng ta sẽ thấy đoạn code sau . Đây là tử
huyệt :w00t: , ta sẽ đặt BP tại đây :
Code:
10001807 FF15 2C330110 CALL NEAR DWORD PTR
DS:[<&USER32.GetD>; USER32.GetDlgItemTextA ===> Set BreakPoint Here .
1000180D 68 20A80110 PUSH verypdf.1001A820 ; ASCII "0361985"
II/ Cracking :
***OK, sau khi đặt BP tại đó , chúng ta nhấn F9 để Run chương trình , ta sẽ thấy hộp
thoại đăng kí xuất hiện lại , sau khi đã nhập FS đầy đủ như ở trên ta đã làm , nhấn OK .
Chúng ta sẽ quay trở lai Olly và chương trình sẽ Ice tại điểm mà chúng ta set BP. :wink:
Nhìn xuống phía dưới 1 chút , chúng ta sẽ thấy hàm Call . Đây chính là lệnh gọi hàm
kiểm tra Series :
Code:
10001812 E8 E9F7FFFF CALL verypdf.10001000
Ở đây chúng ta cũng thấy lệ
nh text thanh ghi EAX . Vì vậy chúng ta sẽ Trace Into vào
trong hàm Call trên xem nó làm gì với FS của chúng ta :
Code:
10001807 FF15 2C330110 CALL NEAR DWORD PTR
DS:[<&USER32.GetD>; USER32.GetDlgItemTextA ===> We're here .
1000180D 68 20A80110 PUSH verypdf.1001A820
10001812 E8 E9F7FFFF CALL verypdf.10001000 ===> gọi hàm check Serial
.
Trace Into
10001000 83EC 18 SUB ESP, 18
10001003 56 PUSH ESI
10001004 8B7424 20 MOV ESI, DWORD PTR SS:[ESP+20] >>> Đưa Input
vào ESI
10001008 8D5424 04 LEA EDX, DWORD PTR SS:[ESP+4]
1000100C 57 PUSH EDI
1000100D 8A06 MOV AL, BYTE PTR DS:[ESI] ===> Đưa ký tự thứ nhất
trong chuỗi FS vào AL
1000100F 8A4E 0F MOV CL, BYTE PTR DS:[ESI+F] ===> Đưa ký tự thứ 16
trong chuỗi FS vào CL
10001012 884424 14 MOV BYTE PTR SS:[ESP+14], AL ===> đoạn
SS:[ESP+14] chứa ký tự thứ nhất
10001016 32C0 XOR AL, AL
10001018 52 PUSH EDX
10001019 884424 19 MOV BYTE PTR SS:[ESP+19], AL
1000101D 884C24 0C MOV BYTE PTR SS:[ESP+C], CL ===> đoạn
SS:[ESP+C] chứa ký tự thứ 16
10001021 884424 0D MOV BYTE PTR SS:[ESP+D], AL ===> đoạn
SS:[ESP+D] chứa ký tự thứ nhất .
10001025 E8 FB140000 CALL verypdf.10002525
1000102A 8BF8 MOV EDI, EAX ===> Đưa ký tự thứ 16 trong chuỗi FS vào
EDI
1000102C 8D4424 18 LEA EAX, DWORD PTR SS:[ESP+18] ===> Đưa ký tự
thứ nhất trong chuỗi FS vào EAX
10001030 50 PUSH EAX
10001031 E8 EF140000 CALL verypdf.10002525
10001036 03F8 ADD EDI, EAX ===> lấy tổng của ký tự thứ nhất + ký tự
thứ 16
10001038 83C4 08 ADD ESP, 8
1000103B 83FF 0A CMP EDI, 0A ===> so sánh với 0A
1000103E 74 08 JE SHORT verypdf.10001048 ==> Nếu bằng thì tiếp tục
quá trình tính toán Serial .
10001040 5F POP EDI
10001041 33C0 XOR EAX, EAX
10001043 5E POP ESI
10001044 83C4 18 ADD ESP, 18
10001047 C3 RETN
10001048 807E 01 38 CMP BYTE PTR DS:[ESI+1], 38 ===> So sánh ký tự
thứ 2 với 8
1000104C 74 08 JE SHORT verypdf.10001056 ==> Nếu bằng thì tiếp tục
quá trình tính toán Serial .
1000104E 5F POP EDI
1000104F 33C0 XOR EAX, EAX
10001051 5E POP ESI
10001052 83C4 18 ADD ESP, 18
10001055 C3 RETN
10001056 8A4E 05 MOV CL, BYTE PTR DS:[ESI+5] ===> Đưa ký tự thứ 6
trong chuỗi FS vào CL
10001059 33C0 XOR EAX, EAX
1000105B 80F9 2A CMP CL, 2A ===> so sánh ký tự thứ 6 với ký tự ' * '
1000105E 5F POP EDI
1000105F 0F94C0 SETE AL
10001062 5E POP ESI
10001063 83C4 18 ADD ESP, 18
10001066 C3 RETN
10001817 83C4 04 ADD ESP, 4
1000181A 85C0 TEST EAX, EAX ===> kiểm tra EAX= 0 ?
1000181C 74 39 JE SHORT verypdf.10001857 ===> nếu EAX=0 thì nhảy
đến bắn Bad boy .
1000181E 6A 40 PUSH 40
10001820 68 30730110 PUSH verypdf.10017330 ; ASCII "Thank you
registered"
10001825 68 04730110 PUSH verypdf.10017304 ; ASCII "Thank you
registered PDFExtractTIFF v1.5."
***Như vậy theo phân tích ở trên ta thấy Real Serial của chương trình sẽ phải thoả mãn
các yêu cầu sau :
1. Chiều dài tối thiểu phải là 16 ký tự
2. ở các vị trí thứ 2, 6 trong chuỗi Ser phải là các ký tự mặc định :
vị trí thứ 2 là 8
vị trí thứ 6 là *
3. Các ký tự ở vị trí S[0] , S[15]phải là các ký tự từ 1 -> 9 và phải thoả mãn điều kiện sau
:
S[0] + S[15] = 0xA
4. Các ký tự còn lại là mặc định .
*** Từ đó ta có thể dễ dàng suy ra Real Serial của chương trình là : 18901*7890123459
*** Chúng ta lại làm tiếp những động tác quen thuộc cuối cùng :) , tắt Ollydbg , chạy thử
chương trình , nhập vào :
Series : 18901*7890123459
Hoặc :
Series : 58234*thanhvan85
(Còn nhiều lắm , chúng ta cứ dựa vào các điề
u kiện trên rồi tổ hợp là ra . ) :cool:
OK ! Done ! Chương trình cảm ơn chúng rối rít ta kìa “thanks ……”, ngại quá :wub:
(chúng ta đâu có đưa money cho họ ) . Thế mà vừa lúc trước mắng ta te tua : serial tầm
bậy . Đã bảo là chờ tý sẽ có Serial ngay mà lại ko nghe , cứ pop-up ra nhắc nhở ta đăng
ký hoài . Hihiiiiiiiii…… ! :laugh:
Enjoy !
Chúc thành công ! :smiling:
SoftWare : PDF Password Remover v2.2
Copyright by : Copyright @ 2001-2003 verypdf.com Inc
Packed : UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
Language : Microsoft Visual C++ 6.0
Crack Tools : OllyDbg 1.09d, PEiD v0.92
Unpack tools : UPX Unpack , hoặc dùng plugin của PeiD (có RebuildPE )
Request : Real Serial .
Introduction : PDF Password Remover v2.2
The PDF Password Remover can be used to decrypt protected Adobe Acrobat PDF files,
which have "owner" password set, preventing the file from editing (changing), printing,
selecting text and graphics (and copying them into the Clipboard), or adding/changing
annotations and form fields. Decryption is being done instantly. Decrypted file can be
opened in any PDF viewer (e.g. Adobe Acrobat Reader) without any restrictions i.e.
with edit/copy/print functions enabled. All versions of Adobe Acrobat (including 5.x,
which features 128-bit encryption) are supported.
I/ Information :
- Now , bây giờ chúng ta lại tiếp tục lôi đồ nghề ra nào . Và như được lập trình sẵn ta lại
làm :) : Dùng PEid v0.92 để Detect , chúng ta biết chương trình được pack bằng UPX
0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo . Ta dùng tool : UPX Unpack để unpack
chương trình này , hoặc chúng ta cũng có thể dùng Plugin của PEiD (có ReBuildPE ) để
unpack . Trước khi Unpack Size là : 23,5KB , sau khi Unpack Size là : 80KB . Sau khi
unpack xong , l
ại dùng PEiD v0.92 để Detect , chúng ta biết chương trình được viết bằng
Microsoft Visual C++ 6.0
- Vẫn là động tác quen thuộc :D : Chạy thử chương trình , chúng ta thấy hiện lên một 1
Dialog Box : “Please register PDF Password Remover v2.2” , và chương trình chỉ cho
phép chúng ta dùng thử 100 lần nếu chúng ta ko đưa money cho họ và đổi lại họ sẽ đưa
số Serial cho chúng ta . Đưa money để buy soft á . Nghe hơi lạ tai , :D chúng ta đâu có
thói quen này , và lần này cũng vậy thôi hãng VeryPdf ạ ! Hihiiiii :P Muốn vậy thì
chúng ta chỉ có 1 cách duy nhất là Kill & Kill nó thôi . Thông cảm nhé hãng VeryPdf , $
còn phả
i dùng vào nhiều việc lém . Hihiiii…… ! :wub:
- OK ! bây giờ nhìn vào Dialog ta thấy mã ID của Software : Product ID :
“[ZLTA987654325JNX] ” (cái này ta ko cần quan tâm làm gì cho mệt óc ) . Nhìn xuống
phía dưới là chỗ mà ta phải nhập Series , đây mới là chỗ ta cần . OK ! ta nhập đại vào 1
cái Series xem nó bảo sao . Ở đây em nhập là : Series : 0361985 . Nhấn OK . Oh ! Tất lẽ
dĩ ngẫu là 1 cái nag sẽ văng ra, đập ngay vào mặt chúng ta ( ko văng nag ra mới là
chuyện lạ :-o ) :"Series number error , please check it and try again " . Nó chửi Serial