Script Nasıl Yazılır?

CagePac
Program Url:N/A
Program Tipi:Script nasıl yazılır

     Araçlar:

Kullandığımız Araçlar

notepad ve bir adet beyin

Basit ( x)  Orta ( x)  Zor (x )  Pro (x)


Başlangıç

Bu seferki yazımızda kullandığımız scriptlerin nasıl yazıldığını ele almaya çalışacaz...

basit 1-2 örnek verecem gerisi size kalmış : )
Yazı
Olly scipt, olly de rutin olarak gerçekleştirdiğimiz işlemleri komut olarak hazırlayıp olly script plugini ile uygulamamızı sağlayan bir özelliktir. (Photoshopta ki actions gibi yani :) ) genellikle aynı yaptığımız işlemler derken bir upx için oep bulmak hep standarttır değişmez ya da bir fsg ya da bir tELock ya da Aspr de importları düzenlemek için teker teker rutin olarak uğraşmak yerine hepsini komut vererek düzenleyebiliriz vs vs vs.. örnekler artar ve bu olay tamamiyle sizin hayal gücünüze ve kabiliyetinize bağlı : )

Gördüğümüz scriptlere hepimiz imrenerek bakıyoruzdur muhakkak işte bu noktada acaba nasıl yazılır sorusunu soruyoruzdur kendimize : ) ben sormuyordum işin aslı ama Slayer geçen sorunca biraz araştırdım zaten hep başıma bişileri bela ediyor : ) neyse işimize bakalım ilk olarak fsg packeri için bir script yazalım ama yazmadan önce script için ollyscript editor ü edinmeye çalışalım onu edindikten sonra işimiz kolay zaten help dosyasında komutları detaylı anlatmış ama ben genede bu script için gerekli terimleri yazayım.

findop eip--> Olyde CTRL+B komutuna denk bir komuttur,

RESULT--> bulunan gidilen sonucu ifade eder, birden fazla sonuç elde edeceksek değişken tanımlayabiliriz,

sto--> olly de F8 yani trace komutuna denktir,

cmt eip--> En sevdiğim komutlardan biridir adındanda anlaşılacağı gibi comment eklemek için yani olly de o an bulunduğumuz yere açıklama yazmamıza yarar

an---> olly deki CTRL+A yani analiz komutuna denktir

ret--> scripti sonlandırmak için kullanılan bir komuttur.

bunlar ilk scripte kullanacağımız komutlar ewt şimdi geçelim script yazma işimize

FSG 2.0 için script yazalım;

findop eip, #FF630C# // FF 63 0C (bu fsg için standarttır bknz fsg unpack tutorial) yi bul ollyde CTRL+B--> FF 63 OC komutuna denktir
go $RESULT // adrese git (bulduğu adresi result diye kaydeder kendileri)
sto // F8 : )
cmt eip, "OEP Burasi Kardes" // Yazıyı yaz
an eip
// Analiz yap Karşılığı Ctrl+A
ret
//bitir

ewt gördüğünüz üzere çok basit sadece ollyde standart yaptığımız şeyleri komutlarla yazıya döküyoruz...

şimdi 2. ye geçelim;

hatırlarsanız benim UnPackMe_UPX diye bir unpackme hazırlamıştım ve PEiD de "Nothing found *" olarak geçiyordu. tutorialde yaptığımız iş standart bi işlemdi, son ret e gel bi F8 de sonra POPAD nin arkasındaki jmp ye gel ve F8 de ve sonuçta oep teydik ewt bunu script olarak yazacak olursak;

//1.Adım Headeri düzenlemek için

findop eip, #c3# // ilk RET i bul
Go $RESULT // oraya git
sto // bi F8
cmt eip, "ilk nokta bulundu simdi upx gibi gorunecek : )" // Oradayız yazımızı yazalım
an eip // Analiz yapalım CTRL+A yani
MSG "Burasi ilk adim OK deyinde script amca devam etsin" // bi msj verelim :) (bu benim çok hoşuma gidiyor)

//2. Adım UPX için

findop eip, #61# // POPAD bul bakam
Go $RESULT // oraya git
sto // bi F8 yap jmp ye gel
sto // bi F8 daha OEP e gitmek için
cmt eip, "iste burasi oep haydin hayirli olsun : )" // Yazımızı yazalım
an eip // analiz yaptıralım bakalım :D
MSG "Simdi dump edip iat i duzenlemek vaktidir..." // ewt mesaj verelim güzel bi tane
bphwc $RESULT //bi tane hardware BP koyalımkaçmasın
ret // Bitirelim

burada farklı olarak 2 komut var bunlar MSJ ve bphwc komutları açıklamada da yazıldığı üzere;

MSG-->Mesaj çıkarmak için

bphwc-->hardware BP koymak için

eğer buraya kadar olan kısmı anladıysanız sizde basit çapta scriptler hazırlayabilirsiniz. diğer komutlar ve detayları için siz ollyscipt editor ün help dosyasına bakabilirsiniz orada detaylı olarak desteklenen tüm komutlar mevcut. Daha zor değişken tanımlanan ve daha kapsamlı scriptlerle ilgili çalışmalarım devam etmekte hazırladıkça sizlerede sunmaya çalışacam...

 

Son Notlar

Bu yazıda yazım yanlışları , bilgi hatası olabilir.Eğer bir yanlış bulursanız bana forumdan pm atarak ulaşabilirsiniz...   

Teşekkür
Slayer-->başıma bu scipt belasını çıkardığı için mrstop-->reverse engineer alanında tr de aklıma gelen ilk isim renaTgaD (kral adamdır vesselam), tüm MDK ve DTCG üyelerine...