The Hardware Hacker – Kitap incelemesi

Esen;
Uzun zamandır almayı düşündüğüm “The Hardware Hacker – Andrew ‘bunnie’ Huang” kitabını fırsatını bulunca hemen amazondan sipariş ettim. Şansıma kargo için aramex firmasına verdiler. Böylece 10 gün geçmeden kitap elimde oldu.
Kitabı övüp sövmeden önce bir konuyu belirteyim:Beklentiler. Yılların ‘tutorial’cisi olarak bu kitaptan da ciddi oranda hardware hacking ya da reverse engineering üzerine tutorial tadında veya how-to tadında çok ayrıntılı yazılar bekliyordum. Bu beklentiniz varsa siz de benim gibi üzülürsünüz.
Peki ne beklemeli? Kitap birbiriyle alakalı hardware hacking “öykülerini” içeriyor. Yani bol bol ilginç ve daha önce karşılaşmadığınız türden öyküler var.
devamını okuyun »

Share Button
23.05.2017
11 Okunma

MASM32 Assembly ile Animated-Hareketli GIF Görüntülemek

Esen.
Bugün Rnd0M’dan bir mesaj geldi. Keygen içerisine hareketli GIF koyup koyamayacağımızı soruyordu. Açıkçası şu sıralar sistem programlama ve başka konular ile -arduino gibi- uğraştığım için böyle şeylere pek merak sarmıyorum. Ancak Rnd0m’ı kıramadım. Hemen bir araştırma yaptım ve işlerin aslında öyle pek basit olmadığını gördüm. Biz GIF dosyalarını resim olarak biliyoruz doğru ama GIF- Graphics Interchange Format olarak bilinen bu biçemi Assembly RCDATA olarak tanımlıyor ve ona göre işlem yapıyor. Bu dosya biçemini öyle hemen koyamıyorsunuz hatta bir ara patent muhabbeti bile yapılmış bu dosya biçemiyle ilgili. En son 30 yıl kadar önce 1987 yılında en son sürümü çıkmış.
Durum bu olunca dosyayı açmak ve her bir frame’i teker teker ekrana göstermek buna bir loop-döngü ayarlamak gerekiyor derken; harici bir kitaplık buldum. Bu kitaplık işleri oldukça hızlandırdı. Bende hemen en son keygen taslağımı buna göre düzenledim. Aşağıda iki tane indirme var. İlki hazırladığım keygenin kaynak kodları. RadASM projesi olarak kaydettim çünkü daha derli toplu olduğunu düşünüyorum. İkinci dosya ise bir RadASM Template-taslak dosyası. Bu arşivi açıp RadASM > Masm > Templates altına atın ve Yeni Proje deyip ileri geçtiğinizde gelen taslaklar penceresinden bu yeni taslağı seçin böylece sıfırdan keygen yazmakla uğraşmanıza gerek yok. Sadece anahtar üretme algoritmasına yoğunlaşabilirsiniz.
İyi çalışmalar.
Rnd0M kahveleri ne zaman içiyoruz?

http://www.sctzine.com/wp-content/plugins/downloads-manager/img/icons/winzip.gif İndir: [SCT]Keygen Template 2017 - Gif Edition (1.23MB)
Tarih: 17/05/2017
Tıklanma: 26
Açıklama: RadASM projesi olarak kaydettiğim Gif çalıştırabilen keygen taslak kaynak kodları.

http://www.sctzine.com/wp-content/plugins/downloads-manager/img/icons/winzip.gif İndir: [SCT]RadASM Keygen Template 2017 - Gif Edition (725.09KB)
Tarih: 17/05/2017
Tıklanma: 25
Açıklama: RadASM > Masm > Templates dizini içerisine arşivden çıkartığınız dosyayı atın ve hızlıca keygeninizi kodlamaya başlayın.

Not: RadASM ile dialog düzenlediğimizde Res/ dizini altında projeadıDlg.rc adında bir dosya otomatik düzenleniyor. Orada bir satır var bizim GIF’i etkileyen ve şöyle olmalı:

RadASM ile düzenleme yapıldığında gifin IDsi olan 501i ve AniGIF etiketlerini değiştiriyor. Derlemeye çalışınca da hata alıyoruz. O yüzden bu ikisine dikkat ediyoruz derlemeden önce.

Share Button
Kategori Assembly
17.05.2017
55 Okunma

MASM32 Assembly ile String Concatenation-Dizi Birleştirme ve String Find-Replace – Dizi Bulma-Yer Değiştirme

Esen.
Eğer dikkat ederseniz assembly altına koyduğum tüm örnekler aslında keygen/crack/patch gibi uygulamalar yazarken sıklıkla kullanılabilecek konuları içeriyor. Bunlardan bir tanesi de dizi metin işlemlerinden olan string-metinleri birleştirme. Ya da bir string dizisi içerisinde bir başla karakter/string bulma işlemleri olabiliyor.

lstrcat

lstrcat yordamı Windows 2000’den beri kernel’de olan bir yordamdır.
devamını okuyun »

Share Button
Kategori Assembly
17.05.2017
44 Okunma

Bellek özgüleme yordamları karşılaştırması – HeapCreate, HeapAlloc, GlobalAlloc, LocalAlloc, VirtualAlloc, CoTaskMemAlloc, malloc

Esen,
Bu yazımda Assembly ya da C++ kodlarken karşımıza sıklıkla çıkan bellek özgüleme -memory allocation- yordamları hakkında bilgiler ve kaynak kodlar vermeye çalışacağım. MSDN ağında Memory Mamagement Functions – Bellek Yönetim Yordamları adı altındaki bette windows için kullanılacak tüm bellek yordamları listelenmiş. Gönül isterdiki hepsini uzun uzun örneklerle anlatayım ama öyle bir zaman dilimi yok. Ben burada en çok kullanacaklarımızı anlatmaya özen gösteriyorum. Daha çok ayrıntı isteyenler o beti incelesinler.

GlobalAlloc, LocalAlloc, HeapAlloc en sonunda heap-yığıt ‘tan bellek alanı ayırma işlemi yapan ve aralarında ufak bazı farklılıklar olan yordamlardır. 32 bit Windows ile birlikte başlayan GlobalAlloc ve LocalAlloc yordamları özünde HeapAlloc yordamının “wrapper” yani “sarmalayan” yordamlarıdır. Bu şu anlama geliyor GlobalAlloc ve LocalAlloc bellekte ayırma işlemi yaparken aslında HeapAlloc yordamını kullanmaktadır.Farklı yığıt bölüştürücüleri yine farklı mekanizmalar kullanarak belirgin işlevsellik sağladıkları için doğru yordamla bellek alanını serbest bırakmak gerekmektedir. HeapAlloc için HeapFree, LocalAlloc için LocalFree ve GlobalAlloc için GlobalFree kullanılmalıdır. devamını okuyun »

Share Button
Kategori Assembly, Belgeler
16.05.2017
44 Okunma

Github sayfam ve örnek projeler

Esen;
Şu sıralar üretkenim ve bu beni çok mutlu yapıyor. Umarım bu böyle devam eder ve artan bir hızla üretmeye daha büyük projeler belgeler dersler üretmeye devam ederim. Daha önce Github ile ilgili bir yazı yazmıştım. Github Nedir, Kurulum ve Kullanımı buradan okuyabilirsiniz. Özellikle PisiLinux için paket yaparken bu hesabı kullanmıştım. Şimdi de özellikle “Assembly” ve diğer programlama projelerimi github üzerinden bölüşmeye gayret göstereceğim.
https://github.com/blue-devil
Bu adres üzerinden github hesabımı izleyebilirsiniz.
Sağlıcakla!

Share Button
Kategori Araçlar, Genel
08.05.2017
39 Okunma

CreateFile, WriteFile ve ReadFile API kullanımı

Esen!
Win32Assembly’de bir dosyaya yazmak ya da bir dosyadan okumak işlemlerini yapmak istiyorsak ilk önce o dosyayı OKUMAK ya da YAZMAK veya her ikisi içinde AÇMAK veya YARATMAK zorundayız. Böylece elimizde yeni yaratılmış veya varolan bir dosya/aygıtın HANDLE değeri olur. Sonrasında yazmak – WriteFile ya da Okumak – ReadFile gibi işlemlerimizi yapabiliriz

CreateFile

HANDLE WINAPI CreateFile(
  _In_     LPCTSTR               lpFileName,
  _In_     DWORD                 dwDesiredAccess,      ;
  _In_     DWORD                 dwShareMode,
  _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  _In_     DWORD                 dwCreationDisposition,
  _In_     DWORD                 dwFlagsAndAttributes,
  _In_opt_ HANDLE                hTemplateFile
);

devamını okuyun »

Share Button
Kategori Assembly
08.05.2017
70 Okunma

RadASM Inline Debugger ile Visual Studio gibi Kaynak Kod Üzerinden Hata Ayıklama İşlemi

Esenlikler
RadASM’nin kendi debugger’ını kullanarak kaynak kodlar üzerinden aynı Visual Studio’da C/C++ kaynak kodları üzerinden yapılan hata ayıklama türevi gibi bir debug işlemi yapabildiğinizi biliyor muydunuz? Bu günceyi izleyen birçok kişinin assembly örneklerini daha rahat uygulayabilmek için MASM ve RadASM kullandığını biliyorum. RadASM kullanarak basit seviyede debug işlemi yapabilirsiniz.
1. Projemizi kaydedip mönüden “Proje > Proje Seçenekleri” seçiyoruz ve açılan pencereden “Sürüm – RELEASE” yerine “DEBUG” seçiyoruz. Bu sayede RadASM’yi aynı zamanda debugger olarak da kullanabileceğiz. Debug seçtiğiniz zaman Assemble ve LINK satırlarının nasıl değiştiğine bir bakın.
RELEASE – Sürüm:

Assemble:3,O,$B\ML.EXE /c /coff /Cp /nologo /I"$I",2
Link:5,O,$B\LINK.EXE /SUBSYSTEM:CONSOLE /RELEASE /VERSION:4.0 /LIBPATH:"$L" /OUT:"$5",3
Asm Module:*.obj,O,$B\ML.EXE /c /coff /Cp /nologo /I"$I",*.asm

devamını okuyun »

Share Button
Kategori Araçlar, Genel
05.05.2017
59 Okunma

RadASM Konsol Uygulaması Taslağı

Esenlikler,
Daha önce, birkaç defa RadASM için keygen taslağı hazırlayıp paylaşmıştım. Ara ara ufak demeler yapıyorum konsolda. Bunun için sıfırdan assembly yazmak uzun sürüyor ve ekrana yazdırma komutlarını da oradan buradan eski kaynaklardan bakmak uzun sürüyor diye bir taslak hazırladım. Bu .tpl dosyasını RadASM>Masm>Templates dizini altına atınız. RadASM ile yani bir proje başlatın ve “Console App” seçin projenize bir ad verin. İleri dediğinizde proje sihirbazı size taslağı gösterecek onu seçin ve devam edin. Taslak dosyanızı buradan indirebilirsiniz:

http://www.sctzine.com/wp-content/plugins/downloads-manager/img/icons/winzip.gif İndir: [SCT]KonsolTaslagi2017 (3.35KB)
Tarih: 05/05/2017
Tıklanma: 61
Açıklama: RadASM ile hızlıca konsol uygulaması yazabilmek için örnek fonksiyonlarla hazır bir taslak

Share Button
Kategori Assembly
05.05.2017
53 Okunma

[C#]Senkron ve Asenkron Programlama

Esen,
Uzun zamandır yazmak istediğim bir örnek olarak bu asenkron programlamayı kafamda planlıyordum. Bugüne nasipmiş. Hazırladığımız programlarda -eğer büyük boyutlu dosyalarla işlemlerle çalışmıyorsak- genellikle göz ardı ettiğimiz bir konudur: Asenkron programlama. Bir işlemi yaptırırken bir başka işlemi makinenize yaptıramıyorsanız işte bu senkron programlamaya bir örnektir. Uygulamanız büyük boyutlu bir dosya indiriyor olsun, eğer senkron bir şekilde indiriyorsa o zaman uygulamanız donar ve başka işlem yapamaz hatta bazen -yanıt vermiyor- hatası gelir. Eğer uygulamanıza akıllılık eder de dokunmazsanız program da sorunsuz bir şekilde işini bitirir ve kaldığınız yerden devam edersiniz.
Ancak asenkron(eş zamansız) programlama da işler biraz daha güzel. Asenkron olarak tanımladığımız her şey o iş bitene kadar çalışmaya devam eder ancak programımız donmaz başka işlemler yapmaya devam edebiliriz. Şimdi bunu örnekler ile açıklayalım:
Ad alanları önemli:

using System.Net;                //WebClient için
using System.IO;                 //MemoryStream için

devamını okuyun »

Share Button
Kategori Genel
04.05.2017
53 Okunma

WireShark + USBPcap 1.1.0.0-g794bf26-3 yüklerken gelen KB3033929 hatası

Esen;
Wireshark ile network üzerindeki paketleri koklayabiliyorsunuz. Varsayılan olarak network sniffer olan bu araç USBPcap ara yazılımı sayesinde USB ve makineniz arasındaki trafiği de koklayabilirsiniz. USBPcap aslında 1.0.0.7 sürümünü kendi özgün hesabında yayımlamış. Yani 1.1.0.0 gibi bir sürüm yok. Bu sürüm WireShark üreticileri tarafından uygulama arayüzü ile birleştirilmiş ve biraz da optimize edilmiş bir sürüm. Ancak bir çokları gibi bende “Windows 7 x86” sanal makineme WireShark kurmaya çalışırken USBPcap kurulumuna geldiğimde “HotFix KB3033929” hatası alıyorum, bu güncelleme yüklü olmuş olmasına rağmen. Benim bulup uyguladığım çözüm şu şekilde:
1.Geçici bir findstr.exe oluşturacağız. Notdefterini açıp:

@echo KB3033929

yazıyor ve findstr.cmd olarak c:\Windows\system32 dizini altına atın. x64 sistemlerde c:\windows\syswow64 olmalı denemedim.
2.c:\Windows\system32\findstr.exe uygulamasının uzantısını değiştirin: findstr.exe.BAK gibi. Sonra da yeni dosyamızı aynı adla kaydedelim.
3.Yalnız bu uygulamanın uzantısını Administrator olsanız bile değiştiremiyorsunuz. Bu nedenle uygulamanın “file owner” siz olacak ve kendinize “full permisssion” tam yetki vermeniz gerekmektedir.
4.Bu düzenlemeyi yaptıktan sonra WireShark kurulumunu USBPcap ile yapın. Hata verebilir ancak kurulumu etkileyen hatalar değil “ignore” edebilirsiniz.
5.findstr.exe ‘yi eski haline ve eski izinlere geri getirmeyi unutmayın.

Kolay gelsin.

Share Button
Kategori Araçlar, Belgeler
27.04.2017
56 Okunma