bu yazimin amaci programci arkadaşlarin
yazdiklari programlarin kırılmasini daha
cok zorlaştırmalari ve craker\'lerin izledikleri
yollar.
1- oncelikle yazdiğiniz programi pacetlemelisiniz
paket programini secerkende fazla bilinmeyen paket
programalarini tercih edin.
Bu programinizi kırmaya calişan kimseye hem caydiricilik
hemde işini zorlaştırmiş olursunuz.EXE dosyanizla oynanmasini
unasmler programlari ile programalariniz incelenmesi onlersiniz.
2- Bir program yazdiğinizda genelikle kullanicinin kayit olmasi için
bir şifre istersiniz.
a-crakırlar ilk once program yanliş şifre girildiğininde hata mesaji
veriyormu diye bakarlar (genellikle coğu program \"girdiğiniz sifre yanliş\"
diye mesaj verir ne kadar yanliş....)siz sifre konturolu yaptiktan sonra
mesaj vermeyin kullaniciyi değişik yollardan uyarin.
b-crakırlar regmon, filemon gibi programlarla programinizin hangi register
kayitlarinı okuyup yazdiğini hangi dosyalara eriştiğini inceler.(haliyle
sifrenizi ya bir dosyada yada bir register kaydinda tutacaksiniz)
bu yuzden programinizin kayitli olup olmadiğina bakan kodunuzu
register kayitlarinizi veya sifre dosyasini hemen okuyunca caliştirmayin
cunku softice gibi programlarla craker register kayıtlarina veya dosya işlemlerinize
hemen bir breakpoint koyar ve bu işlemlerden sonra ne yaptiğiniza bakar.
tabi sifre konturol kodunuza erişmesi zor olmaz.
c-mesala bir edit vasitasiyla kullaniciyi programi kayit edecek tarzda
bir form hazirladiniz.
editden sifreri alirken.parca parca alin (edit nesnesinin change olayindan olabilir).
orn:
String sifre;//
sifre=Edit1.text; //yanliş
cunku craker siz kullanicin girdiği sifreri alirken bura hmemcpy ,
getwindowtexta,getdlgitemtexta gibi apilere breakpoint koyarak sizin
program kodunuzu rahatlikla izleye bilir.
d-sadece bir tane sifre kontrol procuderi kullanmayin. bir birinde bağimsiz bir cok procuder
hazirlayin ve programinizin ceşitli evrelerinde bu procuderlerle programinizin kayitli
olup olmadiğini kontrol edin.
orn:
mesala bool sifre_dogrumu(...);
tarzinda bir sifre kontrol procuderi yazdiniz
ve sifreri kontrol ediyoruz
if(!sifre_dogrumu(..))//yanlişsa
{
}
bu kodu asmlere cevirirsek
call 440000 //şifre dogrumu
jnz 4XXXXX //burdaki jnz kodunu jz yaptıkmı sifre doğru olur.
işte programinizin bir baytini değiştirerek program kırıldı.
yazdiklari programlarin kırılmasini daha
cok zorlaştırmalari ve craker\'lerin izledikleri
yollar.
1- oncelikle yazdiğiniz programi pacetlemelisiniz
paket programini secerkende fazla bilinmeyen paket
programalarini tercih edin.
Bu programinizi kırmaya calişan kimseye hem caydiricilik
hemde işini zorlaştırmiş olursunuz.EXE dosyanizla oynanmasini
unasmler programlari ile programalariniz incelenmesi onlersiniz.
2- Bir program yazdiğinizda genelikle kullanicinin kayit olmasi için
bir şifre istersiniz.
a-crakırlar ilk once program yanliş şifre girildiğininde hata mesaji
veriyormu diye bakarlar (genellikle coğu program \"girdiğiniz sifre yanliş\"
diye mesaj verir ne kadar yanliş....)siz sifre konturolu yaptiktan sonra
mesaj vermeyin kullaniciyi değişik yollardan uyarin.
b-crakırlar regmon, filemon gibi programlarla programinizin hangi register
kayitlarinı okuyup yazdiğini hangi dosyalara eriştiğini inceler.(haliyle
sifrenizi ya bir dosyada yada bir register kaydinda tutacaksiniz)
bu yuzden programinizin kayitli olup olmadiğina bakan kodunuzu
register kayitlarinizi veya sifre dosyasini hemen okuyunca caliştirmayin
cunku softice gibi programlarla craker register kayıtlarina veya dosya işlemlerinize
hemen bir breakpoint koyar ve bu işlemlerden sonra ne yaptiğiniza bakar.
tabi sifre konturol kodunuza erişmesi zor olmaz.
c-mesala bir edit vasitasiyla kullaniciyi programi kayit edecek tarzda
bir form hazirladiniz.
editden sifreri alirken.parca parca alin (edit nesnesinin change olayindan olabilir).
orn:
String sifre;//
sifre=Edit1.text; //yanliş
cunku craker siz kullanicin girdiği sifreri alirken bura hmemcpy ,
getwindowtexta,getdlgitemtexta gibi apilere breakpoint koyarak sizin
program kodunuzu rahatlikla izleye bilir.
d-sadece bir tane sifre kontrol procuderi kullanmayin. bir birinde bağimsiz bir cok procuder
hazirlayin ve programinizin ceşitli evrelerinde bu procuderlerle programinizin kayitli
olup olmadiğini kontrol edin.
orn:
mesala bool sifre_dogrumu(...);
tarzinda bir sifre kontrol procuderi yazdiniz
ve sifreri kontrol ediyoruz
if(!sifre_dogrumu(..))//yanlişsa
{
}
bu kodu asmlere cevirirsek
call 440000 //şifre dogrumu
jnz 4XXXXX //burdaki jnz kodunu jz yaptıkmı sifre doğru olur.
işte programinizin bir baytini değiştirerek program kırıldı.

