Kategori Arşivi: ‘Belgeler’

Win32 Assembly: Komut Satırına Print ile Çıktı Almak

Esen;
Son iki yazımı incelerseniz, komut satırına takıldığımı göreceksiniz. Aslında yazılarım birbirlerini destekliyor ya da birbirinin devamı şeklinde oluyor. Benim de biraz ayrıntıya girme deliliğim yok değil. Bir konu hakkında yazarken ya da çalışırken o konu ne ise en derin yerine kadar gidip bakmaya bayılırım. Böylece sistemin çalışma mekanizmasını daha iyi öğrenirim ve onu daha iyi kullanırım. Komut satırına bir şerler yazdırdıktan sonra bununla ilgili bir yazı neden olmasın demiştim. Ama konunun derinliğine girince çok fazla ayrıntı olduğunu -her zamanki gibi- gördüm. İnternette de araştırıp bir çok şey bulabilirsiniz. umarım yazı yararlı olur.

Bilgisayardaki veri insan okunabilirliğinden uzaktır. O ikilik veriyi bir metin durumuna çevirmemiz/dönüştürmemiz gerekmektedir. RadASM 2.2.2.1 ve MASM v11 bilgisayarınızda kurulu ise devam edelim. Ayrıca aşağıda eski yazılarım da var; bunların da kaynak kodlarını inceleyebilirsiniz.
SCTZine Assembly Beti
HEX.BIN Converter v1.0
HEX.DEC Converter v1.0
Türkçe Destekli SubClass Örneği
ROT13 Converter ve ROT13 Şifreleme Yöntemi
Rastgele Ondalıklı Sayı Üreteci devamını okuyun »

Share Button
Kategori Assembly, Belgeler
27.06.2016
1123 Okunma

Win32 Assembly ile Kaçış Karakterini Kullanmak

Esen;
Kaçış karakterleri, programcılıktan da önce donanım üzerinde kullanılan fiziksel yazım hareketlerinin daha sonra yazılım ortamına uyarlanmış durumlarıdır. Boşluk bırakma, sekme yapma, alt satıra geçme gibi yazıcı ya da daktilo gibi donanımlarda ilk olarak kullanılan bu hareketler programcılıkta bazı karakterler ile simgelenmiştir:

Kaçış Karakteri Onaltılık Değer Açıklaması
\a 07 Alert – Alarm, ikaz, bip sesi çıkartır.
\b 08 Backspace – İmleci olduğu yerden bir geriye getirir ve oradaki karakteri silmez*.
\e 1B ESC- Escape –
\f 0C Formfeed – Yazıcıya yazdığı kağıtla işinin bittiğini yazmak istediği şeyi yeni bir kağıdın en başından yazması gerektiğini anlatan kaçış karakteridir.
\n 0A Newline (Line Feed) – İmleci bir alt satıra taşır.
\r 0D Carriage Return –
\t 09 Horizontal Tab – Yatay Sekme
\v 0B Vertical Tab – Dikey Sekme; bu da yazıcıları ilgilendiren bir kaçık karakteri
\\ 5C Backslash – Ters Slaş
` 60 Backquote
\' 27 Single quotation mark – Kesme İmi
\" 22 Double quotation mark – Tırnak İmi, bunu \q ile yapıyoruz
\? 3F Question mark – Soru İmi
\nnn Ters slaştan sonra 3 haneli bir rakan yazarak 8lik tabanda girdi yapabiliriz
\xhh… Ters slaş ve x karakterinden sonra onaltılık bir değer girebiliriz

Arkadaşlar kaçış karakterleri bu kadar değil /0 yaparak NULL değerini /20h ile boşluk döndürebiliriz. Bunun için ASCII tablosunu inceleyelim: devamını okuyun »

Share Button
Kategori Assembly, Belgeler, Genel
25.06.2016
1719 Okunma

RtlZeroMemory ve RtlFillMemory kullanarak belleği, değişkenleri temizlemek

Esen,
Assembly kodlarlen(Hatta C/C++ kodlarken de) gerek duyacağınız iki API’den bahsetmek istiyorum: RtlZeroMemory ve RtlFillMemory. Bu ikisi sayesinde bellek alanını boşaltabilir ya da istediğimiz veriyle doldurabiliriz.

RtlZeroMemory

Sürekli veri alan ve bunu kullanan bir değişkenimiz olduğunu düşünelim. Assembly yazarken bir yazmaca bir değişken atatığınızda mesela: devamını okuyun »

Share Button
Kategori Assembly, Belgeler
24.06.2016
1020 Okunma

Visual Studio 2015 ile Win64 Assembly Programlama


Esen!
Arkadaşlar, RadASM ile x86 Assembly için SCTZine Assembly sayfamızı ziyaret edebilirsiniz.
Bugün ise ilk defa 64 bitlik assembly programlama yapacağız. 64 bit programlama için birkaç değişik yaklaşım var. Bu yazıda C++ ile beraber assembly nasıl kodlanır ona bakacağız. Saf x64 Assembly derslerim de olacak. Hepsi zamanla.

Çalışma Ortamı (Gereksinimler):
Microsoft Windows 10
Microsoft Visual Studio 2015
Microsoft SDK
Not: Bunlar “minimum” gereksinimler değil. Windows 8.1 ve Visual Studio 10 ile de bu çalışmayı yapabilirsiniz.
devamını okuyun »

Share Button
Kategori Assembly
16.06.2016
1320 Okunma

RadASM 2.2.2.1 Türkçe

radasm-belgiEsen!
RadASM’nin yazarı Ketil Olsen aslında RadASM v3’ü duyurmuştu. Ancak hemen sonra RadASM’yi geliştirmeyi durdurdu. RadASM açık kaynak kodlu bir assembly geliştirme ortamı ve kaynak kodlarını Sourceforge‘de bulabileceğiniz gibi MASM32 forumlarında da küçük bir topluluk RadASM üzerinde çalışmaya devam ediyor.

Ben halen v2 sürümünü kullanıyorum çünkü bu sürümü Türkçeleştirdim ve v3 sürümünün dil desteği yok. Ayrıca v3 sürümü çok fazla bir yenilik getirmediği gibi v2 sürümünün proje dosyaları olan .rap uzantılı dosyaları da tanımıyor.

Aşağıda bağlantısını verdiğim paketi devamını okuyun »

Share Button
Kategori Araçlar, Assembly
17.05.2016
1648 Okunma

PAE, Non-PAE, NX ve SSE2 Nedir?

Esen;
Sanırım bir kaç yıldan fazla oldu, bir arkadaşımın eski dizüstü bilgisayarına, ona “yeni bir yaşam” vermek için “lightweight” yani sistem kaynaklarını oldukça az tüketen bir linux dağıtımı kurmaya çalışmıştım. İlk denemem de PAE ile ilgili bir hata alıyordum ve sistemin PAE destekli olmadığını, kurmaya çalıştığım sistemi kuramayacağımı anlamıştım. O zaman PAE nedir?

PAE (Physical Address Extention – Fiziksel Adres Uzantısı), 32bitlik x86 mikroişleçlerin 4GB’tan fazla olan rastgele erişimli bellekleri (RAM), işletim sistemlerinin kullanmasına olanak sağlayan teknolojidir.
Biraz da tarihi dokunuşlar yapmam gerek çünkü burada bir durum var. 32bitlik işleç mimarisi ortaya çıktığında “Protected Mode” ve “Real Mode” kavramları ortaya çıkmıştı. Ayrı bir yazının konusu olsa da kısaca değinmekte yarar var.

Gerçek (Real) Mod da sadece bilgisayarın ilk “1MB” alanı adreslenebilir. İşleç, tipik bir 8086 işleç gibi çalışır ve 20 adres bacağı kullanır. (2^20 = 1MB = 1024KB = 1048576 Bayt) Matematiksel olarak da işlecin sadece 1MB alanı adresleyebileceği anlamına gelmektedir. 16Bitlik işleçler bunu kullanılar. Zaten Intel firması burada geçmişe uyumluluğu sağlamak amacıyla işleci çeşitli çalışma modlarına bölmüştür.

Korumalı (Protected) Mod ise işlecin, en gelişmiş modudur. İşleç, bu modda 32 bitlik adresler ve yazmaçlar kullanır. 4GB fiziksel belleği bu modda adresleyebilir. Yukardaki PAE açıklamasında geçen 4GB buradan gelmektedir. Ayrıca bu modda “virtual86” adlı bir mod bulunmaktadır ki amacı; gerçek mod programlarının korumalı mod altında çalışmasını sağlamaktadır.

Kabul ediyorum pek kısa olmadı, konumuza geri dönelim ve aşağıdaki tabloyu inceleyelim: devamını okuyun »

Share Button
Kategori Araçlar, Belgeler
10.05.2016
2321 Okunma

PDF Araçları 2: PDF Parolası Nasıl Kaldırılır?

qpdfEsen;
Bir önceki yazımda nasıl PDF parolasını kıracağımızı öğrenmiştik. Bugünkü yazımda ise bulduğumuz şifre ile bu parolayı nasıl kolaylıkla kaldırabileceğimizi göstereceğim. Birkaç ayrı araç kullanılarak PDF parolası PDF belgesinden kaldırılabilir. Ancak en kolay yöntemleriden birisi QPdf uygulamasını kullanmaktır.

QPdf uygulamasını kurmak için aşağıdaki komutlar kullanılabilir:
OS X:

brew install qpdf

PisiLinux 2.0:

sudo pisi it qpdf

Ubuntu/Debian:

sudo apt-get install qpdf

Windows: devamını okuyun »

Share Button
07.05.2016
1153 Okunma

PDF Araçları 1 – Pdfcrack Nasıl Kullanılır?

pdfcrackEsen,
PDF (Portable Document File) çok özel bir belge biçimi. Not defterinde ya da kelime işlecinde rahatlıkla değişiklik yaptığımız belgeler gibi değil. Ama bir resim gibi de değil. Bunlardan fazlası. PDF belge biçimini burada anlatmayacağım ama bu konuda da biraz bilgili olmak PDF üzerinde inceleme yapmak açısından çok yararlı. İnternette yapacağınız bir tarama ile bir çok şey bulabilirsiniz. Belki ben de ilerde bu konuyla ilgili bir belge hazırlarım.
Buradaki konumuz PDFCrack. Hem programı tanıtacağım hem de birkaç örnek uygulama ile PDFCrack’i nasıl kullanacağınızı ve sonuç alacağınızı anlatacağım.

Ben platform olarak OS X üzerinde çalışacağım ama PDFCrack Unix/Linux ortamında derlenip çalışabilen bir açık kaynak kodlu yazılım.
Program Kurulumu:
OS X:

brew install pdfcrack

PisiLinux 2.0:

sudo pisi it pdfcrack

Ubuntu/Debian:

sudo apt-get install pdfcrack

Yukarıdaki komutlar ile programı sisteminize kurabilirsiniz. Ya da kaynağından derleyebilirsiniz.(Kaynağından derlemek için pdfcrack dizinine girin ve komut satırında “make” komutunu çalıştırın.)

Windows kullanıcıları windows ortamlarına “cgywin” kurarak pdfcrack’i derleyebilirler.

Komut satırında iken “pdfcrack” komutunu verelim: devamını okuyun »

Share Button
06.05.2016
1157 Okunma

Homebrew OS X El Capitan’a Nasıl Yüklenir?

homebrew-mac-osx-logoEsen;
Apple, sistemlerine önceden yüklenmiş olarak “App Store” ile geliyor ve kısıtlı uygulama türleriyle pek de geliştiricilere hitap etmiyor. HomeBrew tabiri caizse OS X’in kayıp paket yöneticisi. Grafik Kullanıcı Arayüzü olmayan ve terminalden çalışan hızlı bir paket yönetim sistemi. Alternatifi MacPorts ama ben HomeBrew kullanmayı seçiyorum. Şimdi adım adım Homebrew yükleme işlemine geçelim:

1. Hala kurmadıysanız OS X’inize “XCODE” uygulamasını kurun. Buradan indirebilirsiniz. XCode OS X için resmi uygulama geliştirme ortamıdır.
Eğer sisteminizde OS X kuruluysa 2nci adımdan devam edebilirsiniz:
devamını okuyun »

Share Button
Kategori Belgeler, OS X, Unix/Linux
04.05.2016
1432 Okunma

Git LFS ile Github’a Büyük Boyutlu Dosya Yüklemek

gitlfsEsen! Yakın zamanda Github’a giriş yapan bir yazı yazdım. Merak etmeyin geliştireceğim. Bu arada ben de kendi Github’ıma dosya yüklerken başıma şöyle bir olay geldi. Büyük boyutlu bir dosyayı commit ettim ve push komutunu verince dosyanın bir kısmını yükleyip hata verdi. Meğerse Github’un büyük dosyalar ile ilgili bir kısıtı varmış.
Önemli: Github size 1GB’a kadar alan veriyor. Yani sınırsız bir alanınız yok; bu nedenle alanınızı iyi kullanın.
0-50 MB arası sorunsuz yükleme yapabilirsiniz.
50-100 MB arası Github size uyarı veriyor ama dosyalarınızı yüklüyor.
100 MB ve yukarısında ise kesinlikle dosyanızı yükleyemiyorsunuz, hata veriyor.

Git Large File Storage (LFS)
Neyseki yakın zamanda bu soruna açık kaynaklı bir çözüm bulunmuş. Yukarıdaki linke tıklayarak, işletim sisteminize uygun olan git-lfs kurulum dosyasını kurun. Ya da sisteminizde git yüklü ise:

git lfs install

Komutu ile yükleme yapabilirsiniz. Sonra .gitattributes dosyasını elle veya aşağıdaki komut ile hangi dosya türlerini büyük boyutlu olarak işretleyecekseniz düzenleyin:

git lfs track "*.tar.gz"

Sıra geldi dosyalarımızı yüklemeye:

git add buyuk_boyutlu.tar.gz
git commit -m "buyuk_boyutlu.tar.gz:dosya ile ilgili bilgi"
git lfs push origin master

İyi kodlamalar!

Share Button
Kategori Belgeler
29.04.2016
953 Okunma