Arama butonu
60
Cevap
2832
Tıklama
0
Öne Çıkarma
Cevap: Donanımhaber Reverse Engineering (2. sayfa)
S
16 yıl (8226 mesaj)
Yarbay

quote:

Orijinalden alıntı: Topal Yılan

O yolu da denedim. Bulmuyor o mesajı. Bir kere buldum şans eseri nasıl bulduysam aynı şekilde arama yaptım çıktı. Breakpoint koydum çalıştırdım ama yine gitti o satır. Breakpoint koyduğum satır da başka bir şey gibi duruyordu.


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.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

Ş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.





< Bu mesaj bu kişi tarafından değiştirildi Topal Yılan -- 6 Şubat 2011; 14:21:40 >
Bu mesaja 1 cevap geldi.
S
16 yıl (8226 mesaj)
Yarbay

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.





< Bu mesaj bu kişi tarafından değiştirildi SSH -- 6 Şubat 2011; 14:23:02 >
Bu mesaja 1 cevap geldi.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

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.


Bu mesaja 2 cevap geldi.
S
16 yıl (8226 mesaj)
Yarbay

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ı.


Bu mesaja 1 cevap geldi.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

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.



S
16 yıl (8226 mesaj)
Yarbay

quote:

Orijinalden alıntı: Topal Yılan

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.


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.





< Bu mesaj bu kişi tarafından değiştirildi SSH -- 6 Şubat 2011; 14:34:59 >
Bu mesaja 1 cevap geldi.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
S
16 yıl (8226 mesaj)
Yarbay

T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

Ben de diğer modülleri kurcalıyorum.


Bu mesaja 2 cevap geldi.
O
16 yıl (2226 mesaj)
Binbaşı

hocam lena nın linklerini bana pm atabili misin acaba?



S
16 yıl (4955 mesaj)
Yarbay

S
16 yıl (8226 mesaj)
Yarbay

0043F6CF'ye breakpoint koyar mısın?


Bu mesaja 1 cevap geldi.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

Koyuyorum hemen. Ayrıca lena151 diye aratırsanız bulabilirsiniz dersleri.


Bu mesaja 1 cevap geldi.
S
16 yıl (8226 mesaj)
Yarbay

quote:

Orijinalden alıntı: Topal Yılan

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.


Bu mesaja 1 cevap geldi.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

S
16 yıl (8226 mesaj)
Yarbay

quote:

Orijinalden alıntı: Topal Yılan

Peki bunu nasıl bulduk?


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ı.


Bu mesaja 2 cevap geldi.
S
16 yıl (8226 mesaj)
Yarbay

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 >


Bu mesaja 1 cevap geldi.
T
16 yıl (2533 mesaj)
Teğmen
Konu Sahibi

Tamam anladım. Şimdi bunu inceliyoruz o zaman.


Bu mesaja 1 cevap geldi.
S
16 yıl (8226 mesaj)
Yarbay

quote:

Orijinalden alıntı: Topal Yılan

Tamam anladım. Şimdi bunu inceliyoruz o zaman.


Evet, ayrıca program textbox'dan key'i GetDlgItemTextA API'siyle alıyormuş.