CRACKING
EasyCafe
�nternet
kafelerde kullan�lan aptal bir server-client tiplemesi. Yada bir �e�it trojan
denilebilir. Ben olsam cafelerde o aptal clienti bellekten atmadan �al��mam.
Zaten tak�lmam pek �yle yerlere i�im olmuyor. Herneyse problem �u, client
sistemi online konumuna getirdikten sonra ekranda �e�itli flash uygulamalar�
g�sterip reklamla kar���k show yap�yor. ��te bu flash uygulamalar� netten
program sahibi taraf�ndan yenileniyor ve s�rekli i�yerinizde reklam yapm��
oluyorsunuz. G�revimiz o flash uygulamalar�n� de�i�tirip kendi reklam�m�z�
yapmak.
Program� fazla detaylar�yla inceleme f�rsat�m olmad� ��nk� server olacak ikinci
bir bilgisayar�m yok. Sadece client �zerinde �al��abildim.
Neyse bunu yapmak isteyen arkada�lar ilk olarak a�a��daki listeyi haz�rlamak
zorunda.
� Dosya
i�i harfiyat i�eri i�in hex edit�r
� Bellekteki programlar� salt olarak �almak i�in dumper
� Her yere elimizin ula�mas� i�in Softice, symbol loader
� Program header i �zerinde de�i�iklik yapmak i�in pedit�r
� Dosya mm. i�eri�ini konrol i�in exescope
� K�r�lacak bir easycafe client.exe dosyas�.
� Biraz yetenek, asm bilgisi ve bunlar� y�netip uygulayacak bir
beyin..
:)
Ne yapmak
istedi�imizi yukar�da anlatt�m. Birazda programdan bahsedelim. Haliyle bunu
yazan arkada�larda salak de�il tabiki her elini kolunu sallayan de�i�tirmesin
diye ellerinden geleni yapm��lar. Ama bilgisayarda her �eyin bir yolu vard�r.
Program�m�z bir packer ile ��k��t�r�lm��. Bunlar nedir ? Packer yani bu paketleyici
programlar �zel bir yap�dad�rlar. Ve exe dosyalar�n� bu packer lar�n eline
werirseniz dosyan�n yap�s�n� tamamiyle de�i�tirip kendine g�re �ifreler ve
program�n boyutu �nemli �l��de k���l�r. Bilindik exe format�ndan ��kar dosyalar
segmentler, base, header tekrar d�zenlenir. Haliyle bu s�k��tr�lm�� exe dosyalar�n�n
i�ine direk girip i�lem yapamay�z. ��nk� g�rd���m�z kodlar�n hepsi �ifreli
kodlard�r. Program belle�e y�klendikten sonra yer tahsis eder ve oraya kendini
aynen winzipte oldu�u gibi bellek �zerine unpack eder. Yani program�n orijinal
kodlar�n� belle�e aynen yazar. Daha sonra entrypoint (exe dosyalar�n�n ba�lang��
noktas�) e ziplar ve unpacker amcan�n i�i burada biter. Art�k orijinal kodlar
�al��maya ba�lar.
Bu orijinal kodlara ula�mam�z i�in pek �ok yol mevcut. Ben sadece birinden
yada ikisinden bahsedece�im.
Ya bir unpacker bulursunuz direk dosyay� verirsiniz eline tekrar eski haline getirir. Bellekle entrypoint le felan u�ra�mazs�n�z. Temiz bir yoldur. Sonra yapaca��n� yapars�n. Tabiki her unpacker her packli dosyay� a�m�yor. Hangi packer ile bu hale geldi�ini bulmak i�inde packer search programlardan yard�m almak gerekiyor. Onlarda zaten kesin bir s�ylemiyor % olarak tahmin y�r�t�yor. Genelde telock kullan�yorlar ama her programc� farkl� yoldan gidebiliyor.
Di�er yol ise b�yle packer tespitinden uzak. Mant���n� incelersek bu dosya exe ve �al��abiliyor. �al���nca kendini belle�e a��yor yani i�erisinde zaten bir unpack prosed�r� mevcut. Bundan yola ��karak program� takip ediyoruz. Belle�e kendini a��nca bellekten t�m kodlar� dump ediyoruz. Daha pratik bir yol bence. Ama tabiki zor olaylarda mevcut. Mesela bu dump etti�imiz dosyan�n bir header i yok. Packli dosyan�n header i ile dump edece�iz. Bu demekki bellekten �ald���m�z kodlar� bir dosya i�inde uzant�s�n� exe yap�pta �al��t�rmak istedi�inizde ya sistem kilitlenecek yada ��ke�ektir. (bende genelde softice araya giriyor a� kapa olay�ndan y�rt�yorum J) bu dosyan�n header inda ufak bir de�i�iklik yap�p program�n giri� noktas�n� (entrypoint) belirtmemiz gerekir. Bundan sonras� size kalm�� bu kadar.
Gelelim
yap�l���na.
�ncelikle t�m tak�mlar�n (programlar�n) haz�r oldu�unu varsay�p client.exe
yi �al��t�r�yoruz.
Sa�olsun bizi u�ra�t�rmadan kendini unpack edip bellekte yerini al�yor.
Program �al���p ba�l�yor soytar�l�k yapmaya. Entere bas�yoruz �ifre istiyor
bunlar� girip sa�ma bir sesle client ortaya ��k�yor. Dumper im�z� �al��t�r�p
(ben procdump kulland�m peditor i�erisindede mevcut bir dump proc. var) �al��an
b�t�n programlar�n listesine ��yle bir bak�yoruz. A�a��larda biryerde bizim
client.exe yi g�r�yoruz. �zerine t�klay�p dump full diyoruz ve hdd �zerine
dosyam�z iniyor. Uzant�s�n� exe de�ilse exe yap�yoruz. Ve exescope ile i�eri�ine
bak�yoruz. Her�ey yerinde. G�sel. Burada dosya i�eri�inde farkl� bir �ey dikkatimizi
�ekiyor. Resource alt�ndaki Rflash ba�l���. ��ine bak�yoruz REKLAMRES yaz�yor.
�zerine geldi�imizde ise yan pencerede 10128C ofsetinden FWS (flash) imzas�yla
ba�layan 722A kadar (decimal 29226) bir flash kodu g�r�yoruz. Demekki programc�
arkada� 29.266 boyutunda animasyonu haz�rlam�� exe nin i�ine g�mm��. Bizim
yapmam�z gereken ayn� boyda (daha k�sa olabilir fakat uzun olamaz) bir animasyon
haz�rlay�p hex edit�r�m�zle bu offsete yap��t�rmak.
Hemen flashta "cracked by ciwata� " yaz�p k���k bir efek verip swf
olarak kaydediyorum. Hex edit�rle client.exe dosyas�n� a��p 10128c ofsetinde
FWS yi bulup buradan itibaren 29.266 byte 00h yaz�yorum. Neden ? ��nk� eski
kodlar� silmemiz gerekiyor. �ayet daha k�sa bir swf yap��t�r�rsak dewam�nda
eski kodlar olaca�� i�in kimli�i belirsiz olaylar�n �n�ne ge�mi� oluyoruz.
�kinci bir pencerede swf dosyam�z� a��p ba�tan sona kopyal�yor ve 10128C adresine
kopyal�yorum. Kaydedip ��k�yoruz edit�rden. Exescope ile bak�yoruz kodumuz
epeyce k�sa eskiye nispeten.
Buraya kadar olanlar tamam. Kodlar� �ald�k yapaca��m�z� yapt�k. �imdi s�ra
bu dosyay� �al���r hale getirmek. Haliyle �zerinde packli dosyan�n headerini
ta��yor. Entrypoint ger�e�i g�stermiyor de�i�mesi gerekli. Nereden bulcaz
peki orijinal cs:ip de�erini ?
Program kendini belle�e a��yor ve i�lem bittikten sonra a�t��� kodun i�erisine
yani bizim arad���m�z cs:ip noktas�na ge�i� yap�yor. ��te buraya kadar program�
softice ile takip edece�iz.
Ba�tan takip etmek biraz kasar bundan dolay� unpack i�leminin hemen sonras�ndaki
olaylar� takip etsek yeterli olur. Pedit�r ile packli dosyam�z� a��yoruz.
(bellekten indirdi�imiz de�il, orijinal client.exe). Alt tarafta tables k�sm�ndan
sections a t�klay�p en �stte bulunan code u se�ip �a��r�yoruz. (sa� tu� edit)
a��lan pencerede characteristic de�erini E0000020 olarak de�i�tiriyoruz. Bunun
anlam�n� merak edenler yan�ndaki char.wizard a t�klay�p oradan neyin ne oldu�unu
��renebilirler. :) kaydedip ��k�yoruz. Symbol loader i a��p client.exe yi
y�kleyelim. Load ded�imiz anda softice i�erisine d��m�� olmam�z gerekiyor.
Tabiki pedit�r ile characteritic de�erini de�i�tirmeyi becerebildiysek. Softice
in bize g�sterdi�i sat�r client.exe i�inde PUSHAD komutu. Burada biraz asm
ve softice bilginiz varsa kolay olacakt�r. PUSHAD t�m register de�erleri saklar
ve yap�lan i�lemin sonunda POPAD ile eski de�erlere d�n�l�r. (T�m asm komutlar�n�
ve softice kullan�m�n� burada a��klama gibi bir niyetim yok..!) Buradan takip
etmeye ba�l�yoruz. Biraz pagedown ve POPAD lar orada. Biraz takip edince bir
de�er �zerinde �al��t���n� farkediyorum tabiki bizim arad���m�z de�eri hesapl�yor.
��nk� t�m olaylar bitti ve program� �al��t�rmas� gerekiyor. Sonunda �akt�rmadan
ss �zerindeki bir adrese uzak atlama ger�ekle�iyor. Hemen atlyay�p de�ere
bak�yoruz gidilen adres kar��m�zda 004E35A0 i�te bulduk. Softice i kapat�p
��k�yoruz. A��k olan t�m programlardan ve hata mesajlar�ndan kurtulup pedit�r
� �al��t�r�p dump edip de�i�tirdi�imiz dosyam�z� a��yoruz. Buldu�umuz de�erden
burada yazan image base de�erini ��kart�yoruz. (004E35A0h - 400000h = 000E35A0h)
sonunda entrypoint i bulduk ve bunu yaz�yoruz. Apply deyip ��k�yoruz.
��te o an. Bunca �al��man�n neticesi.. Dosyan�n ad�n� client.exe yap�p entere
bas�yoruz. Biraz bekliyor ve program �al��maya ba�l�yor. Tabiki bizim haz�rlad���m�z
"cracked by ciwata�" animasyonu ile. He..he.. :)
Buraya kadar her�ey tamam. Bunu server bulunan bir ortamda uygulad���m�z zaman bir s�re sonra bizim animasyonun gidip ba�ka bir animasyonun g�sterildi�ini g�rd�m. Haliyle server olacak ikinci makinam yoktu ve bu konu �zerinde �al��amad�m. Ama ��z�m �ok basit. Client haz�rlan�r t�m makinalara y�klenir. Serverin bulundu�u makinan�n net ba�lant�s� kesilir. Sadece hesap kesimi i�in kullan�l�r. Net ba�lant�s� olmayan server serial ve update kontrol� yapamad��� i�in s�rekli olarak i�inde g�m�l� flash animasyonla idare etmek zorunda kalacakt�r ve sizde istedi�iniz reklam� yapabileceksiniz :)
Yaz�
tamamen Ciwata� yani benim taraf�mdan yaz�lm��t�r.
Bu yaz�y� istedi�iniz yere kopyalay�p �o�altabilirsiniz.
Kopirayt- mopirayt yok. Herkes �zg�r.. :=)
Yok illaki ben kopya hi�bir �ey kullanmam diyorsan�z, ald�m diye mail
at�n yeter.
Bye by Ciwata�