BAT Kodlama Dili - By Karabey

 Selamlar SAYIN ÜYE!
Bugün Biraz Derin , Öğrenmesi Zor ama bir o kadar da zevkli bir konuya giriş Yapıyoruz!
BAT (CMD Dosyası) Kodlama Dili
(Uyarı: Anlatılanları anlamanız için basit bir altyapınız gerekli önceki derslerimize bakın!)
Bat dosyası nedir?
Bat dosyaları Aslında %windir%\System32\cmd.exe yorumladığı ve çalıştırdığı CMD Betikleridir.
Ama cmd deyip geçmemek lazım!

Şimdi Başlayalım!
Bundan Sonra eğitimimiz ağ komutları , disk yönetimi , grafik tasarım ve operatörler bölümü olarak 4'e ayrılacak , dikkatli dinleyin.

DISK YONETIMI:

1. del
2. rmdir - rd komutları
Bu komutları bir dosya silmek istediğimizde kullanmaktayız , ama dosya ve klasör silmek için farklı komutlar kullanmaktayız , mesela bir dosya silmek için del dosya.uzantı şeklini kullanırız , klasör silmek için ise rd veya rmdir kullanırız , mesela rd klasör dersek klasörü siler , ama ilk olarak şunu demek istiyorum: Bu komutları biz kullanırken bize emin misin diye sorar cmd , bunu aşmak için ise /s /q y kullanırız mesela del game.exe /s /q y dosyayı sormadan silerken rd Games /s /q ise games klasörünü sormadan siler.
rmdir de aynı şekilde , rmdir Games /s /q dersek sormadan siler , 
Diskte dosya silme , kaldırma için bunlar gereklidir peki YAZMA?

DOSYA YAZMA:

1.Echo
Echo komutunu herkes sanırsam iyi bilir , Ekrana yazı yazdırmak için kullanılır ama biz burada bu echo komutunu şu şekilde kullanacağız:
Echo Hello World! >C:\Users\%USERNAME%\Desktop\myfile.txt dersek masaüstünde myfile.txt içine Hello World! yazdırmış oluruz. 
Bu komut da bu kadar basit , ama aslında bundan daha derin , eğer biz mesela 2 satır yazdırmak istediysek şöyle yaparız:
Echo Hello World! >C:\Users\%USERNAME%\Desktop\myfile.txt komutu dosyanın içindekilerin hepsini siler ve bunu yazar ama biz dosyanın içindekiler silinmeden yazmak istiyorsak şunu yaparız:
Echo Hello World! >>C:\Users\%USERNAME%\Desktop\myfile.txt yani tek > yerine iki tane > kullanırız.

DOSYA YETKISI SAHIPLENME

1.Takeown
Aslında icacls de var da hiç konuyu uzatıp kafanızı karıştırmak istemiyorum çünkü benim bile ihtiyacım olmuyor :)
Hani bazı silinmeyen inatçı dosyalar olurlar ya , erişim engellendi hatası alırsın , heh işte onu düzeltmek için YÖNETİCİ OLARAK ÇALIŞTIRDIĞIMIZ bir cmd penceresinde takeown /F %USERPROFILE%\Desktop\Admin.exe deriz mesela , veya buraya bir klasör de yazabiliriz:
takeown /F C:\Program Files\WindowsApps\ gibi mesela  , bu da böyle basit ama etkili bir komuttur , isterseniz bu konu hakkında daha fazla bilgi icacls.exe veya cacls.exe araştırabilirsiniz.
İyi Çalışmalar!

GOREV SONLANDIRMA
1. taskkill
2.tskill
Şimdi zaten bat kodlamaya ilginiz varsa illa sizler de görmüşsünüzdür ,
taskkill /f /im explorer.exe derler mesela.
Şimdi bunların açıklamasına bakacağız.
Kardeşler, ilk olarak bir tane uygulama çalıştırın ve onun adını alın tamam mı , 
aldıysanız devam edelim , cmd'yi açın , tskill uygulama.exe deyin,  uygulama kapanacaktır , tskill windows'un çok eski sürümlerinden beri var olan bir komuttur parametresi yoktur(/f veya /im gibi) , ama sonra taskkill komutu çıktı , o daha detaylı ve daha profosyonel , taskkill komutunda /f parametresi zorla da olsa kapat anlamı taşırken /im parametresi o isimde olan uygulamayı kapat demektir , ve belki de çoğunuzun bilmediği /t parametresi ise sadece o işlemi değil onun childrenlarını da yani tüm işlem ağacını bitirir, etkisi daha yüksektir.

BİLGİSAYAR ONARIMI
1.sfc
2.systemreset
3.format
Bu komutlardan tabii ki çok daha fazlası bulunmakta ama kafanız da karışmasın diye az tuttum , şimdi geçelim buna sfc en yaygın yöntemi sfc /scannow'dır eksik sistem dosyalarını bulur ve onları onarır sfc açılımı ise System File Checker'dır.
Systemreset ise kullanılan düz bir komut , yani parametresi yoktur , format atmaya işe yarar , yani cmd'ye direkt systemreset yazın çalışır ama işiniz yoksa yapmayın dosyalarınız fırmat atınca uçar gider.
Şimdi format komutuna gelelim , bu format komutu ms-dos'dan beri olan bir komut,
format E:\ /FS:NTFS gibi kullanılır mesela bu komut E:\ Sürücüsünün içindeki her şeyi siler ve temizler , bu silinenler geri getirilemez , format komutunun adına kanmayın , format atmaz , derin temizlik yapar , usb'nize virüs vs. bulaşırsa kullanabilirsin.

VIRUS KORUMASI
1. mrt
2.MpCmdRun

MRT komutu (malware removal tool) cmd'ye direkt yazınca açılır , GUI bir programdır.
MpCmdRun ise mpcmdrun -scan -scantyppe 3 mesela hızlı tarama yapar , konsolda çalışır.

SHUTDOWN KOMUTLARI PARAMETRELERI
1. shutdown

shutdown komutunda klasik kapatma için shutdown /s /t 0 kullanılır s parametresi shutdown , t parametresi ise ne kadar saniyede kapatılacağını söyle , eğer kapatmak değil de yeniden başlatmak istersek shutdown /r /t 0 deriz ve burada r parametresi restart anlamına gelmekte , bios menüsü açmak için ise shutdown /r /fw deriz , windows otomatik kurtarma sayfası için ise o parametresini kullanırız şunun gibi: shutdown /r /o /t 0

SISTEM BILGILERI
1. hostname
2. winver
3. systeminfo

Burada hostname komutu bilgisayarın kendine özel numarasını verir , her bilgisayarda farklıdır , parmak izi gibi düşünebiliriz , winver ise GUI bir penceredir , windows'un versiyonu hakkında bilgi verir bizlere , systeminfo ie terminalde çalışır yine hostname gibi , sistem hakkında içinde çeşitli bilgiler taşır.

SAYIN ÜYE , DİSK YÖNETİMİ KISMI BİTTİ!
Sıra Ağ ve İnternet yönetiminde!
ICMP
1. Ping
2. Tracert
3. ndkping
Ping Komutu normalde ping site.com gibi kullanılır biz ise parametrelerine ineceğiz , ping -t site.com dersen siteye sonsuza kadar (sen kapatana kadar) hep istek atmaya devam ederken -n 3 desek mesela 3 tane istek -n 1000 desek 1000 tane istek atana kadar gider , -l parametresi ile paket boyutunu ayarlar , mesela ping site.com -n 100 -l 300 desek site.com adresine 100 defa 300 kb boyutunda paket atar.
Tracert komutu ise tracert site.com gibi kullanılır , herhangi bir özel parametresi bulunmamaktadır.
ndkping ise yine aynı diğerleri gibi siteyi pingler , güncel windowslarda bulunur.
PORT 21
1. ftp
Bu komut sitenin ftp adresi varsa ona bağlanan windows'un kendi ftp istemcisidir.
çeşitli komutlar bulunmaktadır. ftp site.com deyince mesela ftp adresi varsa bağlanırsın kullanıcı adı şifre biliyorsan girersin , yoksa da anonymous giriş yapmayı denemek için isme anonymous şifreye de anonymous yazarsın giriş yaparsın , get log.txt desen mesela eğer bulunduğun dizinde log.txt varsa bilgisayarına indirirsin iznin varsa , delete log.txt dosyayı siler put webshell.php senden adama webshell.php dosyasını atar , quote SITE CHMOD 777 ile izin değiştirilir , cd WWW veya quote cwd /WWW dersen mesela WWW dizinine geçer , ama ben quote cwd komutunu daha çok tercih ederim çünkü cd /WWW mesela senin bulunduğun dizindeyse WWW klasörü ona geçiş yapar ama quote cwd /WWW ne olursa olsun WWW klasörünü her yerde arar ve bulursa o şekilde girer.
PORT 23
1. telnet
Bunun kullanımını öğrenmek zorunda değilsiniz ben bile pek bilmiyorum  , windows özelliklerini aç veya kapat penceresinden etkinleştirip yeniden başlatma uyarısındaki yeniden başlat tuşuna tıklayıp kurmanız gerekmekte , şifresiz bağlantı açar aynı ftp gibi dosya işlemler yapılabilir , hattta önceden telnet 192.168.1.1 komutu ile modemlere bağlanıp internet şifresi bile kırılabiliyordu ama artık çalışmamakta çünkü çoğu marka bu güvenlik açığını kapattı.
BILGI TOPLAMA
1. nbtstat
2. getmac
nbtstat komutu genelde ben şu şekilde kullanırım öteki parametreleri işime yaramaz , bir tek şunu kullanırım: nbtstat -A 192.168.1.x yazarım (bu ip yerine hedefin ip adresini yazın) o bilgisayarda eğer güvenlik duvarı kapalı ise veya zaıf ise o bilgisayardaki kullanıcı isimlerine erişebilirsin.
getmac komutunda ise ben yine şu parametreyi kullanırım genelde: getmac /s 192.168.1.x (bu 192.168.1.x kısmını siz bulduğunuz ip ile değiştirin) yazdığımızda onun mac adresine erişebilmekteyiz.
İstersek mac adress lookup sitelerinden o bilgisyarın bulduğumuz o mac adresini yazdığımızda o bilgisayarın markası , özellikleri hakkında pek çok bilgi elde edebiliriz.
BAĞLANMA
1. shutdown -i
2. mstsc
3. wmic
4. msg
shutdown -i komutu uzaktan kapat isimli bir pencere açar , hedefin ip adresini , bizim ona ne yaptırmak istediğimiziyani yeniden başlatma veya kapatma , söyleyebiliriz ve eğer güvenlik duvarı o porttan gelen bağlantılara izin veriyorsa veya kapalıysa bu komut çalışır.
mstsc ise RDP kullanan yani port 3389 kullanan basit ama etkili bir araçtır , ip adresini yazarsın , bağlan dersin ve eğer güvenlik duvarı bağlantıyı engellemezse bağlanırsın ve hedef bilgisayarı uzaktan tam anlamıyla kontrol edersin.
wmic ise wmic /node:192.168.1.100 process call create "cmd.exe /c start calc" gibi kullanılır mesela bu komut 192.168.1.100 isimli bir ip adresivarsa ona  bağlanıp calc komutu çalıştırması söyler(hesap makinesi açar) , msg ise normalde yerel bilgisayarda mesaj kutusu çıkarmak içinkullanılır msg * Hello World! gibi , sen ama başkasına güvenlik duvarı kapalı ise o bilgisayarda şöyle yapabilirsin mesela:
msg /SERVER:192.168.1.100 * Hacklendin! gibi kullanırsak 192.168.1.100 gibi bir ip adresi varsa ona ekrana Hacklendin! yazısını yazdırmasını söyler.
HTTP PORT 80
1. curl
Bu komut şu şekilde kullanılır normalde: curl site.com , ve kendisine verilen cevabı senin ekranına yansıtır , ama mesela metodu belirlemek istersek get ,post veya put gibi -X parametresini , Header bilgisi oluşturmak için ise -H kullanırız mesela:
curl example.com -X GET -H ("User-Agent:Mozilla Firefox 5.0") -H ("Content-Type:Application/json") -m 2 gibi mesela , şimdi siz bana diyeceksiniz ki buradaki -m parametresi ne , onu da hemen açıklayayım , buradaki -m parametresi kendinden sonra gelen sayı kadar saniye bekler ve hala bağlantı açıksa onu kapatır , mesela burada 2 olduğu için 2 saniye bekledikten sonra eğer cevap gelmemişse veya bağlantı hala açıksa hemen kapatır.
NETWORK COMMAND SHELL
1. netsh
bununla aslında pek çok şey yapılır ama ben sadece birkaç tanesini anlatacağım , netsh wlan show profile komutu tüm internetleri listeler mesela Internet1 diye bir internet adı var tamam mı , sen bunu al netsh wlan show profile Internet1 de onun şifresi sucrity settngs başlığı altında key content kısmında şifresi gözükecek , onun dışında başka ise yarar netsh wlan show interfaces var.

SCAN IP ADRESS ON YOUR INTERNET
1. arp
2. net view
Cmd'ye girin , arp -a yazın , şimdi ağınızdaki tüm cihazların ip adresleri ve mac adresleri önünüzde, bu komut gerçekten çok etkili.
Diğeri net view ise sadece ip adreslerini gösterir arp -a gibi mac adreslerini gösteremez , 
ve ayrıca bir kötü yanı daha şudur: bu servisi kurmanız ve sonra çalıştırabiliyorsunuz anca.
O yüzfen her durumda arp -a daha iyi.

GET NEW LAN IP ADRESS and CLEAR YOUR HISTORY
1. ipconfig
Yeni bir lan ip adresi almak için cmd'yi yönetici olarak açıp ipconfig /release ve sonra da ipconfig /renew yazmanız yeterli , öncedenki geçmişinizi temizlemek için ise ipconfig /flushdns komutunu kullanabilirsiniz hepsi de çok basit ama çok işlevsel ve kaliteli komutlardır.

NETSTAT
1. netstat
ben en çok netstat -ano kullanırım zaten büyük ihtmal çoğunuz bunu bilir , sizin bilgisayarınızda gerçekleşen bağlantıları gösterir.

SAYIN ÜYE , AĞ YÖNETİMİ KISMI BİTTİ!
Sıra grafik tasarım bölümünde!
TASARIM
1. Echo Fonksiyonları
2. powershell foreground / background
3. chcp
Echo yazı yazdırır demiştik , mesela Echo Hello World!
Benim size göstermek istediğim echo. fonksiyonu , terminalde boş satır yazdırır.
powershell -Command -ForeGroundColor Black -BackGroundColor Green diyelim mesela , bu şekilde bir kaç renk komutu var , yani terminalde color 1 , color a vs. demek tek renk kullanabilirsin ama bununla birden fazla renkte yazı da yazdırabiliyorsun tek cmd'de!
chcp ise code page değiştirir yani mesela normalde bat dosyası içine şunu yazın saçma sapan bir yazı çıkar:
@Echo Off
color a
Echo Merhaba Dünya , Türkçe Karakterler Burada!
pause
Burada ç , ü gibi türkçe karakterler var , bunlar normalde saçma sapan çıkarken kodu şöyle yaparsak türkçe karakter olsa da yazdırılabilir:
@Echo Off
chcp 65001

color a
Echo Merhaba Dünya , Türkçe Karakterler Burada!
pause
Yani kısacası chcp 65001 eklemelisin bunun sayesinde 
░ gibi karakterleri de saçma sapan bir çıktı almadan ekrana yazdırabiliriz.
SAYIN ÜYE , GRAFİK TASARIM KISMI BİTTİ!
Sıra kodlama(döngüler , operatörler) bölümünde!
Operatörler

                     | _/_/_/_/_/_/_/_/_/_/_/ Karabeyler \_\_\_\_\_\_\_\_\_\_\_|

@Echo Off

color a

:menu
cls

title SITE PING.EXE ICMP FLOOD

Echo KARABEYLER PING ARACI
Echo - - - - - - - - - - - - - - - - - - - - - -

set /p site=HEDEF SITE (ornek: example.com):

set /p packetsize=PAKET BOYUTU (ornek: 300):

Echo PINGLEME BASLATILDI %site% ADRESINE %packetsize% KB ILE:
timeout /t 1 >nul
Echo CIKIS KARAKTERI CTRL+C

ping %site% -t -l %packetsize%

goto menu

                     | _/_/_/_/_/_/_/_/_/_/_/ Karabeyler \_\_\_\_\_\_\_\_\_\_\_|

Biz bu kodda girdileri alıyoruz ve system32 içindeki ping.exe -t (sonsuz) parametresini kullanıyoruz ve -l (large yani büyüklük) parametresi ile kullanıcıdan aldığımız verilerle siteyi pingliyoruz kullanıcının istediği şekilde.

Bir de size if kullanımını göstermek istiyorum mesela şu şekilde:

                     | _/_/_/_/_/_/_/_/_/_/_/ Karabeyler \_\_\_\_\_\_\_\_\_\_\_|

@Echo Off

color a

:menu
cls

Echo 1 - Start Calcutor
Echo 2 - Start CMD.exe

set /p option=YOUR OPTION:

if %option%==1 (goto calc)
if %option%==2 (goto cmd)

Echo 1 VEYA 2 SECENEGINI GIR KRAL!
pause
goto menu

:calc
calc
goto menu

:cmd
start
goto menu

                     | _/_/_/_/_/_/_/_/_/_/_/ Karabeyler \_\_\_\_\_\_\_\_\_\_\_|

Bu uygulamaların yapısını internetten detaylı şekilde araştırabilirsiniz kodlama yapmaya merakınız var veya kodlama yapmak istiyorsanız.

                     | _/_/_/_/_/_/_/_/_/_/_/ Karabeyler \_\_\_\_\_\_\_\_\_\_\_|
                  ...SONRAKI KONULARDA DA SIZLERI YINE BURADA BEKLERIZ...
                                                 Saygılarımızla(Karabey)
HATTA SONRAKINE C++ DILINE BAKARIZ , 
BUNLARI DA ÖĞRENDİYSEN HELAL OLSUN , DEVAM ET ARKADAŞ!
- - - - - - - - - - - KARABEYLER - PORTAL - - - - - - - - - - - - - -
_________________________________________________





Hiç yorum yok:

Yorum Gönder