Volkan Atasever

Founder of inhoftec Solutions - Bilgisayar Mühendisi - Yazılım Uzmanı & Danışmanı - PCWorld Dergisi Yazarı - INETA User Group Lead - Technologist - Speaker - Technology Researcher

Aydın Üniversitesi Seminerim

clock Nisan 26, 2011 14:37 author Volkan Atasever tarafından yayınlanmıştır

21 nisan 2011 tarihinde Aydın Üniversitesinde Bilgisayar Mühendisliği ve Bilgisayar Programcılığı bölümlerinin yoğun katılım gösterdiği bir seminer gerçekleştirdim. Seminer konum "Mobil Yazılım Geliştirme Dünyası" oldu. Windows Mobile 6.x, Windows Phone 7 ve yeri geldiğinde IPhone ve Android platformları ile karşılaştırmalarda yaptığım seminer oldukça keyifli geçti. inhoftec solutions tarafından ilk defa öğrencilere sertifika dağıtıldı. 2 bölümden oluşan seminerde ilk bölüm konseptlerin ve platformların derinlemesine incelenmesiydi. bu inceleme bölümünda tüm platformlar ayrıntılarıyla irdelendi. İkinci bölümse Windows Mobile 6.x ve Windows Phone 7 demolarıyla gerçekleşti.

Sinan Mıcık'a ve İAÜ DevSoft Kulübüne organizasyona katkılarından dolayı teşekkür ederim.

 

 

Sponsored by



Mobil Cihazlarda Hacking Yöntemleri

clock Ekim 7, 2010 04:41 author Volkan Atasever tarafından yayınlanmıştır

Bu makalemde bir hacking senaryosu hazırlayıp mobil cihazda nasıl benzeri bir hack yapacağımızı irdeleyeceğiz. Bu yöntem tamamen “ethical hacking” konusu altında incelenmekte olup asıl amacımız bu tehlikeli saldırılara karşı nasıl güvenli bir yöntem bulacağımız konusuna eğilmektir.

Öncelikle bir senaryo hazırlayalım. Ali isimli kişinin mobil cihazına internete bağlıyken sızabiliyor veya toplumsal mühendislik konularını kullanarak offline cihaza erişebiliyoruz. Diğer bir yöntemse bir “sazan avlama” (phishing) yöntemi ile kötü niyetli uygulamamızı kullanıcının çalıştırmasını sağlamak olacaktır. Yapacağımız işlemse background’da çalışan bu programın her click işleminde ekran görüntüsünü almak olacaktır. Bu sayede eğer mobil cihaz üzerinden internet bankacılığı gibi bir işlem yapıyorsa dahi bu şifreleri yakalayabilmek olasıdır. Kullanıcının bu açığa en iyi cevabı uygulama cihaza yüklenmeden önce onu durdurmak olmalıdır. Basit bir “ekran görüntüsü yakalama” (screen capture) uygulaması yaparak bu işlemin ne kadar kolay olacağını inceleyelim.

Yapacağımız uygulama için basit bir kullanıcı arayüzü yapalım. Bu arayüzde bir buton kontrolü ve bir picturebox kontrolü bulunsun.

C# kodu:

using System;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

 

namespace SmartDeviceProject26

{

    public partial class Form1 : Form

    {

        [DllImportAttribute("coredll.dll")]

        public static extern IntPtr GetWindowDC(IntPtr hWnd);

 

        [DllImport("coredll")]

        public static extern int DeleteDC(IntPtr hdc);

 

        [DllImportAttribute("coredll.dll")]

        internal static extern IntPtr ReleaseDC(IntPtr hdc);

 

        public const int SRCCOPY = 0x00CC0020;

 

        [DllImport("coredll.dll")]

        public static extern bool BitBlt(IntPtr hdcDest,

            int nXDest, int nYDest, int nWidth,

            int nHeight, IntPtr hdcSrc, int nXSrc,

            int nYSrc, uint dwROP);

 

        public Form1()

        {

            InitializeComponent();

        }

        private Bitmap CaptureScreen()

        {

            Bitmap b = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

            using (Graphics g = Graphics.FromImage(b))

            {

                IntPtr hdcSrc = IntPtr.Zero;

                IntPtr hdcDest = g.GetHdc();

                try

                {

                    hdcSrc = GetWindowDC(IntPtr.Zero);

                    BitBlt(hdcDest, 0, 0, b.Width, b.Height,

                        hdcSrc, 0, 0, SRCCOPY);

                }

                finally

                {

                    if (hdcSrc != IntPtr.Zero)

                    {

                        ReleaseDC(hdcSrc);

                        DeleteDC(hdcSrc);

                    }

 

                    g.ReleaseHdc(hdcDest);

                }

            }

 

            return b;

        }

 

 

        private void button1_Click(object sender, EventArgs e)

        {

            this.pictureBox1.Image = CaptureScreen();

        }

    }

}

 

VB.NET kodu:

Imports System.Drawing

Imports System.Text

Imports System.Windows.Forms

Imports System.Runtime.InteropServices

 

Namespace SmartDeviceProject26

                Public Partial Class Form1

                               Inherits Form

                               <DllImportAttribute("coredll.dll")> _

                               Public Shared Function GetWindowDC(hWnd As IntPtr) As IntPtr

                               End Function

 

                               <DllImport("coredll")> _

                               Public Shared Function DeleteDC(hdc As IntPtr) As Integer

                               End Function

 

                               <DllImportAttribute("coredll.dll")> _

                               Friend Shared Function ReleaseDC(hdc As IntPtr) As IntPtr

                               End Function

 

                               Public Const SRCCOPY As Integer = &Hcc0020

 

                               <DllImport("coredll.dll")> _

                               Public Shared Function BitBlt(hdcDest As IntPtr, nXDest As Integer, nYDest As Integer, nWidth As Integer, nHeight As Integer, hdcSrc As IntPtr, _

                                               nXSrc As Integer, nYSrc As Integer, dwROP As UInteger) As Boolean

                               End Function

 

                               Public Sub New()

                                               InitializeComponent()

                               End Sub

                                Private Function CaptureScreen() As Bitmap

                                               Dim b As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)

                                               Using g As Graphics = Graphics.FromImage(b)

                                                               Dim hdcSrc As IntPtr = IntPtr.Zero

                                                               Dim hdcDest As IntPtr = g.GetHdc()

                                                               Try

                                                                              hdcSrc = GetWindowDC(IntPtr.Zero)

                                                                              BitBlt(hdcDest, 0, 0, b.Width, b.Height, hdcSrc, _

                                                                                              0, 0, SRCCOPY)

                                                               Finally

                                                                              If hdcSrc <> IntPtr.Zero Then

                                                                                              ReleaseDC(hdcSrc)

                                                                                              DeleteDC(hdcSrc)

                                                                              End If

 

                                                                              g.ReleaseHdc(hdcDest)

                                                               End Try

                                               End Using

 

                                               Return b

                               End Function

 

 

                               Private Sub button1_Click(sender As Object, e As EventArgs)

                                               Me.pictureBox1.Image = CaptureScreen()

                               End Sub

                End Class

End Namespace

 

Uygulamanın ekran görüntüsü:

Gördüğünüz gibi 30 satırı geçmeyen bir kodla o anda ekranda hangi görüntü varsa yakalayabildik. Kullanıcının yapması gereken en başta bu uygulamanın çalışmasına izin vermemektir. Diğer bir yolsa “process” listesinde bilmediği bir uygulamayı derhal sonlandırması gerektiğidir.

Diğer bir yöntem ise kayıt defterine hakim olmaktır. Bu sayede cihaz içinde istediğiniz işlemi yapabilirsiniz. Kayıt defterinde ilgili bilgilerin nerede kaydedildiğini bilmeniz gerekmektedir. Tüm anahtarların bir anlamı vardır.

Kayıt defterindeki bazı anahtarlara ve değerlerine göz atalım.

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\Start Items

Bu kayıt defteri yolunda başlangıçta çalışacak programlar listelenmiştir. Her prgram burada listelenmemekle birlikte ilgili ayarları değiştirebilirsiniz.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Inbox\

“Settings” anahtarına basın ve “SMSNoSendMsg” string değerini 1 olarak ayarlayın. Bu sayede mobil cihazdan mesaj yollandığında mesaj yollama notification kontrolü gözükmeyecektir. Aslında bu hackerlar açısından istenen bir durumdur. Kendi gizli uygulamalarından mesaj gönderdikleri zaman bu değeri 1 olarak ayarladıklarında kullanıcı cihazdan mesaj gittiğini farketmeyecektir. Kaçak uygulamanın işi bittiği zaman programatik olarak bu değeri tekrar değiştirebilmektedir.



Mobil Cihazlarda Güvenlik

clock Ekim 7, 2010 04:34 author Volkan Atasever tarafından yayınlanmıştır

Hacking Nedir?

Bilişim dünyasının ilk yıllarında bu yana hacking ve hacker kavramları oldukça ilgi görmüştür. Bilgisayar sistemlerine izinsiz girişi sağlayan ve bunları kendi çıkarları doğrultusunda kullanan kişilere hacker bu işleme ise hacking ismi verilmiştir. İşin doğrusu bu noktada aslında birden fazla terim olduğudur. Öncelikle her sisteme sızana veya benzer işler yapana hacker denemez. Herhangi bir sistemde çok fazla açık mevcutsa piyasada bulunan bir kaç program sayesinde bu cihazlara izinsiz erişim yapmanız çok kolaydır. Teknoloji, sistem ve yazılım bilgisi olmadan bu programları kullanıp kendini hacker ilan edenlere genellik “lamer” denilmektedir. Genellikle kötü bir sıfat olan “lamer” olma durumu istenen bir durum olmamakla beraber bir üretkenlik yoktur. Hacker kavramı ise beyaz şapkalı ve siyah şapkalı olarak ikiye ayrılmaktadır. Her iyi yazılımcı aslında birer hackerdır. Çünkü yazılımı en iyi ve güvenlik açığı olmadan yazmak bu işin sanatsal yönlerinden biridir. Bu yönteme programlama sanatı demek çok doğru olmaktadır. Beyaz şapkalı hacker’lar genellikle güvenlik açıklarını tespit edebilmek için tüm saldırı yöntemlerini iyi bilmek zorundadırlar. Kötü niyetli bir hacker’ın yapabildiklerini yapmakla beraber bu bağlam savunma işlemlerini çok iyi bilmeleri gerekmektedir. Hacker dediğimiz kavram toplumumuzda bilgisayara çok fazla hakim kişiler olarak anılmaktadır. Gerçek bir hacker aynı zamanda toplum mühendisi olabilmekten geçmektedir. Sosyal ilişkilerde karşı taraftaki şahıs veya firmanın açıklarını diyaloğa girerek bulabilmeside sisteme sızması için kimi zaman yeterli olabilmektedir. Bu bilgiye veya maddi herhangi bir şeye izinsiz girişlerin ve kullanımların çoğu hacking olarak adlandırılmaktadır.

 

Mobil cihazlarda hacking olayını herhangi bir cihaz veya sunucudaki hacking olayından farklı görmemek gerekmektedir. Mobil cihaz konsepti ne kadar farklı olursa olsun bir işlemci,ram,depolama birimi ve bu bileşenlerin uyumlu çalışması için işletim sistemiyle beraber gelmektedir. Herhangi bir sunucu veya kişisel bilgisayardan farkı yoktur. En önemli nokta ise mobil cihaza yapılan hacking yöntemi sonucu edinilen bilgilerin diğer cihazlardaki bilgilerden kısmen daha önemli olabildiğidir. Hacking yöntemleriyse diğer cihazlardan farklılık göstermektedir. Mobil cihazlar üstünde koşan işletim sistemlerinin farklı ve çeşitli olması nedeniyle hacking işlemleri oldukça zorlaşmaktadır. Açık bulunan bir cihaz üstünde güncelleme yapılmadıysa veya hacking yöntemleri ile beraber cihaza sızılmışsa bu noktada cihaz savunmasız hale gelebilmektedir. Cihaz üstünden erişilebilecek bilgilerse oldukça önemli bilgilerdir. Bu bilgiler telefon rehberi, kısa mesajlar, cihaz üstünde izinsiz arama yapmak, cihaz üstündeki özel notları alabilmek gibi sıralanabilmektedir.

 

Mobil Cihaz Açıkları

Mobil cihazlarda belirlenen en önemli açıklar bu cihazlara bulaşabilen virüslerdir. Son döneme kadar bu virüsler için özel önlemler alınmamaktaydı. Şu anda ise Eset firması, avast firması gibi antivirüs firmaları mobil cihazlar içinde antivirüs yazılımları üretmeye başladılar. Mobil cihazların bilgisayarla senkronizasyonu ve dosya alış verişi yapması virüs bulaşma ihtimalini fazlasıyla kuvvetlendirdir. Bundan dolayı kullanıcılar bu antivirüs uygulamalarını cihazlarına kurmaya başladılar. Ne yazık ki bu uygulamaların kullanımı sıradan kullanıcılar için gözardı edilebilmektedir. Bulaşan virüslerse sistemde açıklar meydana getirmektedir.

Diğer önemli bir mobil cihaz açığı ise doğrudan hedeflenen kişinin mobil cihazına yönelik yapılan saldırılardır. Bu saldırılarda email yoluyla veya herhangi bir cihaza ulaşma yöntemiyle cihaza çeşitli uygulamalar yükleyerek o anki konuşmaların dinlenmesi veya bilgilere ulaşılmasıdır. Bu yöntem toplumsal mühendislikle birleştiğinde cihazın sahibinin aldatılmasıyla mobil cihaza çeşitli  kötü niyetli uygulamalar yüklenilmesi olarak sıralanabilir. Toplumsal mühendislik, kötü niyetli kullanıldığında karşındakini ikna edip bu ikna gücünü kötü niyetli kullanmak olarak tanımlanabilmektedir.

Geliştiricileri ilgilendiren en önemli noktaysa yaptıkları uygulama içinde yapılan açıklardır. Bu açıklar kullanıcıyı doğrudan etkilemektedir. Eğer yapılan uygulama geniş kitlelere ulaşmışsa uygulamanın güvenli daha önemli bir hal almaktadır. Bu açıklar uygulamanın cracklenmesini yani izinsiz kullanımınında önünü açmaktadır.

İyi niyetli gözüken ücretsiz uygulamalarada şüpheyle yaklaşmak gerekmektedir. Her uygulama bu kategoriye girmesede bu bağlamda yapılan bazı uygulamalar cihaza yüklendikten sonra kişisel bilgileri izinsiz olarak uygulamanın sahibine gönderebilmektedir. Bu da dolandırıcılıklara ve izinsiz bilgi hırsızlığı açısından büyük bir tuzak olarak görülebilmektedir.

 

Tehdit Problemleri ve Çözümleri

Kaliteli mobil cihaz güvenlik uygulamaları aşağıdaki sorunlara çözümler üretmektedir.

Bu sorunlar;

  • Virüsler
  • Spam postalar (SMS mesajları)
  • Worms
  • Spyware
  • Trojanlar
  • Ve en önemlisi hackerlar

Hiç bir zaman bir cihazın %100 güvenli olduğunu söylemek oldukça zordur. Bilişim dünyasında hiç bir zaman %100 güvenlik adı altında bir kavram olmamıştır. Her daim yeni açıklar, yeni hatalar ve yeni hack yöntemleri gelişmektedir. Bunlara karşın güvenliğinizi maksimum düzeyde tuttuğunuz sürece en azından bilinen açıklara ve tehlikelere karşı güven altında olmaktayız. Piyasada mobil antivirüs yazılımı olarak birden fazla alternatif mevcuttur.

 



Tag Teknolojisi Kullanarak E-Kupon Sisteminin Geliştirilmesi

clock Mayıs 13, 2010 01:15 author Volkan Atasever tarafından yayınlanmıştır

Çankaya Üniversitesin de düzenlenen 3. Mühendislik ve Teknoloji sempozyumunda sunulan bildiri oldukça ilgi gördü. Yenilikçi ve Microsoft Tag yani High Capacity color Barcode teknolojisinin extreme kullanımı öngörmektedir. Bu Akademik yayın 29-30 Nisan tarihlerinde Ankara'da 3. Mühendislik ve Teknoloji sempozyumunda sunulmuş ve bildiri kitabında basılmıştır.

Özet:

Günümüzde teknolojinin gelişmesiyle, tek boyutlu barkodların yerini 2 boyutlu (2D) barkodlar almıştır. 2D bir barkod, ikili(binary) bir barkoddan çok daha fazla bilgi tutabilmektedir.  Günümüzde, herhangi bir ürün hakkında bilgi almak isteyen tüketiciler genellikle barkod sistemlerini tercih etmektedirler. 2D barkodlardan bilgi alma işlemi bir cep telefonu aracılığı ile rahatlıkla gerçekleştirilebilmektedir. Bu işlemlerin gerçekleştirilmesi için bilgisayarlı görme teknikleri kullanılmaktadır. 2D barkodların en yaygın kullanımlarından biri Microsoft tarafından geliştirilen HCCB (High Capacity Color Barcode – Yüksek Kapasiteli Renkli Barkod) renkli barkod sistemidir. Bu çalışmanın birinci bölümünde barkod türleri ve kullanım alanları, ikinci bölümünde Microsoft’ un HCCB sistemi, üçüncü bölümde HCCB barkod sistemi ve Microsoft Tag Reader yazılımı kullanılarak bir elektronik kupon (e-kupon) toplama sistemi önerilmektedir.

 

Anahtar Kelimeler: Barkod, E-Kupon, HCCB, 2D Barkod.

Bildiri için:

Bildiriyi indir:

Bildiri_Cankaya.pdf (691,21 kb)



TODAY veya HOME Ekranını uygulamada göstermek!

clock Mart 10, 2010 03:59 author Volkan Atasever tarafından yayınlanmıştır

Mobil uygulamanızdan today ekranına veya ilk home ekranını göstermek yani dönmek için iki adımlı basit bir kod parçamız bulunmakta.

 

HWND hWndDesktop = GetDesktopWindow();
SetForegroundWindow((HWND)(((ULONG) hWndDesktop) | 0x01) );

 

İlk satırda today veya başlangıç ekranımızın HWND tipinde adresini alıyoruz. En üstte duracak pencere olmasını sağlamak içinde setforegroundwindow metodunu uyguluyoruz. Artık Today ekranındasınız. Uygulama kodları native düzeydedir.

 



Volkan Atasever Kimdir ?

E-Mail: volkan@volkanatasever.com

Founder of inhoftec Solutions
Bilgisayar Mühendisi
Yazılım Uzmanı&Danışmanı
PCWorld Dergisi Yazarı
DeveloperMania.Net Topluluk Lideri
Technology Speaker
Teknoloji Uzmanı&Danışmanı





Kitapları

Sosyal Ağlarım

    

 

Twitter

Calendar

<<  Mayıs 2012  >>
PaSaÇaPeCuCuPa
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Son Yorumlar

Comment RSS

Son Yazılar

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2008-2011

Giriş

Yazılım