Tải bản đầy đủ (.pdf) (10 trang)

Cracker Handbook 1.0 part 162 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (136.67 KB, 10 trang )

Powered by Invision Power Board ()
© Invision Power Services ()
Printable Version of Topic
Click here to view this topic in its original format
HVA Forum > Box thảo luận Reverse Engeneering, tutorial Reverse
Engeneering > www.magictweak.com

Posted by: Zombie

Dec 16 2003, 07:45 PM

QUOTE

Production:
Magic Utilities 2003 Version 2.31
Homepage:
Download:
Protector: Name/Serials
Packed: PECompact 1.68 - 1.84 -> Jeremy Collake
Tools: OllyDbg 1.09d + PEiD 0.91 (Detect Packer) + UnPECompact 1.32
(Unpacker)
Done: Get Correct Serials ( If you want can make keygen with it)
Cracked by: Zombie DeathMan
Intro: Magic Utilities is a cute program designed to make your computer
clean and more stable.These utilities include Uninstller Plus,StartUp
Organizer,Process Killer.Magic Utilities enables you to easily and safely
uninstall programs;inspect and manage the programs that automatically start
when you turn on or logon to your computer;list and control all currently
running processes(system and hidden processes are also shown).With a cool
and user-friendly interface makes it easy for anyone to use Magic Utilities.



Sau khi install chương trình xong…Bạn sử dụng PEiD để load nó lên và được
packed bằng PECompact 1.68 - 1.84 -> Jeremy Collake.
Như vậy cần unpack trước khi tiến hành crack. Tool unpacker ở đây dùng là
UnPECompact 1.32 (có thể download tại ). Để unpack
bạn load UnPECompact lên, browse chọn file, sau đó chờ chương trình làm và điền
tên file unpacked để save…Ở đây Zombie để save với tên unpacked.exe (size
1,477,379 bytes). Nếu muốn bạn có thể dùng PEiD lần nữa để biết chương trình
code bằng ngôn ngữ gì, kết quả là Microsoft Visual C++ 6.0.

Xong Đã qua bước đầu. Bây giờ thì tiến hành crack…Load Olly lên, mở chương
trình Magic Utilities ra….Cứ F9, run thử xem cách thức register của chương trình
này ra sao…

Thấy rồi, một hộp thoại nhập Name/Serials. Ở đây bạn cứ điền fake vào. Giả sử
Zombie điền: User: Zombie – Registration Code: 12345. Nhấn Ok.

Bạn sẽ nhận được hộp thoại thông báo “Thank you….”. Uh! Như vậy có thể nhận
ra rằng ở đây Magic Utilities dùng cơ chế lưu lại thông tin register và dùng nó
check khi load chương trình chứ không xử lý ngay tại hộp thoại. Tạm đủ thông
tin…Exit Olly cái đã

Ok Vậy bây giờ cần tìm ra nó lưu thông tin đăng kí ở đâu?
1. Registry? hmm Bạn dùng RegShot () để capture lại
Registry trước lần thứ 1. Sau đó chạy Magic Utilities (chạy bình thường không
phải trong Olly) và nhập lại với thông số khác (Chẳng hạn bây giờ User: HVA
Cracker – Registration Code: 67890) > Chương trình exit xong, Capture Registry
lại lần nữa > Bây giờ Compare 2 lần capture vừa rồi > nothing change Vậy
không phải là trong Registry rồi.
2. Như vậy chắc là KeyFile…But Biết KeyFile nào?


Quay về với Olly để tìm hiểu xem sao….
Bạn có để ý rằng cái MessageBox báo Thank you…Có vẻ giống MessageBox của
Windows > Vậy có lẽ ở đây dùng hàm MessageBoxA để gọi nó này > Set bpx
MessageBoxA. Set bp xong F9 run, điền các thông số (Zombie – 12345).
Ok…Yeah!
Pause.



CODE

004676AB |> \8B4E 1C MOV ECX,DWORD PTR DS:[ESI+1C]
004676AE |> FF7424 10 PUSH DWORD PTR SS:[ESP+10] ;
/Style
004676B2 |. 50 PUSH EAX ; |Title
004676B3 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10] ;
|Text
004676B7 |. 51 PUSH ECX ; |hOwner
004676B8 |. FF15 2C154800 CALL DWORD PTR
DS:[<&USER32.MessageBoxA>>; \MessageBoxA
> Paused here


Bắt đầu từ đây ta nhấn F8 để trace dần dần xem nó lưu thông tin Register thế
nào…Sau lần nhấn F8 đầu tiên, MessageBox hiện lên, Ok để tiếp tục Cứ trace
trace đến




CODE

00438CEF . 8B86 7C100000 MOV EAX,DWORD PTR DS:[ESI+107C]
00438CF5 . 8B3D 34124800 MOV EDI,DWORD PTR
DS:[<&KERNEL32.WritePr>; kernel32.WritePrivateProfileStringA
00438CFB . 68 60894900 PUSH unpacked.00498960 ;
/FileName = "mgutil_win.ini"
00438D00 . 50 PUSH EAX ; |String
00438D01 . 68 54894900 PUSH unpacked.00498954 ; |Key =
"UserName"
00438D06 . 68 50894900 PUSH unpacked.00498950 ; |Section
= "REG"
00438D0B . FFD7 CALL EDI ;
\WritePrivateProfileStringA
00438D0D . 8B86 78100000 MOV EAX,DWORD PTR DS:[ESI+1078]
00438D13 . 68 60894900 PUSH unpacked.00498960 ;
/FileName = "mgutil_win.ini"
00438D18 . 50 PUSH EAX ; |String
00438D19 . 68 48894900 PUSH unpacked.00498948 ; |Key =
"RegCode"
00438D1E . 68 50894900 PUSH unpacked.00498950 ; |Section
= "REG"
00438D23 . FFD7 CALL EDI ;
\WritePrivateProfileStringA


Đến đây thì khá rõ ràng rồi…Thông tin register được lưu ở file mgutil_win.ini
bằng các hàm APIs truy cập INI file….Done Nhấn F9 để nó run luôn và exit
chương trình…


Reload lại…Search text để tìm string “mgutil_win.ini”…Bạn sẽ tìm được ở Addr
00420306. Set bp ở đây.
Run…and pause …



CODE

00420306 . 68 60894900 PUSH unpacked.00498960 ; ASCII
"mgutil_win.ini"
> Paused here
0042030B . 8D9424 540100>LEA EDX,DWORD PTR SS:[ESP+154]
00420312 . 6A 28 PUSH 28
00420314 . 52 PUSH EDX
00420315 . 68 14E54900 PUSH unpacked.0049E514
0042031A . 68 54894900 PUSH unpacked.00498954 ; ASCII
"UserName"
0042031F . 68 50894900 PUSH unpacked.00498950 ; ASCII
"REG"
00420324 . C68424 CC7E00>MOV BYTE PTR SS:[ESP+7ECC],0D
0042032C . FFD7 CALL EDI
0042032E . 8BD8 MOV EBX,EAX
00420330 . 68 60894900 PUSH unpacked.00498960 ; ASCII
"mgutil_win.ini"
00420335 . 8D8424 B40000>LEA EAX,DWORD PTR SS:[ESP+B4]
0042033C . 6A 28 PUSH 28
0042033E . 50 PUSH EAX
0042033F . 68 14E54900 PUSH unpacked.0049E514
00420344 . 68 48894900 PUSH unpacked.00498948 ; ASCII
"RegCode"

00420349 . 68 50894900 PUSH unpacked.00498950 ; ASCII
"REG"
0042034E . FFD7 CALL EDI


Ở đây là các lệnh nhằm đọc thông tin từ Ini File….Từ đây bạn tiếp tục F8
trace…đến



CODE

00420384 . 50 PUSH EAX ; /Arg2 = 0012810C
ASCII "12345"
00420385 . 51 PUSH ECX ; |Arg1
00420386 . 8BCD MOV ECX,EBP ; |
00420388 . E8 33110000 CALL unpacked.004214C0 ;
\unpacked.004214C0
0042038D . 85C0 TEST EAX,EAX
0042038F . 74 0F JE SHORT unpacked.004203A0


Hm Ở đây nhận PUSH Serials, Name để làm đối số cho lệnh CALL và sau CALL
lại có lệnnh JE > Phải chăng đây là hàm check Serials?
Khi trace vào đây (nhấn F7 để step into) bạn sẽ thấy nó check fake Serials với
112720 (có thể ở mấy bạn cho số khác Zombie, not sure)…. > Correct Serials =
112720 ? Cứ thử đi nope …hih Trace hết (F8) cho về lại main.
Tiếp tục trace đến…




CODE

004203B3 . 52 PUSH EDX
004203B4 . E8 67140000 CALL unpacked.00421820
004203B9 . 85C0 TEST EAX,EAX
004203BB . 0F85 EE010000 JNZ unpacked.004205AF


Ở đây cũng lại PUSH EDX (EDX hiện chứa Serials)…Step Into thử xem sao



CODE


00421880 |. BF 9CA54900 MOV EDI,unpacked.0049A59C ; ASCII
"9GDDCCG9,39DGCFG9,9F9DG29C,D9G2G4FE,E4ECDCGE,643C2E39,CCG
9D44E,X4G9634W,GG2D9GEX,EE2999DC,9A32FEED,GG92ED4D,9G399GC
C,GG2DE99G,C4D9DE9G,4F4DDDDE,D9E92E32,DE3G63GG,GDDWCDEC,
2966EDDG,ACDDGF36,EFC4F2G2,DG9E44G9,D2FDGGGD,6GG29ECD,G36
GE9GC,G3D"

004218AA |. BF BC9D4900 MOV EDI,unpacked.00499DBC ;
ASCII
"EL4ICGE4,GFA4CGGB,E6GLGGAC,DFG6D6LF,E4CGECAA,CADCGGG4,
FDLDGDDG,B6GA5FBB,GAFCLG6A,GFAL6LLC,75T48Y5Y,DFDFDDGL,C
EEFD4D4,BCGDGGGL,G64A3G6L,6DGGDCLG,G4LZCZ5F,CDCA666A,6D
DADFEG,GDLFEDLA,CFL6GLEG,GLCLD6BG,6C6EG4C6,G6CFGGCF,37T4
48Q4,GC6FC4D4,G44"

….


Why? Sao lại có một loạt dãy số này vậy? Check thử một trong các số trên xem >
Correct Seriasl…

Done…

Nói thêm chút…Cách khác để khỏi mất thời gian trace vào từng lệnh CALL: Bạn
chỉ việc nhấn F8 trace qua các lệnh CALL cho đến khi thấy chương trình run hoàn
toàn và hiện thông báo nhập register…



CODE

004203B4 . E8 67140000 CALL unpacked.00421820
004203B9 . 85C0 TEST EAX,EAX
004203BB . 0F85 EE010000 JNZ unpacked.004205AF
004203C1 . 50 PUSH EAX
004203C2 . 8D8C24 740C00>LEA ECX,DWORD PTR SS:[ESP+C74]
004203C9 . A3 3CE64900 MOV DWORD PTR DS:[49E63C],EAX
004203CE . E8 DD7F0100 CALL unpacked.004383B0
004203D3 . 8D8C24 700C00>LEA ECX,DWORD PTR SS:[ESP+C70]
004203DA . C68424 B47E00>MOV BYTE PTR SS:[ESP+7EB4],0E
004203E2 . E8 19A10400 CALL unpacked.0046A500
> Chương trình sẽ run hoàn toàn sau lệnh CALL này


Quan sát chút sẽ thấy sau lệnh CALL ở 004203B4 là JNZ nhảy khỏi lệnh CALL

hiển thị thông báo nhập Register…Vậy xác suất cao nó là lệnh check Serials…



QUOTE

Registered
Name: Zombie
Registration Code: EL4ICGE4


Kết luận: Như vậy Magic Utilities sử dụng check trên danh sách Serials lưu sẵn
chứ không phải dùng thuật nào để tạo Serials ứng với từng Name….
Muốn code keygen bạn chỉ cần…Lấy danh sách này về…Mỗi lần nhập Name vào
thì rnd trên danh sách này

Hix…Do bài Magic Utilities này Zombie lấy làm bài Mod’s Tutorial nên viết dông
dài…
Hai Soft sau viết…vài dòng thui…hehe….

Production: MagicTweak Version 2.70 + Privacy Inspector Version 1.51
Homepage:

Thường cùng hãng thì cách protect na ná nhau cho các Softwares…

1. Với MagicTweak bạn tìm đến string “mgwin.ini” ở
0044ACCF . 68 38114D00 PUSH unpacked.004D1138 ; ASCII "mgwin.ini"
và cũng cứ trace đến
0044AD7C . 50 PUSH EAX
0044AD7D . E8 1E0D0000 CALL unpacked.0044BAA0

> F7 để step into vào vào lấy Serials
0044AD82 . 85C0 TEST EAX,EAX
0044AD84 . 0F85 3D020000 JNZ unpacked.0044AFC7

Đơn cử ra cho thằng này:
Name: Zombie
Registration Code: 8GDDEEG0

2. Privacy Inspector thì
004372FF . 68 5C614900 PUSH unpacked.0049615C ; ASCII "privacy_win.ini"


trace đến

004373AC . 50 PUSH EAX
004373AD . E8 3E0D0000 CALL unpacked.004380F0
> F7 để step into vào vào lấy Serials
004373B2 . 85C0 TEST EAX,EAX
004373B4 . 0F85 3D020000 JNZ unpacked.004375F7

Đơn cử ra cho thằng này:
Name: Zombie
Registration Code: 3BGDAEE0


Ặc ặc…hãng MagicTweak này có đúng 3 cái softwares này thui…Coi như ta
quýnh sập tiệm họ gùi

Phù….Zombie đi ngủ đây hix Posted xong tuts này cũng là gần 3h rùi
Hix…Đọc vài reply trong HVA thấy khó chịu quá nên ngồi crack luôn…


×