25 Ocak 2012 Çarşamba

SoftICE Kullanım Klavuzu

SoftICE Kullanım Klavuzu
En fazla e-maili SoftICE yüzünden alıyorum o yüzden daha detaylı bir açıklama yazmaya karar verdim.Umarım artık anlaşılır.
SofICE Kurulumu
SoftICE ı iyi bir şekilde kurup ayarlamazsanız gerekli verimi alamazsınız.Kurulum ekranında önemli olan 3 nokta var

1.       Video Adapter
2.       Mouse
Video
Ekran kartı ayarları SoftICE'ın çalışması için çok gereklidir.Bu ayarları yanlış yaparsanız SoftICE ı kullanmanız mümkün olmıyabilir.Bu ayarlara çok dikat edin.İlk olarak ekran kartnız listede varsa onu seçin.Daha sonra Test tuşu ile çalışıp çalışmadığınız kontrol edin.Eğer ekran kartınız listede yoksa yahut ilerde problem yaşarsanız ekran kartı olarak "Universal Video Driver" seçeneğini seçin.
Mouse
Mouse unuzun tipi neyse ona uygun mouse'u seçin.Yanlış mouse u seçerseniz SoftICE sapıtabilir o yüzden dikkatli olun.

SoftICE'ın Ayarlanması
SofICE i iyi ayarlıyamazsanız programdan faydalanamazsınız.İlk olarak bir boot menüsü oluşturalım böylelikle windows her açıldığında bize SofICE ile açılıp açılmıycağını sorsun.Autoexec.bat ve config.sys dosyalarını aşağıdaki gibi değiştirin.

Autoexec.bat dosya örneği. !!!!Sizin autoexec.bat dosyanızın sonuna bu satırları ekleyin.Eğer başa eklerseniz sorun yapar.!!!
Rem -----Buradan itibaren kopyalayın-------
goto %config% 
REM Load SoftICE - SoftICE in kurulu oldugu yer onemli !!    
:SICE 
C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE 
REM SoftICE olmadan baslangic 
:NORM 
Rem ----Buradan kesin------ 
Config.sys dosya örneği.!!!!Sizin config.sys dosyanızın sonuna bu satırları ekleyin.Eğer başa eklerseniz sorun yapar.!!!
Rem -----Buradan itibaren kopyalayın------- 
REM Menüyü olustur. 
[MENU] 
MENUITEM NORM,Windows 98 
MENUITEM SICE,SoftICE ile Windows 98  
MENUDEFAULT NORM,5 
[NORM] 
[SICE] 
Rem ----Buradan kesin------ 
 
Benim kullandığım winice.dat dosyasını download edin ve SoftICE ın kurulu olduğu klasöre kopyalayın.Winice.dat 'a yaptığınız her değişikliğin etkili olabilmesi için yeniden windowsun başlatılması lazım.Bu yüzden programı kurduktan sonra winice.datı değiştirip öyle restart atın.
SoftICE Komutları
SoftICE kurmamıza rağmen etkili bir şekilde kullanmayı öğrenmek o kadar kolay değildir.Kullana kullana sizde bir şeyler öğreneceksiniz.Fakat burada SoftICE 'ın nasıl kullanıldığına dair bir kaç örnek verelim.

SoftICE a geçmek için Ctrl ve D tuşuna aynı anda basın.Bu bütün programları durduracak ve sizi SoftICE ekranına götürecetir.
SoftICE a geçince bir kaç pencere ve değişik bilgiler göreceksiniz.Alttaki pencere bizim komutları yazdığımız input penceresi.Bazı komutalar şöyle..
                     =
SoftICE dan çık.
bpx                        =
SoftICE a belli api kodlarında dur emri
bpm                 =
SoftICE a belli bellek bölgelerinde dur emri
bpr                  =
Belli hafıza bölegelerinde dur emri
                      =
Belleği ve orada yazan değerleri göster
e                        =
Bellekteki değerleri değiştirir
cls                     =
Input penceresini temizle.
s 0 l ffffffff 'text'=
Hafızada text yazısını arar

Örnek vermek gerekirse :
bpx getdlgitemtexta SoftICE a bu api kodunu görünce dur komutunu verir
bpm 0157:0009AC2D SoftICE a o belleğe erişildiği zaman dur komutunu verir.
bpr  0157:00643345 0157:00643345 iki yer arasında bir yere erişildiği zaman dur komutunu verir
d 00456787 o bölgedeki bellekteki değerleri gösterir.
d eax eax registerinin belirttiği yerdeki belleği gösterir.

 

Birde input penceresinde kullandığımız komutalardan da bahsedelim.
bl                 =
O andaki breakpointleri gösterir((00) BPX #0028:09876543 C=01 gibi)
bc                 =
O anda konulmuş break pointleri temizler (bc 1 bir nolu breakpointi siler.)
bd                 =
Break pointi kapatir(bd 0 0 nolu breakpointi kapatır)
be                 =
Break pointi açar (be 0, kapatılan 0 nolu breakpointi açar)
?
                  = Belli bir register veya sayının  değerini gösterir.( ? 23 # gibi)

SoftICE Problemleri
Bu problemlerin %90 ı winice.dat dosyasını düzenlemediğiniz için olmaktadır.

Uyarı: Problemlerinize geçmeden önce lütfen winice.dat dosyasını download edip SoftICE ı kurduğunuz klasöre kopyalayın.
1. SoftICE a geçiyorum breakpoint koyunca symbol not defined diyor.
- Breakpoint koyduğunuz dll winice.dat dosyasında bulunmuyor demektir.Kernel32.dll user32.dll vs yi winice.dat dosyasında bulun ve o satırın en başındaki ; i kaldırın.

2. Bazen SoftICE a kendiliğinden geçiyor ve bir daha geriye dönemiyorum.
- R tuşuna basın ve daha sonra faults off yazın.
 

3. Ctrl+D kombinasyonunu Alt+Z şeklinde nasıl değiştirebilirim;
-   winice.dat dosyasının INIT kısmını şu şekilde değiştirin

INIT="code on; altscr off; lines 60; wc 32; wd 8; faults off;ALTKEY ALT Z;X;"
4. Ekran boyutunu nasıl değiştirebilirim.
- wc,wd lines değerlerini değiştirerek bunu yapabilirsiniz.

5. SoftICE bir sürü loading unloading vs mesajları gösteriyor bunu nasıl kapatabilirim
- winice.dat ı açın ve VERBOSE=OFF satırını ekleyin.Yahut loader32.exe yi açın.Edit/SoftICE initializing settings den "Disable diagnostic messages" ı seçin.

6. Init kısmına eklediğim komutlar çalışmıyor.
- Init kısmına eklenen komutlar ; ile birbirinden ayrılmalı ve en sonunda X; olmalıdır.X komutu SoftICE dan çık demek oldupundan eğer X; den sonra komut eklerseniz bunlar çalışmıycaktır.Kısacası init kısmı şöyle olmalıdır. INIT="command1;command2;...;commandn;X;"

7. Bazen SoftICE girdiğim zaman mouse deli gibi oynamaya başlıyor.Hiç bir şey yapamıyorum.Bu olay bazen SoftICE dan çıktığım zamanda oluyor.
- Bu olay mouse işlem yaparken SoftICE a geçildiği zaman oluyor.Bu yüzden mouse un senkronizasyonu bozuluyor.Bunu düzeltemek için bir kaç kez Ctrl+M tuşuna basın.Bir kaç kez bastıktan sonra mouse eski haline dönecektir. Eğer bu olay windows ortamına geçtiğinizde olursa Ctrl+Alt+Del tuşlarına bir kez tıklayın Task Manager geldiğinde hemen Esc ile çıkın.Buda mouse u eski haline getirecektir.

8. Bir program HKLM\Software\DandikSoft\Serial diye bir keyi okuyor.Ben bpx regqueryvalueexa şeklinde breakpoint koyuyorum ama SoftICE yüzlerce kez duruyor.Sadece belli keye ulaşıldığı zaman nasıl durdurabilirim.
- Bu soruyu biraz açıklıyarak cevap vermek istiyorum bunu iyi anlarsanız çok işinize yarar.Şimdi ilk olarak RegqueryValueexa fonkisyonu ne işe yarar ve hangi parametreler yollanır ona bir bakalım.win32.hlp dosyasını açıyoruz ve şunu görüyoruz

LONG RegQueryValueEx(
    HKEY  hKey,          // çağrılacak keyin handle ı 
    LPTSTR  lpszValueName,       // alınıcak değerinin isminin olduğu adres
    LPDWORD  lpdwReserved,      // saklı 
    LPDWORD  lpdwType,            // değer tipinin adresi
    LPBYTE  lpbData,   // fonksiyon sonucunun adresi 
    LPDWORD  lpcbData              // fonksiyon sonuc adresinin büyüklüğü 
   );
Bu fonksiyon stdcall şeklinde bir fonksiyon yani parametreler en sondan başlayarak push ediliyor.Siz bu breakpointi koyup SoftICE geçtiğiniz zaman ESP şu şekilde olacaktır
...
[ESP+18h] - lpcbData
[ESP+14h] - lpData << Buraya fonksiyonun sonucu geliyor.
[ESP+10h] - lpType
[ESP+0Ch] - lpReserved
[ESP+08h] - lpValueName << Alınıcak olan değerin ismi.
[ESP+04h] - hKey
[ESP+00h] - return EIP << Call'ın yapıldığı adres.
 


Yani SoftICE durduğu zaman biz dd esp+14 yazarsak fonksiyonun sonucunun nereye yazıldığını görürüz.Yahut dd esp+8 yazarsak hangi anahtarın çağrıldığını bulabiliriz.Şimdi bizim istediğimiz sadece bir keyden okunduğu zaman durdurmak.Aşağıdaki breakpoint işimiz görecektir.
BPX RegQueryValueExA IF *(ESP->8) == 'Seri' DO "D ESP->14;"
Eğer program Seri ile başlayan bir keyden bir şey okursa dur.İsterseniz bu nasıl oluyor bir bakalım
*(ESP->8) demek esp+8 in gösterdiği yerdeki içerik demek.Bildiğiniz üzere push edilenler dword olduğu için yani 4 byte biz sadece 4 haneyi okuyabiliyoruz.Eğer esp+8 in gösterdiği yerde Seri yazıyorsa,
Do d esp->14 de esp+14 bölgesi yani sonucun alındığı bölgeyi göster demek.Bu şekilde yazmak uzun olabilir o yüzden macro ile bu işi halletmek en güzeli.Bu makroyu winice.dat dosyasına ekliyebilirsiniz eğer ekli değilse
MACRO bpreg="bpx regqueryvalueexa if*(esp->8)=='%1' do \"d esp->14\""
%1 demek macroya gönderilen parametre demek \ işaretlerini eklememizin sebebi SoftICE, " işaretlerini macro bitişi kabul ettiği için biz \ işareti ile " ları yok saydırıyoruz.
eğer Serial keyine ulaşıldığında durmasını istiyorsanız SoftICE da iken artık sadece şunu yazmanız yeterli olucak
bpreg Seri
Dikkat edin sadece ve sadece ilk dört karakteri giriyorsunuz.
Bu şekilde macroları geliştirebilirsiniz.Mesela bunu getwindowtexta veya getdlgıtemtexta ya uygulayıp sadece sizin isminiz istendiğinde SoftICE a geçmek vs .Unutmamanız gerek fonksiyona gönderilen parametreler ve bunları ESP de göründüğü durum.Her bir parametre bir dword da oluyor.Yani sadece ilk dworda erişme şansımız var.
Umarım bu ipuçları size faydalı olur.

WinZip 8.0 Crack
Bu ilk yazımızda herkesin bildiği ve bilgisayarımızda olmazsa olmazlardan olan winzip sıkıştırma programını kıracağız, serial bulacağız daha doğrusu..(bazıları winace kullanıyo errorinside gibi allam yaaa.) Winzipimizi açıyoruz ve karşımıza bi ekran çıkıyo ve kabul edip etmediğimi soruyo (doğruyu söylemek gerekirse şimdiye kadar hiç bir kez orayı okumadım:) ve "i agree" diyoruz.Uyuz olurum böyle şeylere (>:S).
Neyse şimdi register bölümüne gelelim abouttan ve isim kısmına blue serial kısmınada 123456789 yazın. (Kendi isminizi de yazabilirsiniz tabi:) Ctrl+D yapıp Softice'a dalanzi ve hemen breakpointimizi koyanzi..: bpx getdlgitemtexta enter. ve Bi daha Ctrl+D yapıp çıkıyoruz. Winzipteyiz ve ismimizi ve serialimizi doğrulaması için ok diyoruz ve hooop softicedayız.! bc * yazıp enterlıyoruz ve breakpointlerimiz tertemiz olanzi :) F10 ile kodlarımızı trace edip aşağıdaki yere geliyoruz:
:00407F9B 56                            push esi
:00407F9C E822790300              call 0043F8C3
:00407FA1 803D78CD480000      cmp byte ptr [0048CD78], 00
:00407FA8 59                            pop ecx
:00407FA9 59                            pop ecx
:00407FAA 7459                         je 00408005
:00407FAC 803DA4CD480000      cmp byte ptr [0048CDA4], 00
:00407FB3 7450                         je 00408005
:00407FB5 E81BFAFFFF                call 004079D5  -
-> işte buradayız(acaba call neyi çağırıyor dersiniz)
:00407FBA 85C0                         test eax, eax 
--> karşılaştırma yap!(test)
:00407FBC 7447                         je 00408005 
--> testin sonucu yanlışsa 00408005 noktasına uç!
:00407FBE 57                             push edi

00407FB5 noktasındaki call serialimizin hesaplandığı noktaya uçuyor. Peki biz ne yapacağız bu durumda tabiki F8 ile 00407FB5 noktasından içeriye dalacağız(balık gibi:) ve sonra aşağıdakileri görene kadar kodları trace edeceğiz.
:00407A91 8D85C0FEFFFF       lea eax, dword ptr [ebp+FFFFFEC0]
:00407A97 50                       push eax
:00407A98 57                       push edi
:00407A99 E8A9000000         call 00407B47
:00407A9E BEA4CD4800         mov esi, 0048CDA4
:00407AA3 8D85C0FEFFFF       lea eax, dword ptr [ebp+FFFFFEC0]
--> gerçek eax tam burda şekle şemale girdi!
:00407AA9 56                       push esi
--> işte burda "d eax" yazarak data penceresinde seriali görenzi!
:00407AAA 50                       push eax
:00407AAB E820180600         call 004692D0
:00407AB0 83C410               add esp, 00000010

00407AA9 noktasına geldiğimiz zaman yapmamız gereken şey "d eax" yazmak böylece gerçek seriali data penceremizde göreceğiz.
Uyarı: Eğer winzipi w32dasm ile açıp
00407FBC 7447 je 00408005 satırındaki "je" yi "jne" çevirirseniz register olduğunuza dair bir mesaj alırsınız ama bu sadece bir mesajbox tan ibaret olur.Program gerçek eax'ın hesaplandığı yerden buraya kadar birçok reg değişikliklerine uğradığı için üstte belirttiğim gibi sedece mesagebox alırız.
Zamanında bir gecesini icq'da chat yaparak bana ayırıp winzipi kırmama yardım eden arkadaşım "noname"e burdan teşekkür ederim.(Biraz geç bi teşekkür oldu amma..)


Hiç yorum yok:

Yorum Gönder