CRACKING

Ge�en aylar 12-03-04-05

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�

1