HƯỚNG DẪN CRACK - PHẦN III :


tiếp theo
PHẦN III : 

Xin chào, chúng ta lại gặp nhau…Trong bài viết này tôi sẽ hướng dẫn sử dụng WDASM893 và Hacker Views602. Hai công cụ không thể thiếu của một cracker 

I.Giới thiệu WDASm 

Nếu như ví SoftIce là khẩu M-16 thì WDASM là một khẩu Beretta đạn bạc. Vì WDASM sẽ giúp bạn rất nhiều trong việc crack phần mềm mà bạn không cần dùng SoftIce…Bây giờ tôi sẽ hướng dẫn các bạn cách sử dụng cơ bản nhất, muốn hiểu rõ hơn bạn hãy mở phần help của nó nhé 

1.Disassembly vớI WDASM: 

a.Disassembly File 

Muốn disassembly file nào(nhớ chọn dạng file thích hợp thường là *.exe, *.dll), từ menu Disassembly ta chọn Open file to disassembly…chọn file cần disassembly… 
*-Lưu ý trong submenu Disassmbly Options bạn nên đánh dấu chọn cả ba dòng 
-Enable Conditional Jump X Preferences 
-Enable Uncondional Jump X Preferences 
-Enable Call X Preferences 
*-Nếu bản WDASM của bạn đã patch (cho phép DASM VB), trong sub menu Patch Options, bạn đánh dấu chọn auto hoặc on trong dòng Enable và đánh dấu cả hai checkbox Line Prefix, Values trong dòng Copy Selected Lines 

b.Quick Edit 
Nếu bản của bạn đã fixed thì bạn sẽ có một menu Edit trên thanh công cụ, submenu Quick Edit giúp bạn có thể chỉnh sửa file trực tiếp trên nền của WDASM mà không cần dùng tớI HIEWS-Quá tiện lợI phảI không? Muốn chỉnh sửa file tạI location nào ta chỉ cần double click tạI dòng đó, xong chọn QuickEdit—Trong của sổ của Quick Edit có các khung sau: 

-RVA Word : nhập vào location cần tớI, xong nhấn Goto 
-Original Bytes: Bytes trước khi chỉnh sửa 
-Modify Bytes: Bytes sau khi chỉnh sửa 
-Save: lưu lạI Bytes sau khi chỉnh sửa 
-Run: Chạy file đang chỉnh sửa 
-Delete: xoá 

c.Goto location: 

trong ô Code Offset (hex) nhập vào location rồI enter để đến location vừa nhập. Ví dụ 00401000. Chức năng này thường dùng khi bạn dùng SoftIce kiếm được tử huyệt của soft đang crack … 

d.String Data References: 

là nơi rất quan trọng để crack phần mềm , vì nơi đây là nơi hiện ra các thông báo thông thường của các soft(nhưng đôi khi tác giả phần mềm cố ý mã hoá nó đi…Nhưng không sao cả ta có cây M-16 SoftIce). Một mẹo nhỏ cho các bạn. nếu muốn patch phần mềm thì nên tìm những thông báo tương tự như "Incorrect Password...", "Wrong Serial...", "Re-enter password..." , xong rồI các bạn di chuyển vệt sáng lên phía trên nhé, dịch chuyển xuống dướI là ngu luôn đấy ke ke ke ở tù đấy---nhất là dưới 16 tuổi 


-------bấy nhiêu đó thôi,mỏi tay quá, nếu muốn biết chi tiết các bạn nên xem phần help của WDASM nhé--------- 

II.GiớI thiệu Hacker Views 602 

HIEWS là một chương trình Hexa Editor rất mạnh, hoạt động tương tự như Norton Commader5.0 for DOS của Symantec, các phím tắt cũng như NC5. Nó được ví như đạn dược vì dùng SoftIce,WDASM chỉ tìm offset còn nhiệm vụ cuối cùng vẫn là dùng Hviews để kill soft.Trời ạ súng mà không có đạn thì chết chắc rồi còn gì. Tuy M-16 (SoftICe) có một vũ khí đó là lưỡi lê (hàm aeip-chỉnh sửa trực tiếp trên soft Ice), nhưng chỉ dùng cho một số trường hợp đặc biệt thôi... 

- Muốn chuyển ổ đĩa hiện hành nhấn Alt + F1, 
- F4 để chọn chế độ trong bảng Select Mode: Text, Decode,Hex…bạn có thể nhấn Enter cũng được 
- F7 dùng để search 
- F5, gõ vào địa chỉ Offset và enter 
- F3 dùng để chỉnh sửa, 
- F2 dùng để chỉnh sửa vớI một ô lớn hơn, tương tự như menu Quick Edit của WDASM 
- F9 để lưu, 
- F10 để thoát, hoặc đơn giản là bạn nhấn ESC 
----HIEWS rất dễ dùng bạn hãy tự khám phá thêm nhé--------------- 

***Một số lưu ý nhỏ*** 

Khi bạn tìm được tạI một location một offset thì bạn hãy nhìn xuống dưới thanh taskbar những chữ số hexa sau chữ @ (trừ chữ h đi nhé) đó chính là địa chỉ offset trong HIEWS đó 
Ví dụ tạI địa chỉ 004013AF tôi sẽ có một offset là @00007Afhà thì 00007AF chính là địa chỉ offset trong HIEWS 
------------------------------------------------------------------------- 

để các bạn có thể hiểu sơ lược về các dùng của ba phần mềm SOFTICE,WDASM,HIEWS tôi xin hướng dẫn các bạn crack một crack me của anh nicehacker…ở đây tôi chỉ bày cho các bạn phương pháp patch nó thôi…Còn phương pháp tìm được serial thì bạn tự tìm hiểu nhé 

------------------------------------------------------------------------------------------- 

Chào các bạn...chắc hẳn không ít các bạn đã buông tay chịu trói trước file crk me HVA_UNPACKED.exe...he he...Nếu các bạn chưa tìm được số serial thì tôi xin bày cho các bạn phương pháp để patch file crk me này, chứ riêng tôi thì mỗi lần tôi gõ đại vào ô serial một con số bất kỳ thì nó hiện lên " wrong serial .. " phát bực mình he he...Mục đích tôi là làm sao cho nó hiện lên thông báo "Good job,and now make a keygen "...Tôi không nêu phương pháp tìm serial tuy nhiên dựa vào bài víêt này các bạn sẽ tìm được số serial... he he mong các đàn anh tha tội vì em đã patch nó ke ke ke 

Công cụ: SoftIce Driver Suite 2.6, Wdasm893 fixed, Hiew602 
Patcher : hacnho 

Lưu ý: do CuTi rất ma lanh là đã mã hoá nên các dòng thông báo như "Wrong serial" không hiện lên trong String Data References của WDASM nên không thể dùng WDASM trực tiếp được nên tôi phải dùng SofIce để tìm các hàm call gọi ra cái nag đó... 


Đầu tiên các bác chạy file hva_unpacked.exe, nhập vào một số serial bất kỳ, tôi nhập vào số serial là 123456, khoan nhấn Ok, gõ Ctrl+D để vào SoftIce (nếu dùng SoftIce Driver Suite 2.6 phải start softice trên thanh start trước), gõ vào bpx GetDlgItemTextA, enter, nhấn Ctrl+D, để ra khỏi SoftIce sau khi đã đặt một break point, nhấn nút Ok trên fiel crk me HVA_UNPACKED.exe. Ta lại vào SoftIce, các bác nhấn F10 cho đến khi thấy thông báo " wrong serial.." nhẩy lên che khuất màn hình SoftIce, Lúc này các bác phải tinh mắt nhìn thấy khi ta nhấn F10 vệt sáng di chuyển đến dòng có chữ 
Call User32! MessageBoxA 
004011AB Popad > he he đây chính là thông báo đáng ghét đó, 

các bác nhớ lấy nó, sau đó gõ bc *( xoá Break Point), F5 để thoát... 
mở WDASM, mở crk me đó lên, vào goto location 004011AB...Các bác sẽ nhìn thấy như vầy 

* Referenced by a (U)nconditionnal or ©conditional Jump at Adresses: 
|:004010C6©, : 004011110©, :00401119©... 

:00401197 61 popad >>Gọi thông báo đúng khi các bác nhập vào serial đúng 
:00401198 6A00 push 00000000 
:0040119A 68CE304000 push 004030CE 

..... 
* Referenced To : user32.MessageBoxA, Ord:0000h 
:004011A6 E845000000 call 004011F0 
:0004011AB 61 popad >>he he Gọi thông báo wrong serial đó... 

các bác đọc tới đây chắc cũng hiểu một phần phải không? Nên biết crk me này chỉ có hai thống báo khi nhập serial, một là thông báo "good job..", hai là thông báo "wrong serial..." Do đó ta có hai cách patch là hoặc tất cả những câu lệnh nhảy trong phần so sánh số serial ta đều đổi ngược lại hoặc là ta đổi từ popad 0004011AB sang 00401197 trong các câu lệnh nhảy... 
để cho newbie dễ hiểu tôi chọn cách một đó là đổi câu lệnh nhảy trong phần so sánh serial đều ngược lại hết... 

Nhắc lại phần trên, khi các bác goto location 0004011AB rồi, vệt sáng sẽ nằm tại dòng 
:0004011AB 61 popad... 
hãy di chuyển chuột lên trên chừng 20 dòng các bác sẽ thấy 

*Reference To: user32.GetDlgItemTextA, Ord: 0000h 

:00401109 E8D6000000 Call 004011E4 
:0040110E 85C0 Test eax,eax >> kiểm tra serial 
:00401110 0F8481000000 je 00401197 >>nếu đúng, nhảy tới thông báo "good job" 


yeah, vần đề nằm ở đây...hãy ghi nhớ tất cả những địa chỉ offset có chữ jne...Cụ thể là 5 địa chỉ 


1.00000519 
2.00000535 
3.0000054C 
4.00000563 
5.0000057C 


đóng WDASm lại, dùng Hiew mở HVA_UNPACKED.exe lên, 

gõ F5, gõ 00000519, nhấn F3, đổi 75 thành 74 
gõ F5, gõ 00000535, nhấn F3, đổi 75 thành 74 
gõ F5, gõ 0000054C, nhấn F3, đổi 75 thành 74 
gõ F5, gõ 00000563, nhấn F3, đổi 75 thành 74 
gõ F5, gõ 0000057C, nhấn F3, đổi 75 thành 74 

nhấn F9 để lưu, F10 để thoát... 
Mở lại file HVA_UNPACKED xem, gõ vào số serial gì nó cũng hiện lên thông báo "Good job,and now make a keygen xxxxxx"...he he he 

Chú ý : xxxxxx: số serial tầm bậy mà các bác nhập vào 



Bài viết này tôi viết dùng để giúp các bạn học tập...Nếu bạn chưa rành về số serial, thì hãy tập patch...hiện nay có nhiều phần mềm chỉ patch được, chứ ít crk được...Có thể thí dụ là Winrar3x...Ngô Vĩnh Hoàng là một crker khá quen thuộc với dân xài đồ chùa Việt Nam, cũng thường pacth chứ đâu có crk hoàn toàn đâu...Crk hay patch cũng được (theo tôi) miễn sao là mình đạt tới mục đích là xài được một phần mềm nào đó miễn phí mà không phải trả tiền...

Nhân đây tôi cũng post lên một bài của bác luucorp tut crack Crackme#1 của Softcracker_vn bên vncracking để các bạn tham khảo, ai cần source crackme thì PM me 

---------------------------------------------------------- 
Huong dan viet KEYGEN OF: crackme#1.exe 


Tools() 
--------- 
1. Hview ©SEN --> HVI 
2. W32DASM V8.93 --> W32 
3. crackme#1.exe --> C#1 

HeLp() 
-------- 
1)deprotect: 

Dau tien ban cu thu load C#1 trong W32 xem no ra sao, nhu thuong le bam vao menu Refs/.., ca 3 muc ( Menu.., Dialog.., String.. ) deu trang ca. (khong van de gi), thoat khoi menu va ta tiep tuc an F10: 

Ta toi doan code sau: 

:00401000 PUSH 0 ; 
* Reference To:KERNEL32.GetModuleHandleA, Ord:0000h 

:00401002 CALL 4068A3 
:00401007 MOV DWORD PTR [4070FB],EAX 
:0040100C XOR EAX,EAX 
:0040100E MOV AX,67 
:00401012 PUSH 0 
:00401014 PUSH 0040102C ; 
:00401019 PUSH 0 
:0040101B PUSH EAX 
:0040101C PUSH DWORD PTR [4070FB] 

* Reference To: USER32.DialogBoxParamA, Ord:0000h 

:00401022 CALL 40686d 

* Reference To: KERNEL32.ExitProcess, Ord:0000h 

:00401027 CALL 4068a9 


Doan ma tren la bo khung cua chuong trinh, phan rau ria nam o phia sau, tiep tuc keo xuong phia duoi va dung lai khi den doan ma sau: 

:004011D6 enter 0000,00 


:004011DF cmp bye ptr [4070FA],0 ---| 
:004011E6 jmp 004011E9 <---- khong on 

Ban doc doan ma nay, thay co dieu gi do khong on thi phai lam gi co chuyen vua cmp xong da jmp (la qua di mat), thuong sau cmp se la jnz, jz , jne, je, jnb,... hoac la jxx khac. Do vay ta thu tim xem co cai jxx nao ma xx<>mp (jxx <> jmp) o doan ma duoi khong, tot nhat ta nen vao HVI. 

Trong HVI nhay toi .004011E6. Keo xuong 1 it ban thay tai: 
.00401232: jne .00401C80 <-- 
co jne<>jmp roi, nhu the thi doan ma giua cmp va jne no lam cai quai gi? 
ban tiep tuc keo xuong phia duoi ban thay co nhieu doan co ma tuong tu 
nhu doan ma tren (ma giua cmp,jne). 
va... 
Theo thong ke cua toi thi, C#1 chi co 3 mau code duoc lap lai 1 cach kha don gian: 

mau1[19]=(235,1,131,156,235,1,213,235,8,53,157,235,1,137,2 35,3,11,235,247); 
mau2[24]=(96,232,3,0,0,0,131,235,14,235,1,12,88,235,1,53,6 4,235,1,54,255,224,11,97); 
mau3[24]=(235,1,227,96,232,3,0,0,0,210,235,11,88,235,1,72, 64,235,1,53,255,224,231,97); 

Chuong trinh C#1 duoc viet theo kieu: 

lenh1: vao ten 
mau1[19] 
lenh2: kiem tra ten 
mau2[24] 
lenh3: vao serial 
mau1[19] 
mau3[24] 



co nghia la mau1[19],mau2[24],mau3[24] co hoac khong chang anh huong gi. ki thuat co ten "muta code", duoc su dung trong 1 so virus (tu nhung nam <=95). vi vay, de cho ma duoc sang sua chung ta hay don sach 3 mau tren bang canh: tim 3 mau tren va dien (nop=90h=khong lam gi). toi da viet 1 chuong trinh de thu hien viec tren (uprotect.PAS). 

{deprotect.pas} 
type 
m24=Array[1..24] of Byte; 
const 
p19: Array[1..19] of Byte =(235,1,131,156,235,1,213,235,8,53,157,235,1,137,2 35,3,11,235,247); 
p24: m24 =(96,232,3,0,0,0,131,235,14,235,1,12,88,235,1,53,6 4,235,1,54,255,224,11,97); 
c24: m24 =(235,1,227,96,232,3,0,0,0,210,235,11,88,235,1,72, 64,235,1,53,255,224,231,97); 
var f:file; 
buf:m24; 
i,j,m,n:integer; 
se:longint; 
begin 
write('Please wait.'); 
assign(f,'CrackMe1.EXE'); 
reset(f,1); 
se:=$7e6; {} 
repeat 
seek(f,se); 
fillchar(buf[1],24,0); 
blockread(f,buf[1],24,j); 
for m:=1 to 19 do {p19} 
if buf[m]<>p19[m] then begin m:=1;break;end; 

for i:=1 to 24 do {p24} 
if buf[i]<>p24[i] then begin i:=1;break;end; 

for n:=1 to 24 do {c24} 
if buf[n]<>c24[n] then begin n:=1;break;end; 

buf[1]:=$90; {fill nop} 
seek(f,se); 
if m<>1 then 
begin 
for m:=1 to 19 do 
blockwrite(f,buf[1],1); 
inc(se,m) 
end else 
if i<>1 then 
begin 
for i:=1 to 24 do 
blockwrite(f,buf[1],1); 
inc(se,i); 
end else 
if n<>1 then 
begin 
write('.'); 
for n:=1 to 24 do 
blockwrite(f,buf[1],1); 
inc(se,n); 
end else 
inc(se); 
until j<24; {that's all} 
close(f); 
writeln('OK.'); 
end. 

2)keygen: 
Truoc tien ban chay deprotect.exe (o phan I). Khi da deproctect thi van de viet keygen la kha don gian (doi voi C#1). Ta load C#1 trong W32, va bat dau: Ta lai bam vao menu Refs/.., van trang. Nhu vay thi may xau(string) thong bao (not corect serial) o dau roi ? ban nghi no duoc bao ve? dung roi do: ban hay xem doan ma sau: 
:004011DF: 

. (**) 

:00401C80 
kha dai day, nhung viec no lam lai rat don gian: 

mov esi,40702E 
@loop: 
mov al,[esi] 
je @end 
xor al,43 
mov [esi],al 
inc esi 
jmp @loop 
@end 

(doan ma tren toi da luoc bo nhung lenh khong can thiet cua C#1) C#1 da bao ve xau(string) bang cach XOR chung voi 0x43. 
bay gio ta unXOR va luoc bo doan ma (**) xem sao: vao HVI co 2 viec: 
1.dien nop=0x90 vao (**) 
2.unXOR (40702E) 

viec 1: dien toan bo 0x90 tu .004011DF -> .00401C80 
(hoac dat 1 lech jmp 1280 tai .004011DF) 
viec 2: 
thuc hien kha thu cong hoac ban tu viet 1 ct lam dieu nay. 
[40702e+i] = [40702e+i]^0x43 (i=0..203=0xCC-1) 

Xong 2 viec tren la lai load C#1 trong W32, lai vao Refs/.., ai cha cai gi day co 1 muc da bat sang: ta click vao (String Data References) va cong viec con lai la cua ban. toi da doc va viet duoc keygen sau. 

{keygen.pas} 
var 
ten: string; 
i,w: byte; 
crc,se: longint; 
begin 
asm mov ax,3;int $10;end; 
writeln('----'#13#10'Crackme#1 for softcracker_vn - Keygen by dactrung'#13#10'----'); 
write('Name: ');readln(ten); 
write('Code: '); 
crc:= 0; 
for i:= 1 to length(ten) do 
begin 
w:= ord(ten[i]); 
if not(ten[i] in ['A'..'z']) then 
w:= (w mod 10)+ ord('A')+ (w div 10); 
if w<$61 then w:=w+ $20; 
w:= w-$61; 
crc:= (crc shl 1)+ w; 
end; 
crc:=crc xor $17021995; 
se :=crc xor $43545CD1; {magic number} 
se :=se xor $26051976; 
write(se); 
readln; 
end. 

thanks, 
dactrung 
luucorp@yahoo.com


----------------------------------------------------- 
Bai viet cua hacnho from HVA (xin vui long de dong nay khi ban trich dan lai--thanx a lot) 


------Het Phan III ---- 
Trong phần 4 sẽ đưa ra cho các bác một tut về các kỹ năng cơ bản để trở thành một cracker, cũng xin thông báo với các bác là từ phần 4 trở đi kèm theo mỗi bài hướng dẫn sẽ kèm theo hai bài hướng dẫn crack một soft, một game hay crackme...trong đó một bài do tôi crack và một bài nữa tôi sưu tầm do các đại ca crack...

Các bạn xem thêm các phần khác tại đây: Crack phần mềm
Loading...