İlköğretim 1. sınıflar için el yazısı simulasyonu

İlköğretim birinci sınıflar için el yazısı öğrenme programı. El yazısı harflerinin doğru şekilde nasıl yazıldığını öğretilmesi için faydalı bir yazılım . Bu tür yerli yazılımların az olmasından dolayı programcılarımıza çok iş düşüyor. Özellikle tanıdığım genç programcı arkadaşlar illegal yazılımların geliştirilmesi konusunda oldukça efor sarfediyorlar. Sözünü ettiğim arkadaşların bu enerjilerini faydalı yazılımlara kanalize etme noktasında eğitimcilere ve ailelere görevler düşüyor.

Yazılımı indirmek için tıklayın. (~4031KB)

WinBinder: The native Windows binding for PHP

WinBinder açık kaynak kodlu bir PHP eklentisidir. PHP programcılarının kolayca 32 bitlik yerel Windows uygulamaları oluşturmalarını sağlar. PHP’nin esnek yapısı sayesinde çok az kod satırı ile fonksiyonel programlar hazırlanabiliyor.

WinBinder’in yapısı hakkında:
WinBinder esas avantajını resmi olarak PHP  4.3 ile tanıtılmış olan CLI SAPI (Command Line Interface / Server Application Programming Interface)’den almaktadır. 3. parti DLL (Windows Kütüphanesi)’ler PHP’yi Wİndows geliştirme ortamı olarak kullanmak için yetenekli hale getiriyorlar. Bu kütüphaneler pencereleri, kontrolleri, mesajları, zamanlayıcıları, windows kayıt defterini, GDI (Windows’ Graphic Device Interface) ve daha fazlasını yönetmek için kodlar içeriyor.Bir grup düşük seviyeli (low-level) fonksiyon, programcının istediği Windows fonksiyonuna erişmesine, yapılar tanımlamasına ve belleğe doğrudan erişmesine izin veriyor.

Kontroller doğrudan WinBinder fonksiyonuları çağrılarak veya 3. parti form tasarım yazılımların oluşturduğu RC dosyaları (Resource) ile oluşturulabilir. Bu kaynak dosyalar fazladan bir derleme aşamasına gerek bırakmadan doğrudan (RC) çalışma anında parselleniyor.

Aşağıdaki diyagram WinBinder’ın Windows uygulamalarını oluştururken kullandığı mekanizmayı anlatıyor.

Daha fazla bilgi için tıklayın.

Çeşitli WinBinder uygulamaları:

WinBinder Release Maker,
WinBinder TrueType Data Reader,
WinBinder Clock ,
WinBinder To Do ,
LightsOut,

WinBinder ile yapılabilecekler için güzel bir örnek:
Sample WinBinder

53 Autostart Locations

Bilgisayarın açılışında daha doğrusu Windows başlarken bir programı her seferinde çalıştırmak gerektiğinde otomatik başlatma noktalarından birini kullanırız. Ayrıca benzer şekilde sistemimize musallat olan kurtçuk ve turuva atları gibi dosyalara bulaşma karakteristiği göstermeyen yazılımları da bu noktalarda aramak mantıklı bir fikirdir. Aşağıdaki listede 35’i registry (Windows kayıt defteri), 12’si dosya konumu ve 6’sı klasor konumu olmak üzere toplam 53 otomatik başlatma konumu yer alıyor.

Bilgisayarın açılışında daha doğrusu Windows başlarken bir programı her seferinde çalıştırmak gerektiğinde otomatik başlatma noktalarından birini kullanırız. Ayrıca benzer şekilde sistemimize musallat olan kurtçuk ve turuva atları gibi dosyalara bulaşma karakteristiği göstermeyen yazılımları da bu noktalarda aramak mantıklı bir fikirdir. Aşağıdaki listede 35’i registry (Windows kayıt defteri), 12’si dosya konumu ve 6’sı klasor konumu olmak üzere toplam 53 otomatik başlatma konumu yer alıyor.
Okumaya devam et “53 Autostart Locations”

FCCU GNU/Linux Forensic Boot CD

Lnx4n6 (Linux Forensics) Belçika Federal Bilgisayar Suçları Birimi (FCCU) tarafından suça karışmış veya suç amaçlı kullanılmış bilgisayarlardan adli amaçlarla delil toplamak için kullanılan özel bir knoppix sürümü. Boot CD olarak hazırlanmış bu linux sürümünde windows ve linux işletim sistemlerini ve kullanılan yazılımları analiz etmek için birçok araç bulunuyor. CD’ye koyulan araçlar şu kategorilere ayrılmış: Forensic acquisition, Forensic analysis, Undelete, Hardware utils, Disk/partition utils, Archive tools, Pictures tools, Video tools, Password cracker, Crypto/Stegano tools, Anti-virus MS files tools, Network Network scanner, Network capture, Malware collection, VNC utils, Common tools. CD’yi ISO dosyası olarak da indirebileceğiniz sitesinin adresi: http://www.lnx4n6.be/index.php

Echo Mirage is a generic network proxy

Echo mirage genel amaçlı bir ağ proxy’si. DLL injeksiyon ve fonksiyon yakalama tekniklerini kullanarak istediğiniz bir uygulama programının ağla ilgili api çağrılarını ağ iletişimini yakalamak ve modifiye etmek için kullanıyor. Windows şifrelemesini ve OpenSSL fonksiyonlarını da yakalayabliyor. Canlı veriyi düzenli ifadelerle (regular expressions) veya kendi betik diliyle (action scripts) modifiye edebilmenize imkan tanıyor. Ağ sayfasının adresi: http://www.bindshell.net/tools/echomirage

Firefox ile Textarea Wrap Sorunu

Wrap özelliği sayesinde textarea içindeki sözcüklerin alt satırlara kaydırılması (yani dikey kaydırma çubuğunun görünmez yapılması) veya bu özelliği kapatarak (wrap=’off’) sözcüklerin kutu içinde kaydırılmadan, yatay kaydırma çubuğununun görüntülenmesini sağlayabilirsiniz.

Bu işi javascript ile yapmak gerektiginde txtarea.wrap = ‘off’ veya daha saygılı bir kod olan document.getElementById(‘txtarea’).wrap = ‘off’ kullanılıyor.

Sorun uygulamanızın tüm tarayıcılarda çalışma iddiasına sahip olduğunda başlıyor. Malesef yukarıdaki saygılı kod bile Firefox tarayıcılarda işlemiyor. Javascript içerisinden bu özelliği ne kadar ayarlamaya çalışırsanız çalışın sonuç alamıyorsunuz. Çünkü Firefox real-time‘da wrap özelliğini (attribute) dinlemiyor. Aslında bu sorun, Firefox’daki bir hatadan kaynaklanıyormuş ve tabiki de raporlanmış. Rapor adresi:

https://bugzilla.mozilla.org/show_bug.cgi?id=302710

Raporlandığı sayfada IE ve FF tarayıcılarda çalışan kod da yayınlanmış. Javascript ile sözcük kaydırmak (word wrap) için aşağıdaki fonksiyonu kullanabilirsiniz.

<html>
  <head>
    <title> Wrap bug in Firefox</title>
  </head>
<body>
  <textarea id="txtarea" style="width:200px;height:100px">
  Looooooooong line
  </textarea>
  <script>
  function setWrap(obj, val) {
    obj.setAttribute(‘wrap’, val);
    var parNod = obj.parentNode, nxtSib = obj.nextSibling;
    parNod.removeChild(obj);
    parNod.insertBefore(obj, nxtSib);
  } 
  setWrap(txtarea, ‘off’);
  </script>
</body>
</html>


Yazan: Tankado

Firefox Webmaster Eklentileri

Web uygulamaları geliştirenlerin işine yarayabileceğini düşündüğüm önemli Firefox eklentileri.

  1. change user agent for certain sites : User Agent Switcher
  2. find the color code of a given pixel : ColorZilla
  3. capture screenshots : ScreenGrab!
  4. capture screenshots : Pearl Crescent Page Saver
  5. check the validity of links on a page : LinkChecker
  6. copy and format selected text/title/url : Copy URL+
  7. debug ajax/css/html/javascript : FireBug
  8. debug javascript : JavaScript Debugger
  9. download an entire website : SpiderZilla
  10. edit CSS stylesheet : EditCSS
  11. find whois information of the site : domainFinder
  12. inspect the DOM of HTML, XUL, and XML pages : DOM Inspector
  13. inspect the selected element with DOM Inspector : InspectThis
  14. measure pixel width with a ruler : MeasureIt
  15. modify http/https headers and post parameters : Tamper Data
  16. preview the Adsense ads that might be shown on a page : Adsense Preview
  17. run automated tests on a site : TestGen4Web
  18. see anchors on the page : Show Anchors
  19. see color contrast page information : Colour Contrast Analyser
  20. see cookie information for a page : View Cookies
  21. see current page’s heading structure in a sidebar : Document Map
  22. see errors categorizxed by type : Console2
  23. see GET and POST parmeters of the page : UrlParams
  24. see how a page will look on mobile screen : Small Screen Rendering XPI
  25. see http headers of a page : Header Monitor
  26. see IP address of the site : ShowIP
  27. see web development references in a sidebar : DevBoi
  28. see Xpath information : XPather
  29. simulate WAP browsing by viewing WML : wmlbrowser
  30. test nightly versions of Firefox : Nightly Tester Tools
  31. validate html : HTML Validator
  32. view css styles; view html in another app; validate css/htmlWeb Developer
  33. view page html source constructs directly on the page : X-Ray
  34. view rendered source : View Source Chart
  35. view source with an externall app : ViewSourceWith
  36. write lorem ipsum content for test page : LoremIpsum Content Generator
  37. Back to Top of the Page
  38. Suggestions/Corrections : Comment in blog : wordpress : I want a Firefox Extension to …

PHP, MySQL, Javascript, CSS Cheat Sheets

Cheat Sheet dediği şey belli bir konuyla alakalı çok sık kullanılan ve genelde ezberlenmesine gerek olmayan hatta hatırlatma amacıyla da kullanılabilen çizelgelerdir. Tam olarak Türkçe karşılığının olmaması (ya da benim bulamamam) üzücü. Aşağıda PHP, Javascript, MySQL, CSS, ActionScript, Apache mod_rewrite ve Renk çizelgeleri yer alıyor.

Cheat Sheet dediği şey belli bir konuyla alakalı çok sık kullanılan ve genelde ezberlenmesine gerek olmayan hatta hatırlatma amacıyla da kullanılabilen çizelgelerdir. Tam olarak Türkçe karşılığının olmaması (ya da benim bulamamam) üzücü. Aşağıda PHP, Javascript, MySQL, CSS, ActionScript, Apache mod_rewrite ve Renk çizelgeleri yer alıyor.

Okumaya devam et “PHP, MySQL, Javascript, CSS Cheat Sheets”

Yazdırılamayan ve ekran görüntüsü alınamayan sayfa yapmak

Yazıcıdan yazdırılamayan ve ekran görüntüsü alınamayan sayfalar yapmak için bir parça kod. Çok güvenilir bir koruma sağlamadığnı söyleyeyim. Bu işlerden biraz anlayan birisi altından girip üstünden çıkabilir.

SQL için ayrılmış kelime kontrolü

SQL dili her nekadar bir standartta olsa da MySQL, Oracle ve MSSQL gibi farklı veritabanı sunucularında geçerli olabilecek programcı tanımlamaları farklılıklar göstermektedir. Bir kelimenin tablo, alan veya indeks isimleri gibi kullanıcı tanımlı girdilerde kullanılıp kullanılamaycağını bilmek gerekir. Bu sayfadan bir kelimenin en çok kullanılan veritabanı sunucularında kullanılıp kullanılmadığı sorgulanabiliyor.

FakeAP: Fake Access Point

Fake AP wardriving’i zorlaştırmak için kullanılan bir yazılım. Yazılım binlerce sahte erişim noktasını taklit ederek, olası bir wardriving’te karşı tarafın binlerce sahte erişim noktası (access point) görmesini sağlıyor. Yazılım hem kalabalıkta gizlenme hem de saldırı tespiti için honeypot uygulamalarında kullanılıyor.

Dosya yöneticileri

PHP ile sunucu tarafındaki dosya ve dizinleri düzenlemeye yarayan script’ler.

http://www.litoweb.net/pfn2/
http://pfn.sourceforge.net/?lg=ing
http://www.phpxplorer.org/phpXplorer/webIndex.php
http://ecosmear.com/relay/demo/relay.html
http://ecosmear.com/relay/
http://www.eblah.com/e-dir/
http://cjgexplorerpro.com.ar//cjgexplorerpro/
http://www.szewo.com/php/commander/eng/
http://www.blueshoes.org/examples/fileManager/index.php
http://fsguide.sourceforge.net/
http://sweetphp.com/nuke/modules.php?name=Script_Preview&script=7
http://www.josh.ch/joshch/php-tools/phpmywebmin,overview.html
http://www.bitfolge.de/snif-en.html
http://www.siteeditplus.com/index.php?page=demo
http://www.bmitt.com/index.php?PageID=44&dir=webauthoring/php

Bluesnarfing

Bluesnarfing, Bluetooth bağlantısını kullanarak telsiz bir aygıttan bilgi çalmanın literatür adı. Şaşırmaya gerek yok bu tür yeni şeylerin literatüre girmesi için fazla bir zaman geçmesine gerek olmuyor. Farklı bir ifadeyle çoğunlukla telefonlar, dizüstü ve el bilgisayarları gibi cihazlardan telsiz bağlantısı kullanılarak bilgi sızdırmada kullanılan, yöntem ve teknikler topluluğuna verilen isim diyebiliriz. Bu yöntemlerle aygıtın ajandasına, kontak listesine ve kayıtlı mesajlarına erişiliyor. Saldırganın aygıtlara bu yöntemle erişilebilmesi için Bluetooth bağlantısının açık ve discoverable (sınırlar içindeki diğer Bluetooth cihazları tarafından bulunabilmesi) özelliğinin aktif olması gerekiyor. Bu özellik kapalı olsa bile saldırganın kaba kuvvetle cihazı tanımlaması mümkün. Bluejacking ise yakındaki Bluetooth cihazlara isim alanında mesaj yer alan reklamlar göndermek olarak tanımlanmış ikinci jargon. Canlı bir bluesnarfing gösterisini izlemek için buradan buyrun.

Ajax ile güvenli veri aktarımı

XML yada AJAX ile sunucu tarafına güvenli bir şekilde veri göndermek gerektiğinde bazı özel durumları da düşünmek ve kodda ekstra bazı eklemeler yapmak gerekiyor. Kullanmış olanlar bilirler, XMLHTTP nesnesi kullanıldığında, gönderilecek veri open üye fonksiyonuna parametre olarak verilir. Örneğin:

http.open(‘POST’, VERI, true);

veya

http.open(‘GET’, VERI, true);

Yukarıdaki veri değişkeni her iki gönderim metodunda da (GET ve POST) aynı şekilde ve formatta kullanılır. Veri isimli değişkenin formatı şu şekildedir:

degisken1=veri1&degisken2=veri2&degisken3=veri3

Aslında güvenli aktarımdaki bir sıkıntı da tam burada oluşuyor. Verilerden birinin muhteviyatında &, n veya + (ve özel amaçlı yazdırılamaz karakterler) karekterleri bulunduğunda, veriler sunucu tarafındaki script’te düzgün olarak ayrıştırılamıyor veya aktarılamıyor . Bu sorunun üstesinden gelmek için veri kısmıdaki zararlı karakterklerin ayıklanarak URL’i bozmayacak şekilde kodlanması gerekiyor. Base64, veriyi kendi karakter tablosunu kullanarak (64 adet karakterden oluşur) kodlayan bir algoritma. Web’de base64 encoder ve decoder olarak birçok javascript fonksiyonu bulmanız mümkün. Ancak bunların hepsi PHP’nin (sunucu tarafında php script kullanıldığını varsaydım) base64_decoder fonksiyonuyla uyumlu çalışmıyor. Webtoolkit sitesindeki kodlayıcı ve çözücü fonksiyonlar php.net sitesinde de belirtildiği gibi PHP’nin base64 kodlama ve kod çözme fonksiyonlarıyla uyumlu çalışıyor.

Gönderilecek veriyi base64 ile kodlamak ve karşı tarafta çözmek tek başına sağlam bir veri aktarımı yapmak için yeterli değil. Base64 esasında ikili veriyi yazdırılabilir formattaki karakterlere çevirmeye yarıyor. Bu sayede içerisinde veri taşıyıcısını etkileme ihtimali olan zararlı karakterler güvenli bir formata çevrilmiş oluyor. Base64 algoritması içerisinde (A-Za-z0-9+/) karakterlerinin yer aldığı 64 adet karakteri kullanarak kodlanmış çıktıyı oluştururuyor . (Base64 algoritmasının çalışmasını çok güzel bir şekilde açıklayan bir PDF dosyasını buradan indirip okuyabilirsiniz. ~46KB)

Sanırım çıktı karakter kümesinde yer alan + ve / karakterleri dikkatinizi çekmiştir. Bu karakterlerin XMLHTTP
nesnesine verilen veri isimli parametrede yer alması aktarım açısından sorun oluşturmuyor. Benim farkettiğim tek sorun + karakterinin Apache+PHP ikilsinin çalıştığı sunucu tarafında otomatik olarak boşluk karakterine çevrilmesi.Yani + karakterleri boşluk olarak aktarılıyor. + işaretinin yok olması (yani boşluk karakterine çevrilmesi)  base64 verisinin orjinalliğini bozduğu için base64_decoder’ın ürettiği çözülmüş veri de bambaşka birşey olarak çıkıyor. Bu nedenle base64 ile kodlanmış veriyi göndermeden önce içerisindeki + karakterini bir javascript fonksiyonu olan encodeURIComponent ile kodlamak gerekiyor. Bu kodlamadan sonra + karakteri %3B URL koduna çevriliyor. PHP tarafında base64_decode’dan önce encodeURIComponent’in yaptığının tersini yapacak bir kod kullanmaya gerek yok. Nitekim, web sunucu URL karatker kodlarıyla gelen %20, %FB ve %3B gibi verileri otomatik olarak orjinal haline zaten çeviriyor. Yani %3B olan kod +’ya istek PHP ye ulaşmadan çevrilmiş oluyor.

Hazır bol bol karakter kodlamaya dalmışken son bir gerekli kodlamadan ve gerekliliğinden de bahsetmek istiyorum. Latin karakter kümesi dışında bir veri girişi söz konusu olduğunda muhtemelen sunucu tarafında yada veri tabanında karakter kodlama sorunları yaşayacaksınız. Bu sorun esasında verinin sunucu veya istemci tarafında ele alınış şeklindeki farklılıktan kaynaklanır. Verinin sahip olduğu mutlak sayısal değerler farklı kodlama tablolarında farklı karakterler ile yorumlanırlar. Gönderilen veride yer alan karakterler, kullanmakta olduğunuz tabloda yer alıyorsa ve sunucu tarafında da (katar ve veritabanı işlemlerinde) aynı karakter tablosunua göre ele alınıyorsa hiçbir sorun yaşamazsınız. Özet olarak istemci ve sunucu tarafında aynı kodlama standardının kullanılması gereklidir. Burada tüm karakter kodlama tablolarını içeren ve destekleyen UTF kodlamasının kullanılması gerekiyor. UTF 2 byte’lık unicode adı verilen karakterleden oluşur. Latin alfabesi dışında arapça, çince veya japonca gibi dillerde kullanılan karakterleri de kapsar ve destekler. Verimizi XMLHTTP nesnesi ile göndermeden önce, UTF olarak kodlamamızda, verinin selameti açısından büyük fayda var.

Buraya kadar anlattıklarımı özetleyen kod parçası aslında şöyle:

function encode(input) {
 input = WebToolKit.utf8.encode(input);
 input = WebToolKit.base64.encode(input);
 return encodeURIComponent(input);
}

Dilerseniz kodun tamamını buradan indirebilirsiniz. ~4KB

Yazan: Tankado

ZK: Ajax but no Javascript

ZK, javascript bilgisi gerektirmeden birazcık programlama bilgisiyle zengin kullanıcı arabirimli web uygulamaları gerçekleştirmeyi sağlayan açık kaynak kodlu bir ajax web kütüphanesidir. Olay tetiklemeli zengin bileşenleri ile geliştirme çok daha basitleşiyor. İşaretleme diliyle tasarım yapmak HTML yazmak kadar basit. Bilşenler kullanılarak yapılmış demo sayfasını görmek için tıklayın. Framework’ü indirmek için tıklayın.

SMSrc:SMS remote control

Bu devre ile bir cep telefonunundan özel bir sms mesajı göndererek 8 adet elektronik aygıtı kontrol edebiliyorsunuz. Devre Ericson T10s telefonunun iletişim bağlantı noktasını bağlanmış. Devreye enerji verildiğinde telefonun ilk bellek konumundaki mesajı okumaya calışıyor (1- AT+CPMS="ME", 2- AT+CMGR=1). Eğer hiç mesaj yoksa bu işlem sürekli olarak tekrarlanıyor.

Cihaz kontrolü için gönderilen mesaj ikili formatta yazılmış olmalı. Toplam 8 cihaz kontrol edileceği için gönderilen mesaj 8 bitten oluşuyor. Örn: 10000011 şeklinde gönderilen bir mesaj 1.,2. ve 8. cihazların aktive edilmesini (ilgili roleleri çektirerek) diğerlerinin (3,4,5,6,7) ise kapatılmasını sağlıyor.Ayrıntılı bilgi için projenin şema ve AT komut dosyalarını inceleyebirsiniz.