C programlama dili alıştırmalarından 7 tanesini tek bir programın
içerisinde topladığım bir çalışmamı buldum ve onu da sizlerle paylaşmak istedim.Kodları aşağıya bırakıyorum iyi günler dilerim.
#include<stdio.h>
#include<stdlib.h>
void girilensayisatirsutun();
void satirsayisinitoplamamatris();
void matrisenkucuk();
void vizefinal();
void matrispozneg();
void canegrisi();
void dizibuyukkucuk();
void menu(){
int islem;
system("cls");
printf("\t Lutfen yapmak istediginiz islemi yaninda bulunan numarasina gore seciniz \n");
printf("\t 1- Bir matriste girilen sayinin satir sutun bilgilerini bulma \n");
printf("\t 2- Bir matriste satir sutun sayilarini toplayip yeni diziye atama \n");
printf("\t 3- Bir matristeki en kucuk sayinin satir sutun bilgisi \n");
printf("\t 4- Ogrenci notlarinin matris seklinde girilip goruntulenmesi \n");
printf("\t 5- Bir matristeki pozitif negatif sayilarin ortalamasi,sayisi\n");
printf("\t 6- Can egrisi hesaplama \n");
printf("\t 7- Bir dizide girilen sayidan buyuk kucuk kac sayi var bulan ve ortalamasi ile toplamini veren \n");
printf("\t Cikis yapmak icin < 0 > tusuna basin \n");
scanf("%d",&islem);
switch(islem){
case 0: exit(1);
break;
case 1: girilensayisatirsutun();
break;
case 2: satirsayisinitoplamamatris();
break;
case 3: matrisenkucuk();
break;
case 4: vizefinal();
break;
case 5: matrispozneg();
break;
case 6: canegrisi();
break;
case 7: dizibuyukkucuk();
break;
default: printf("Lutfen 0-7 arasi bir rakam giriniz");
system("PAUSE");
menu();
}
}
void girilensayisatirsutun(){
system("cls");
int N,M,A[100][100],gsayi,i,j,sat,sut;
printf("dizinin satir sayisi :\n");
scanf("%d",&N);
printf("dizinin sutun sayisi :\n");
scanf("%d",&M);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("A[%d][%d] : ",i+1,j+1);
scanf("%d",&A[i][j]);
}
}
gsayi==A[0][0];
// diziyi çaðýr,gsayi ara
printf("Aranacak sayiyi girin");
scanf("%d",&gsayi);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
if(A[i][j]==gsayi)
{
gsayi=A[i][j];
sat=i+1;
sut=j+1;
}
}
}
printf("aranan eleman %d ve satiri %d sutunu %d",gsayi,sat,sut);
system("PAUSE");
menu();
}
void satirsayisinitoplamamatris(){
system("cls");
int i,j,N,M;
int A[100][100],B[100];
printf("satir sayisi : ");
scanf("%d",&N);
printf("sutun sayisi : ");
scanf("%d",&M);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("A[%d][%d]",i+1,j+1);
scanf("%d",&A[i][j]);
}
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
B[i]+=A[i][j];
}
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%3d",A[i][j]);
printf("\n");
}
}
printf("sonuc dizisi\n");
for(i=0;i<N;i++)
{
printf("%3d",B[i]);
}
system("PAUSE");
menu();
}
void matrisenkucuk(){
system("cls");
int N,M,A[100][100],i,j,enk=100,sat=0,sut=0;
printf("dizinin satir sayisi :\n");
scanf("%d",&N);
printf("dizinin sutun sayisi :\n");
scanf("%d",&M);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("A[%d][%d]:",i+1,j+1);
scanf("%d",&A[i][j]);
}
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
if(A[i][j]<enk)
{
enk=A[i][j];
sat=i+1;
sut=j+1;
}
}
}
for(i=0;i<N;i++)
for(j=0;j<M;j++)
printf("%2d",A[i][j]);
printf("\n");
printf("en kucuk sayi %d\n",enk);
printf("satir no :%d,sutun no %d\n",sat,sut);
system("PAUSE");
menu();
}
void vizefinal(){
system("cls");
int not_cizelgesi[100][100];
int N,M,i,j;
printf("ogrenci sayisini giriniz :\n");
scanf("%d",&N);
printf("Sinav Sayisini girin:\n");
scanf("%d",&M);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%d numarali ogrencinin",i+1);
printf("%d numarali sinavi: \n",j+1);
scanf("%d",¬_cizelgesi[i][j]);
}
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%4d",not_cizelgesi[i][j]);
printf("\n");
}
system("PAUSE");
menu();
}
void matrispozneg(){
system("cls");
int A[100][100],poz[100],neg[100],n,m,i,j,p=0,ne=0;
float ort1=0,ort2=0,top1=0,top2=0;
printf("satir sayisi: ");
scanf("%d",&n);
printf("sutun sayisi: ");
scanf("%d",&m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("A[%d][%d]: ",i+1,j+1);
scanf("%d",&A[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(A[i][j]>0)
{
poz[p]=A[i][j];
p++;
top1+=A[i][j];
}
else if(A[i][j]<0)
{
neg[ne]=A[i][j];
ne++;
top2+=A[i][j];
}
}
}
ort1=top1/p;
ort2=top2/ne;
printf("Asagida %d Tane pozitif sayi vardir \n ",p);
for(i=0;i<p;i++)
{
printf(" %d ",poz[i]);
printf("\n");
}
printf("Pozitif sayilarin ortalamasi : %f",ort1);
printf("Asagida %d tane negatif sayi vardir \n",n);
for(i=0;i<n;i++)
{
printf(" %d ",neg[i]);
printf("\n");
}
printf("Negatif sayilarin ortalamasi : %f",ort2);
system("PAUSE");
menu();
}
void canegrisi(){
system("cls");
float ogrenci[100];
float ortalama,toplam = 0;
int ortalama_ustu_adedi = 0,ortalama_alti_adedi = 0,i,N;
// Dizinin elemanlarýný girdirelim herþeyden önce
printf("Ogrenci sayisini giriniz:");
scanf("%d",&N);
for(i=0;i<N;i++)
{
printf("%d. Ogrencinin notunu giriniz: ",(i+1));
scanf("%f",&ogrenci[i]);
toplam+=ogrenci[i];
}
// Bu bölümde öðrencilere ait notlarý girdirmiþ olduk kullanýcýya
// Þimdi ise dizinin ortalamasýný hesaplatýcaz
ortalama = toplam / N;
// Tekrar bir döngü açýcaz ve bu döngü de ortalamadan küçük ve büyük öðrencilerin kaç adet olduðunu belirlicez.
for(i=0;i<N;i++)
{
if(ogrenci[i]<ortalama)
ortalama_alti_adedi++;
else if(ogrenci[i]>ortalama)
ortalama_ustu_adedi++;
}
// artýk kullanýcýya ne varsa bam bam sýralýcaz
printf("Ortalama %f\n",ortalama);
printf("ortalamadan dusukk %d ogrenci vardir.\n",ortalama_alti_adedi);
printf("Ortalamadan yuksek %d ogrenci vardir",ortalama_ustu_adedi);
system("PAUSE");
menu();
}
void dizibuyukkucuk(){
system("cls");
int a[100],i,n,adet=0,gsayi=0,top=0;
float ort;
printf("dizi kac elemanli olsun");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("A[%d]",i+1);
scanf("%d",&a[i]);
}
printf("Bir Sayi giriniz ");
scanf("%d",&gsayi);
for(i=0;i<n;i++)
{
if(a[i]>gsayi)
{
top=top+a[i];
adet++;
}
}
ort=top/adet;
printf("%d tane sayi icerisinde %d sayisindan buyuk %d tane sayi vardir.Toplami = %d ortalamasi = %f",n,gsayi,adet,top,ort);
system("PAUSE");
menu();
}
int main(){
menu();
return 0;
}
Merhabalar ben Emre Hüseyinkahyaoğlu.Blogumda Siber Güvenlik çatısı altında paylaştığım yazılarımı göreceksiniz.Merak ettiğiniz konular veya sormak istediğiniz sorular için emrehuseyinkahyaoglu@gmail.com adresine mail atabilirsiniz.
C Programlama Dili Örnek Arşivi
Herkese merhabalar,biraz yoğun bir temponun içerisinde olduğum halde nerden aklıma geldiğini bilmiyorum ama Drive'ımda öyle sessiz sakin unutulmuş olarak kalan C dili örneklerimi burada paylaşmak istedim.Örnek sayısı 150 nin üzerinde ve içerisinde çok basit olarak nitelendirdiklerimi eleyeceğim.Bugün ve ilerleyen günlerde vakit buldukça yenilerini eklemeyi düşünüyorum.Şunu da belirtmek isterim ki örnekler 4 sene öncesine aittir yani buram buram hamlık,çiğlik kokabilir bunun altını çizmek isterim( :) ).C# ve Java daki çalışmalarımı da yüklemeyi isterdim fakat onları yedeklememiş olmamdan ötürü onlar ne yazık ki yok.Bu örneklerin işinizi görmesini dilerim,soru-cevaplarınız için mail adresimden,yorum bırakarak veya LinkedIn den ulaşabilirsiniz.
Decision Making Under Uncertainty Automation C#(Belirsizlik Altında Karar Verme Otomasyonu C#)
Karar verme teknikleri çatısı altında bulunan karar verme yöntemlerinden belirsizlik altında karar verme problemlerinin çözümünün C# dilinde yazılmış kodlarını paylaşma gereği duydum çünkü, internette bu konuyla alakalı Türkçe ve yabancı kaynak göremedim.Yorum satırlarında gerekli bilgiler verildiği için bir ön açıklama yapma gereği duymadım ama sizler sorularınız olduğu takdirde yorum bırakabilir veya instagram hesabımdan benimle iletişime geçebilirsiniz.İşinize yarayacağını umuyorum iyi çalışmalar dilerim.
int n = 0,
m = 0;
Console.WriteLine("*****Decision Making Under Uncertainty
Automation*****"); // Belirsizlik altında karar verme otomasyonu.
Console.WriteLine("Please enter the values we need"); //
Lütfen ihtiyacımız olan sayıları girin
//Create
the matris ( Matrisi oluşturacağız)
Console.WriteLine("Please enter the matris column pax : "); // lütfen matrisin sütun sayısını
giriniz
n =
Convert.ToInt32(Console.ReadLine()); //
n değişkenine sütunu atadık
Console.WriteLine("Please enter the
matris line pax : "); // lütfe matrisin satır sayısını giriniz
m =
Convert.ToInt32(Console.ReadLine()); // m değişkenine satır sayısını atadık
int[,]
masterValues = new int[n,m]; // matrisimizi n ve m sayılarına göre oluşturduk.
string[]
decisionVariable = new string[n]; // decisionVariable alternatif demek yani
burada alternatiflerin adını tutucaz(örn. network)
//Read
Values // Kullanıcıdan matrise veri girişi yapmasını istiyoruz burada
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++)
{
Console.WriteLine("Please enter Values : [" + (i + 1) +
"][" + (j + 1) + "]");
masterValues[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
//
alternatiflerin adını girdireceğiz aşağıdaki döngüde
// ( örn :
network , network + güvenlik)
Console.WriteLine("Please enter the decision variables name :
"); // LÜTFEN ALTERNATİFLERİN ADINI GİRİN
for (int i
= 0; i < n; i++)
{
Console.WriteLine((i + 1) + ". decision name : ");
decisionVariable[i] = Console.ReadLine();
}
Console.Clear(); // bu komutla konsol ekranını temizlemiş olduk yani
önceki yazılanlar silindi.
Console.WriteLine(" ");
//Write
Values On Screen (Kullanıcının girdiği değerleri ekrana yazdırıcaz.)
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++)
{
Console.Write(masterValues[i, j] + "\t");
}
Console.WriteLine(" ");
}
//MaxiMax
string
maxiMaxDecisionName = " "; // Maximax işlemi sonucunda seçilen
kararın adını tutacağımız değişkeni tanımladık.
int
maxiMax = 0; // maximax sonuç değerimizi tutacağımız değişkeni tanımladık.
int[]
maxNumber = new int[n]; // Her satırın en büyük değerini tutacağımız diziyi
tanımladık.
int helper
= 0; // her satırdaki büyük değişkeni bulup maxNumber dizisine atmamızı
sağlayacak olan değişken.
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++)
//her satırdaki en büyük değeri buluyoruz
{
if
(masterValues[i, j] > helper)
{
helper = masterValues[i, j];
}
}
maxNumber[i] = helper;
}
helper =
0; // bu sefer her
satırın en büyük elemanları arasında en büyük olanı seçeceğimiz için helper
değişkenini tekrardan 0 yaptık.
for (int i
= 0; i < n; i++)
{
if (maxNumber[i]
> helper)
{
maxiMax = maxNumber[i];
maxiMaxDecisionName = decisionVariable[i];
}
}
//MaxiMin
int
maxiMin = 0; // maximin karar değişkenimizi
tutacağımız değişkeni tanımladık
string
maxiMinDecisionName = " "; //
maximin de seçilen alternatifi tutacağımız değişkeni tanımladık
int[]
minNumber = new int[n]; // her satırın
maximin değerini tutacağımız diziyi tanımladık
helper =
100000; /// küçük olan sayıyı bulmak
için helper değişkenine 10000 sayısını atadık.
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++) //her
satırdaki en küçük elemanı buluyoruz
{
if
(masterValues[i, j] < helper)
{
helper = masterValues[i, j];
}
}
minNumber[i] = helper;
}
helper =
-500; // en büyük elemanı bulacağımız
için helpera -500 tanımladık
for (int i
= 0; i < n; i++)
{
if
(minNumber[i] > helper)
{
helper = minNumber[i];
maxiMin = minNumber[i];
maxiMinDecisionName = decisionVariable[i];
}
}
//Harwics
Console.WriteLine("Please enter the alpha value : "); // alfa
değeri istiyoruz kullanıcıdan
double
alpha = Convert.ToDouble(Console.ReadLine()); //
double
oneMinusAlpha = (1 - alpha); // burada 1- alfa değişkenine değer olarak 1-alpha
değerini atadık.
int[]
harwics = new int[n];
string
harwicsDecisionName = "";
for (int i
= 0; i < n; i++)
{
harwics[i] = (int)(alpha * maxNumber[i]) + (int)(oneMinusAlpha *
minNumber[i]); // Her satırdaki en büyük elemanla alfayı,
// en küçük elemanla 1- alfayı çarpıyoruz
}
helper =
0;
double
harwicsMax = 0;
for (int i
= 0; i < n; i++)
{
if
(harwics[i] > helper)
// burada her alternatif için bulduğumuz hurwics değerlerinin en
büyüğünü buluyoruz.
{
harwicsMax = harwics[i];
harwicsDecisionName
= decisionVariable[i];
}
}
//Laplace
Criterion
double
temporary = 0;
int[]
laplace = new int[n];
int
laplaceDecision = 0;
string
laplaceDecisionName = "";
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++)
{
temporary = temporary + masterValues[i, j]; //geçici değişkene bütün satırın
elemanlarını atıyoruz,
//aşağıda (1 / satır sayısı)na bölebilmek için.
}
temporary *= 0.166666666666667;
laplace[i] = Convert.ToInt32(temporary);
temporary = 0;
}
temporary
= 0;
for (int i
= 0; i < n; i++)
{
if
(laplace[i] > temporary)
// her alternatif için bulduğumuz
laplace değerlerinin en büyük olanını bulduğumuz kısımdayız
{
laplaceDecision = laplace[i];
laplaceDecisionName = decisionVariable[i];
}
}
//MinMax
int[]
minMax = new int[m]; //her
sütunun minmax değerini tutacağımız diziyi tanımladık
int[,]
temporaryMasterValues = new int[n, m]; // minmax işlemi sonrasında matrisin
yeni halini tutacağımız matrisi tanımladık.
int
counter = 0;
int c = 0;
int l = 0;
helper =
-500;
for (int i
= 0; i < n; i++)
// ana matrisimizi yeni matrisin içine kopyalıyoruz
{
for
(int j = 0; j < m; j++)
{
temporaryMasterValues[i, j] = masterValues[i, j];
}
}
for (l =
0; l < m; ) //Burada her sütunun en büyük değerini bulacağımızdan ötürü bir
sayaç yardımıyla bu işlemi gerçekleştirdik
{ // mantığı
ise sayaç satır sayısı kadar döndüğünde satır indisini başa al sütunu ise 1
arttır şeklinde
if
(masterValues[c, l] > helper) // bir yol izliyoruz.
{
helper = masterValues[c, l];
minMax[l] = masterValues[c, l];
}
counter++;
c++;
if
(counter == n)
{
counter = 0;
c = 0;
l++;
helper = -500;
}
}
c = 0;
l = 0;
counter =
0;
for (l =
0; l < m;) //burada
ise her sütunun en büyük elemanını bulduktan sonra o sütune ait elemanlardan
bulduğumuz
{ //sayıyı
çıkartıyoruz.
temporaryMasterValues[c, l] = minMax[l] - (temporaryMasterValues[c, l]);
counter++;
c++;
if
(counter == n)
{
counter = 0;
c
= 0;
l++;
}
}
int[]
minMaxsMaxNumber = new int[n];
int miniMax
= 0;
string
minMaxDecisionName = " ";
//sort
helper =
-500;
for (int i
= 0; i < n; i++) //artık yeni
tabloyu elde ettik ve her satırın en büyüğünü bulup onlar arasından
{ //en
küçüğünü seçeceğimiz kısımdayız.
for
(int j = 0; j < m; j++)
{
if
(temporaryMasterValues[i, j] > helper)
{
helper = temporaryMasterValues[i, j];
}
}
minMaxsMaxNumber[i] = helper;
helper
= -500;
}
helper =
-500;
for (int i
= 0; i < n; i++)
{
if
(minMaxsMaxNumber[i] > helper)
{
miniMax = minMaxsMaxNumber[i];
minMaxDecisionName = decisionVariable[i];
}
}
//
Expected Value(gain) -- (beklenen
değer / kar )
int[]
expectedValue = new int[n];
double[]
expectedValueMultiply = new double[6] { 0.15, 0.25, 0.1, 0.15, 0.25, 0.1 };
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++)
{
expectedValue[i] += Convert.ToInt32(expectedValueMultiply[j] *
Convert.ToDouble(masterValues[i, j]));
}
}
//sort
helper =
-500; //burada her satır
için bulduğumuz değerlerin en büyüğünü alıyoruz.
int
expectedValueDecision = 0;
string
expectedValueDecisionName = " ";
for (int i
= 0; i < n; i++)
{
if
(expectedValue[i] > helper)
{
helper = expectedValue[i];
expectedValueDecision = expectedValue[i];
expectedValueDecisionName = decisionVariable[i];
}
}
//
Expected value of complete information
// tam bilginin beklenen değeri
double
evoci = 0;
c = 0;
l = 0;
counter =
0;
for (l =
0; l < m;)
{
if
(temporaryMasterValues[c, l] == 0)
{
evoci += expectedValueMultiply[l] * Convert.ToDouble(masterValues[c,
l]);
}
counter++;
c++;
if
(counter == 3)
{
counter = 0;
c
= 0;
l++;
}
}
double
realEvoci = evoci - expectedValueDecision;
//Write
the results // artık sonuçları ekrana yazdırıyoruz.
Console.WriteLine(" ************************* MaxiMin
*************************");
Console.WriteLine(" ");
Console.WriteLine("MaxiMin valuse is : " + maxiMin + ".
\t And decision is : " + maxiMinDecisionName);
Console.WriteLine(" ");
Console.WriteLine(" ************************* MaxiMax
*************************");
Console.WriteLine(" ");
Console.WriteLine("MaxiMax value is : " + maxiMax + ". \t
And decision is : " + maxiMaxDecisionName);
Console.WriteLine(" ");
Console.WriteLine(" ************************* Hurwicz
*************************");
Console.WriteLine(" ");
Console.WriteLine("The output of the table obtained based on Hurwicz
criterion is as follows as a result of the examination, the decision value was
: [" + harwicsMax + "]. \t And decision is" +
":" + harwicsDecisionName);
for (int i
= 0; i < n; i++)
{
Console.WriteLine(harwics[i]);
}
Console.WriteLine(" ************************* Laplace
*************************");
Console.WriteLine("The output of the table obtained based on
Laplace criterion as follows as a result of the examination,the decision value
was : [" + laplaceDecision + "]. \t And decision is " +
":" + laplaceDecisionName);
for (int i
= 0; i < n; i++)
{
Console.WriteLine(laplace[i]);
}
Console.WriteLine(" ");
Console.WriteLine(" *************************minMax
*************************");
Console.WriteLine(" ");
Console.WriteLine("You see your table status after minMax progress
under this line ; ");
for (int i
= 0; i < n; i++)
{
for
(int j = 0; j < m; j++)
{
Console.Write(temporaryMasterValues[i, j] + "\t");
}
Console.WriteLine(" ");
}
Console.WriteLine(" ");
Console.WriteLine("And you see
every lines biggest value is under this line ");
Console.WriteLine(" ");
for (int i
= 0; i < n; i++)
{
Console.WriteLine(minMaxsMaxNumber[i]);
}
Console.WriteLine(" ");
Console.WriteLine("And miniMax decision value is : [" +
miniMax + "],miniMax decision is :" + minMaxDecisionName);
Console.WriteLine(" ");
Console.WriteLine("
************************* Expected Value *************************");
Console.WriteLine(" ");
Console.WriteLine("You see your decision and decisions expected
values under this line");
Console.WriteLine(" ");
for (int i
= 0; i < n; i++)
{
Console.WriteLine("[" + decisionVariable[i] + "] :"
+ expectedValue[i]);
}
Console.WriteLine(" ");
Console.WriteLine("And expected values decision value is : ["
+ expectedValueDecision + "],and decision variable is : " +
expectedValueDecisionName);
Console.WriteLine(" ");
Console.WriteLine(" ************************* Expected Value Of
Complete Information *************************");
Console.WriteLine(" ");
Console.WriteLine("Expected value of complete informations is :
" + evoci + " - " + expectedValueDecision + " = " +
realEvoci);
Console.ReadKey();
Console.Clear();
Console.ReadKey();
Evil Twin Kablosuz Ağ Saldırı Yöntemi ve Bu Saldırılardan Korunmak
Yoğun bir tempo atlattığım için blogta aktif olarak yazı yazamıyorum ki blogu kurarken haftada iki konu anlatırım diye açmıştım ama eldeki hesap çarşıya uymadı her zamanki gibi.Bugün de hazır izin günümdeyken bir yazı paylaşmak istemiştim ve ne yapacağım konusunda kararsızdım ama sonra eskiden çok ekmeğini yediğim bir yöntemi anlatma konusunda karar kıldım.Devasa wordlistlerle günlerce brute force saldırısı yapacak sabıra sahip birisi değilseniz benim gibi bu yöntem hem çok daha pratik hemde işe yaraması muhtemel.İlerleyen zamanlarda da krack saldırısı hakkında bir anlatım yapmak istiyorum boş vakit bulduğum takdirde.
Başlamadan önce kablosuz ağ saldırıları üzerine kafa patlatmaktansa web zaafiyetlerine kafa patlatmanızı önerdiğimi vurgulayıp uygulama kısmına geçelim.Evil twin saldırısı bir ağın klonunu oluşturarak kurbanı klon ağa yönlendirip ağın şifresinin elde edilmesidir.Bu işlemi gerçekleştiren bir çok araç internet üzerinde mevcuttur.Ben Parrot OS üzerinde fluxion-master aracını kullanarak bu işlemi gerçekleştireceğim,fluxionu da https://github.com/hunnain/fluxion-master adresinden edinebilirsiniz.
ilk olarak fluxion-masterı indirdiğimiz dizine giderek chmod +x fluxion.sh yaptıktan sonra ./fluxion.sh komutunu giriyoruz
Dil seçeneği gelecek İngilizce veya Türkçe seçeneği ile devam edebilirsiniz
1 deyip bütün kanallar seçeneği ile devam ediyoruz
Yaklaşık 10-15 saniye tarama yaptıktan sonra Ctrl + C tuşlarına basarak taramadan çıkıyoruz
İstediğimiz ağın başında ki numarayı girerek işleme devam ediyoruz.Burada numarasının yanında " * " olan ağı seçmenizi öneririm
Ağımızı seçtikten sonra hangi atak ile devam edeceğimizi soruyor, 1 deyip devam edelim.
Handshake dosyasını nereye kaydedeceğini soruyor.Varsayılan dizin dışında bir dizin istiyorsanız girin yoksa enter deyip devam edebilirsiniz
Handshake kontrolünün yapılacağı aracı seçmemizi istiyor.Ben pyriti kullanıyorum siz de 1 deyip devam edebilirsiniz
Bütün kullanıcıları ağdan atmasını istediğimiz için 1 deyip devam ediyoruz
Burada beklememiz gerekecek,ağdaki kullanıcı sayısı ve aktifliğine göre bekleme süremiz şekilleniyor.Kafe gibi çok sayıda kullanıcıya sahip alanlarda çok kısa süre beklerken bir ev ağına saldırı düzenlendiğinde bu süre uzayabiliyor
Ve nihayet birisi ağdan düşüp tekrar bağlandığında bizde handshake imizi elde etmiş oluyoruz.Bunu da ilgili alanda beliren "wpa handshake" yazılı alandan anlayabiliyoruz
Handshake imizi aldıktan sonra 1 deyip devam ediyoruz
1 deyip devam ediyoruz
Yine 1 deyip devam ediyoruz
Burada şifreyi alacağımız oturum açma ekranının arayüzünü seçeceğiz.Türkçe seçeneği ile devam edebilirsinzi veya internet sağlayıcılarının arayüzlerinin taklit edilmesi gibi yöntemlere başvurabilirsiniz
Şimdi evil twin saldırısının işçilik kısmını bitirdik.Artık birisinin oluşturduğumuz klon ağa bağlanıp parolasını girmesini beklemek kalıyor geriye
Resimde göreceğimiz üzere klon ağımız oluşturulmuş durumda.Kurban olarak bağlanıyoruz direk
Bizi otomatik olarak oturum açma sayfasına yönlendiriyor
Bu senaryoda önümüze böyle bir pencere çıkıyor ve buraya oturum açmak ağ şifremizi girmemiz isteniyor
Biz bunları yaparken sol altta FAKEDNS penceresi altında da arka planda dönen işlemleri görebilirsiniz.Sağ üstte de android cihazdan 1 kullanıcı bağlandığını görebiliyoruz.
Parolamızı giriyoruz
Ve saldırı başarıyla gerçekleşti.Ağ şifresini elde etmiş bulunuyoruz.Sağda belirtilen dizine giderek parolaya bakıyoruz
Vee şifreyi elde etmiş bulunuyoruz.
Burada asıl amaç insanlara kablosuz ağlara nasıl sızabileceğinizi öğretmek değil.Burada temel nokta saldırıyı anlayıp nasıl korunmanız gerektiğinizi bilmektir.Eminim ki şu satırları okuyan birisi bir evil twin saldırısına maruz kaldığı takdirde asla kurban olmayacaktır.Benim lisede en çok kullandığım yöntemdi ve brute force yöntemindense daha tercih edildiğini düşündüğümden dolayı evil twin saldırısından bahsetmeyi düşündüm.Umarım faydalı olmuştur ve bir saldırgan sizi klon ağ oluşturarak kurban durumuna düşürmeye çalışırsa bu yemi yutmazsınız.Sorularınız olursa sorabilirsiniz dinlediğiniz için teşekkür ederim bir sonraki yazımda görüşmek dileğiyle.
Kaydol:
Kayıtlar (Atom)






















