|
Şimdi buldum o string değerini. Program ilk açılan pencerede key soruyor bir. Orda devam ederseniz programın içindeki registration menüsünde istiyor bir de. Ben hep devam edip o menüden yapıyordum o zaman çıkmıyordu ama ilk ekranda yapınca çıktı bu sefer. Fakat breakpoint koyup çalıştırınca yine program alakasız bir yerde durdu. Sanırım stringler sonradan oluşuyor dediğin gibi. Edit: PEiD ile baktığımda Visual C++ 6.0 [Debug] diyor. Her hangi bir koruma ya da paketleme yok sanırım burda. |
|
Program breakpoint'de key'i girdikten ve butona bastıktan sonra duruyor, değil mi? Eğer öyleyse bu breakpoint'i oldukça geriye almaya çalış. PUSH EBX PUSH ECX satırları büyük ihtimalle bu rutinin başlangıcı olacaktır. Zaten bu da C compiler'ın method ayrım yönteminden geliyor. Evet paketleme yok gibi görünüyor. |
| Hayır breakpoint koyuyorum sonra programı baştan çalıştırıyorum fakat daha ilk pencere gelmeden breakpointte duruyor. Yani benim breakpoint koyduğum yer ile durduğu yer arasında alaka yok. Belki aynı yerde duruyor ama o durduğu yer artık o mesajın olduğu yer olmuyor. |
| Kontrol birden fazla yerde gerçekleşiyor olabilir. Breakpoint'deki ilk duruşunda "play" tuşuna bas ve program devam etsin çalışmaya. Sonra key girme kısmına gel ve dene bakalım orada duracak mı. |
| Yaptım aynı breakpointte defalarca durdu ve her defasında ayrı bir string değeri aldı. En sonunda bizim ihtiyacımız olan kısımda durdu ve ben de oraya nerden jumpladığını takip ederek yukarı doğru çıkıyorum şimdi. |
Ben de o yoldan giderdim büyük ihtimalle. Yine de bana göre bulunduğun kısım stringlerin decrypt edildiği rutin. İşlemin tamamlanmasını bekle, ardından string'lere bir daha göz at. String'e erişilen yeni yerler olacaktır, oralara breakpoint'ler yerleştir. Ayrıca hangi versiyonunu kırmaya çalışıyorsun Winzip'in? Link verirsen ben de incelerim. |
|
WinZip 8.0 ayrıca izlediğim yol bir işe yaramadı. Stringlerin decrypt edildiği yer bence de. Orada bir sürü değişik string oluşuyor çünkü akış sırasında. Link'i de vereyim sana. http://www.oldversion.com/download_WinZip_8.0.html |
| hocam lena nın linklerini bana pm atabili misin acaba? |
| Koyuyorum hemen. Ayrıca lena151 diye aratırsanız bulabilirsiniz dersleri. |
Eğer açılışta takılırsa direk devam ettirin programı. Key girme ekranına gelip key girin ve direk rutinin içinde olacaksınız. |
Programı hiç breakpoint koymadan çalıştırdım. Ardından yüklenmesini bekledim. Sonra Olly'de string'lere baktım. Kayıt edilmediğine dair string'ler gördüm ve konumlarına baktım. Onlardan Incorrect key... içeriği olana breakpoint koydum ve programa rastgele key girdim. Sonra hareketleri takip ettim ve hepsi buraya çıkarttı. |
|
IDA ile daha derine daha kolay inmek mümkün çünkü akış diyagramı benzeri bir çıktı sunuyor. Örneğin Olly'de baktığın yerin IDA'daki görüntüsü şöyle: < Resime gitmek için tıklayın > |
Evet, ayrıca program textbox'dan key'i GetDlgItemTextA API'siyle alıyormuş. |
Demekki program string'leri sonradan oluşturuyor. İlk başta şifreli halde olabilirler. Kodun en başına bakmaktansa ilerleyen kısımlarına göz at. Dikkatini çeken birşey elbet çıkacaktır. Zaten iyi korunan bir programsa Olly yerine IDA Pro kullanmak daha iyidir. Görsel bir çıktı sunar ve method'lara bile ayırabilir kodu. Yine de önce Olly öğrenilmeli çünkü IDA oldukça karmaşık.
Winzip'in packlenmemiş olduğuna emin misin? Öyle bir koruma varsa daha stub ile uğraşıyor olabilirsin.
Bu mesaja 1 cevap geldi. Cevapları Gizle