2001 yılında hırs yapıp assembly öğrenmiştim.
win98 de ilk kurduğum numega firmasının Softice adlı debuggeri ile hırs yapıp, ülkemizce çok iyi bilinen bir yazılım firmasının programlarının seriallerini ram çöplüğünde bpx hmemcpy ile dondurup buluyordum, sonra Mr. Stop ve rus crackerin dersleri ile haşir neşir olmuştum o dönem (yanlış anlaşılmasın, cracking nasıl oluyor amaç öğrenmekti) sonra Miki Soft XP yi üretince
w32dasm ile tanıştım, bu crack işi inanılmaz derecede kolaylaştı, adeta 2-3 dk da bir program kırılabilir duruma geldi, o dönemde sadecee visual basic, qbasic, biraz da assembly bilgim vardı.
exe paketleyiciler yeni yeni kullanılmaya başlayınca bununda unpackerları üretilmeye, İnternet ortamında yayılmaya başlandı, astalavista. box. sk nin virüs yaydığı yıllardı.
bir yazılımı korumanın tek yolu, kendinize ait bir paketleyici yazmanız ve yazılım içerisinde ne kadar string varsa gizlemenizdir.
Dongle ler, hd seri no veya başka bir kart seri no larının CMP işe yaramaz.
Koruma Yöntemlerden biri de, yazılım içerisinde bulunan lisans kontrollerini asla showmessage gibi windowtexta gibi apileri kullanmayın, işi gizli yapın (hani bazen yaparlar, showmessage('Lisans Başarısız') filan gibi bunu asla yapmayın, hiç uyarı mesajı verdirmeyşn, lisans doğruysa textboxlar renkli olsun, veya labeller enabled true olsun, gerçi ollydbg de step over ile trace yapılırken zavallı exenin DNA kod döngüsü alınıp ona göre de serial üretilwbiliniyor fakat, bu kısımlardaki stringlerin çok iyi şifrelenmesi gerekir, bildiğim en iyi Koruyucu Themida dır, bunla birlikte antidebugging kontrolü yapan kodlar veya servisler yazılmalıdır, crackerin başbelasıdır servis uygulaması ile ana exe birlikte çalışması ve antidebugging LIBRARY ve en önemlisi lisans kontrolünü en az 20 - 30 defa yazılım içinde farklı değişkenlerle farklı fonksiyon isimleriyle kontrol ettirmek ve bu fonksiyonlara giren çıkan değerlerden biri bile yanlış olduğu vakit = yani cracker exe içinde lisans kontrolünü yapan fonksiyonlardan birinin jump if equals conditional operandıyla oynadıysa, geriye kalan 29 fonksiyon içine giren çıkan değerler eşit olmayacağı için program mantıksal çökmeye gider, yani burada fonksiyonların 30 unun da aynı sayıyı üretmesi ve compare etmesi gerekir ki yazılım çökmesin
assembly de conditional jumperlar, resetler, comparatorlar, taşıyıcılar adreslemeler, registryler vardır, delphide
if a = 10 then begin
showmessage ('lisans ok')
end
yazılan bu kod
assembly de
MOV EAX, ESI
...
CMP ESI, EAX
..
...
0040A40E JE 00407BB0
...
gibi eşitse 00407BB0 adrese zıpla ve işini yap manasına gelir.
yada tam tersi de olabilir.
if then bloğu => CMP ve JE
veya if <> then => CMP ve JNE manasına gelir
CMP = compare , je= jump if equals
nop => no operation anlamındadır değer olmadığı için düz dallanmayla yoluna devam ediyor.
genelde en çok kullanılan NOP lamadır.
ben en çok jne => je veya je=>jne
tarihsel denetimi yapan jnb, jb, jge je, jbe conditional jumperlar kullanarak exe nin Dna sını değiştiriyordum. demo oluyor sana full sürüm, title de demo yazmasına rağmen.
E tabii ki bazı firmalar bunu bilerek de stringleri gizlemeden açık bırakıyorlar ki yazılmları rahatça kırılabilsin ki bolca yayılsın.
maksat işleyişi öğrenmekti.
win98 de ilk kurduğum numega firmasının Softice adlı debuggeri ile hırs yapıp, ülkemizce çok iyi bilinen bir yazılım firmasının programlarının seriallerini ram çöplüğünde bpx hmemcpy ile dondurup buluyordum, sonra Mr. Stop ve rus crackerin dersleri ile haşir neşir olmuştum o dönem (yanlış anlaşılmasın, cracking nasıl oluyor amaç öğrenmekti) sonra Miki Soft XP yi üretince
w32dasm ile tanıştım, bu crack işi inanılmaz derecede kolaylaştı, adeta 2-3 dk da bir program kırılabilir duruma geldi, o dönemde sadecee visual basic, qbasic, biraz da assembly bilgim vardı.
exe paketleyiciler yeni yeni kullanılmaya başlayınca bununda unpackerları üretilmeye, İnternet ortamında yayılmaya başlandı, astalavista. box. sk nin virüs yaydığı yıllardı.
bir yazılımı korumanın tek yolu, kendinize ait bir paketleyici yazmanız ve yazılım içerisinde ne kadar string varsa gizlemenizdir.
Dongle ler, hd seri no veya başka bir kart seri no larının CMP işe yaramaz.
Koruma Yöntemlerden biri de, yazılım içerisinde bulunan lisans kontrollerini asla showmessage gibi windowtexta gibi apileri kullanmayın, işi gizli yapın (hani bazen yaparlar, showmessage('Lisans Başarısız') filan gibi bunu asla yapmayın, hiç uyarı mesajı verdirmeyşn, lisans doğruysa textboxlar renkli olsun, veya labeller enabled true olsun, gerçi ollydbg de step over ile trace yapılırken zavallı exenin DNA kod döngüsü alınıp ona göre de serial üretilwbiliniyor fakat, bu kısımlardaki stringlerin çok iyi şifrelenmesi gerekir, bildiğim en iyi Koruyucu Themida dır, bunla birlikte antidebugging kontrolü yapan kodlar veya servisler yazılmalıdır, crackerin başbelasıdır servis uygulaması ile ana exe birlikte çalışması ve antidebugging LIBRARY ve en önemlisi lisans kontrolünü en az 20 - 30 defa yazılım içinde farklı değişkenlerle farklı fonksiyon isimleriyle kontrol ettirmek ve bu fonksiyonlara giren çıkan değerlerden biri bile yanlış olduğu vakit = yani cracker exe içinde lisans kontrolünü yapan fonksiyonlardan birinin jump if equals conditional operandıyla oynadıysa, geriye kalan 29 fonksiyon içine giren çıkan değerler eşit olmayacağı için program mantıksal çökmeye gider, yani burada fonksiyonların 30 unun da aynı sayıyı üretmesi ve compare etmesi gerekir ki yazılım çökmesin
assembly de conditional jumperlar, resetler, comparatorlar, taşıyıcılar adreslemeler, registryler vardır, delphide
if a = 10 then begin
showmessage ('lisans ok')
end
yazılan bu kod
assembly de
MOV EAX, ESI
...
CMP ESI, EAX
..
...
0040A40E JE 00407BB0
...
gibi eşitse 00407BB0 adrese zıpla ve işini yap manasına gelir.
yada tam tersi de olabilir.
if then bloğu => CMP ve JE
veya if <> then => CMP ve JNE manasına gelir
CMP = compare , je= jump if equals
nop => no operation anlamındadır değer olmadığı için düz dallanmayla yoluna devam ediyor.
genelde en çok kullanılan NOP lamadır.
ben en çok jne => je veya je=>jne
tarihsel denetimi yapan jnb, jb, jge je, jbe conditional jumperlar kullanarak exe nin Dna sını değiştiriyordum. demo oluyor sana full sürüm, title de demo yazmasına rağmen.
E tabii ki bazı firmalar bunu bilerek de stringleri gizlemeden açık bırakıyorlar ki yazılmları rahatça kırılabilsin ki bolca yayılsın.
maksat işleyişi öğrenmekti.

