* Possible Reference to Dialog: DialogID_0075
Burda Asm ile yazilmis satirlar var, yukaridaki satirin anlami su... Program bu noktada Registration Unsuccessful baslikli diyaloga basvuruyor. Bu pencere yanlis sifre girildiginde çiktigina göre aradigimiz kod buralarda biryerlerde fakat devam etmek için biraz Assemble ögrenmemiz gerekicek 
Push, Lea, call, jne, jmp, jne, .... bunlarin hepsi asm komutlari fakat biz konu program kirmaysa bizi ilgilendirenler sadece mantiksal seçim yaptiran komutlar... su suna esitse söle yap, bu bundan büyükse böle yap falan gibi seyler yani... Açiklamalari yapicam birazdan siz sadece okuyun anlamasanizda simdilik... Bu tip komutlara örnek olarak Jne, Jmp, Je, jae, jb, je falan gibi komutlar var asm dilinde... Farkettiyseniz hepsi J harfiyle basliyo...
Program Registration unsuccessful diyaloguna ihtiyaç duyduguna göre bu noktadan biraz önce sifrenin dogru yada yanlis oldugunu kontrol eden kod yazili olmali, bu yüzden * Possible Reference to Dialog: DialogID_0075 satirindan yukari dogru her satira bakip J ile baslayan komut ariyoruz... biraz yukari çiktiktan sonra asagidaki gibi satirlar görüceksiniz. highlighted satiri asagidaki gibi Je ile baslayan komutun üstüne gelin. o satir yesil olucak...
simdiii..... Je li satiri sectikten sora status bara bakiyoruz @Offset yazisini gördünüzmü? onu bi köseye not ediyoruz... sonundaki h harfini ve bastaki 0lari not etmenize gerek yok.. hatta not etmeyin. yani 256B3'ü not edin.
Burdaki offset, aradigimiz kodun exe içindeki yeri... tamamdir istedigimizi aldik artik W32Dasm yi kapatabiliriz. Hex Workshopu açin, hatirliyorsaniz bi yedegini almistik, siz program files in icinde duran orjinalini açin...
Simdi menuden File > open a tiklayarak daha önceden yarattigimiz Hworks.exe nin yedegini açalim. karsiniza yine bi sürü sey çikti... Edit Menusunden Gotoyu seçin, Beggining of File'i tiklayip Offset'e 256B3yazin. aynen assadaki gibi yani..
Gotoya tiklayin... karsiniza söle bisi gelicek...
Imlecin bulundugu konumun yaninda 0F 84 bulunuyor... Bu biraz önce W32Dasm programinda gördügümüz Je komutunun Hex kodundaki anlami bu... Hatirlarsaniz W32 asm programinda Registration unsuccessful diyalogundan önceki J ile baslayan ilk komutu aramistik. bu komut Je yerine baska birseyde olabilirdi o zaman burda 0F 84 yerine baska bir kod da olabilirdi... Yani bu offsette 0F 84 bulmamizin sebebi serialin dogrulugunun Je komutuyla kontrol edilmesidir. farkli komutlarin Hex kodlarini da assagida verdim... ASM komutlari genellikle kisaltmalardan olustugu için yanlarina ingilizce anlamlarini yazdim.
Hex Kodu: |
ASM Kodu: |
Anlami: |
75 yada 0F85 |
jne |
jump if not equal |
74 yada 0F84 |
je |
jump if equal |
EB |
jmp |
jump directly to |
90 |
nop |
no operation |
77 yada 0F87 |
ja |
jump if above |
0F86 |
jna |
jump if not above |
0F83 |
jae |
jump if above or equal |
0F82 |
jnae |
jump if not above or equal |
0F82 yada 72 |
jb |
jump if below |
0F83 yada 73 |
jnb |
jump if not below |
0F86 yada 76 |
jbe |
jump if below or equal |
0F87 |
jnbe |
jump if not below or equal |
0F8F yada 7F |
jg |
jump if greater |
0F8E |
jng |
jump if not greater |
0F8D |
jge |
jump if greater or equal |
0F8C |
jnge |
jump if not greater or equal |
0F8C |
jl |
jump if less |
0F8D |
jnl |
jump if not less |
0F8E |
jle |
jump if less or equal |
0F8F |
jnle |
jump if not less or equal |
Eveet kodun yerini bulduk, kodu da bulduk sira geldi kodu ters çevirmeyee... Çok basit... Je nin anlami Jump if equal, O zaman bunun yerine Jump if not Equal (Jne) komutunu koyarsak kod tam tersine çalisicak. Jne nin hex karsiligi 0F 85... o zaman buldugumuz degerin yerine bunu girelim... amman dosyaya insert yapmiyalim, dosya boyutu degisirse büyük ihtimalle çalismaz çünkü. 0F 85 in üstüne yazalim yani, 84 ü 85 yapalim. üstüne yaziyorsaniz Hex Workshop sizi uyaricak zaten.
Eveet bunuda yaptiysaniz artik save edin, Hex workshoptan çikin. Hex workshopun exe dosyasini silip yerine degistirdigimiz exe dosyasini koyun... önceden yaptigimiz gibi helpden registrationa basin... Ve kodu yine sallayin
kodun dogrulandigini göreceksiniz
Size username ve organization soracak ve register olmus olacak...
Biraz uzun ve zahmetli ama basit sayilir. Bunu degisik programlarda da deneyebilirsiniz. yada programlama bilginiz varsa burda ögrendiginiz offsetteki kodu degistiren bir program yazabilirsiniz.
Bu kadari programi kirmaniza yeter ama eger baskalarinin kullanmasi için programi kiran bir exe dosyasi yaratmak istiyorsaniz o konudada yardimci oliim... Asagidaki örnek hex workshop için yazdigim Crackin source code u, belki faydali olur.
Uses Crt;
Const A: Array[1..2] of Record {<-------- 2 byte cracklenecek}
A : Longint;
B : Byte;
End =
((A:$256B3;B:$0F),(A:$256B3;B:$84));
{<--offset "256B3" ve "0F 84" deisecek}
Var Ch:Char;
I:Byte;
F:File;
FN:file of byte;
Size:longint;
Begin
Writeln('My Hex Workshop Crack ');writeln('Hex Workshop V2.54 Crack');
Assign(F,'HWORKS.EXE'); {<-------------- Cracklenecek dosyanin adi}
{$I-} Reset(F,1); {$I+}
If IOResult <> 0 then
begin
writeln('Dosya bulunamadi');
halt(1);
end;
For I:=1 to 2 do {<---------------------- 2 byte Cracklenecek}
Begin
Seek(F,A[I].A);
Ch:=Char(A[I].B);
Blockwrite(F,Ch,1);
End;
Writeln('Dosya Cracklendi!');
End.
|
Bu olayda biraz zahmetli ama programlara 100lerce dolar saymaktan iyidir 
Bosuna mi yaziom acaba ya
bu kadarini yapicak adam çikarmi merak ediorum walla... bunu becerdiyseniz bana mail atin ya merak ettim
)