CryptoSuite.Org

Geri git   CryptoSuite.ORG || The Best Encryption Platform Of The World > Programlama > ASM

ASM Assembly Hakkında Herşey

Konu Bilgileri
Konu Başlığı
Assembly & Win32 Programlama
Konudaki Cevap Sayısı
2
Şuan Bu Konuyu Görüntüleyenler
 
Görüntülenme Sayısı
443

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 01-12-09, 12:23   #1 (permalink)
Member
 
HighVoltage - ait Kullanıcı Resmi (Avatar)

User ID : 857
Messages : 520
Threads : 65
Thanks : 72
Rat : Turkojan
HighVoltage isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Post Assembly & Win32 Programlama

Gerekli olanlar;

1- Assembly ile Win32 kodu yazma isteği
2- Bir adet Windows 9x ile çalışan bilgisayar
3- Turbo Assembler 5.0 (TASM32.EXE, TLINK.EXE ve Win32 libraryleri yeterli)
4- Bir adet text editörü (Windowsun not defteri bile olabilir)
5- Win32 Programmers’ Reference

Yukarıdaki 5 şey sizde varsa olaya başlayabiliriz. Örnek olsun diye ’marabaa televole’ şeklinde bir mesaj kutusu çıkaran bir program yazalım.

Programı yazarken windows apilerini kullanmamız gerekecek. Geçen sayılardan birinde Melikşah’ın da belirttiği gibi API dediğimiz olay eskiden DOS’ta kullandığımız interrupt servislerine benzer bir olay. API konusunda geniş bilgiyi Win32 Programmers’ Ref. de bulabilirsiniz.

Not: API konusunda bazı APIlerin sonunda ...A harfini görürsünüz. Bu ’A’ harfi o APInin 32 bitlik olduğunu gösterir. Mesela MessageBox 16 bitlik iken MessageBoxA 32 bitliktir.

Amacımız ekrana bir mesaj kutusu çıkarmak olduğuna göre MessageBoxA APIsini kullanmamiz gerekecek (Win32.hlp dosyasında MessageBoxA ile ilgili bilgiyi bulabilirsiniz). Konuyu bulduysanız karşınızda aşağıdaki gibi bir şey göreceksiniz.[/COLOR][/B]

int MessageBox(

HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType // style of message box
);


Burada hWnd mesaj kutusunu görüntüleyen pencerenin handle numarası, LpText mesaj kutusunda görünecek olan yazının adresini, LpCaption mesaj kutusunun başlık çubuğuna yazılacak yazıyı (caption) ve uType ise mesaj kutusu tipini gösterir (Butonlar + Question, information vs..)

Eğer ortalıkta daha pencere falan yokken bir mesaj kutusu görüntülenecekse haliyle hWnd=0 olacaktır. uType olayında ise mesaj kutusuna konulacak düğmeleri ve mesaj kutusunun iconunu ifade eden bir sayı bulunacaktır. (Ayrıntılı bilgi windows derleyicileri helpinde..)

MessageBox ile ilgili bilmemiz gerekenler bunlar. Şimdi kodlamaya başlayabiliriz.


;MESAJ.ASM
.386P
Locals
Jumps
.Model Flat ,StdCall


Yukarıdaki kısım derleyiciye yönelik olan parçalardır

extrn ExitProcess : Proc
extrn MessageBoxA : Proc


Yukarıda external olarak kullanacağımız API’leri tanımladık.

.Data
baslik db "ho hoyt !",0
yazi db "Marabaa televole",0


Kod özelliği taşımayan bilgileri .Data ile ifade edilen alana yazıyoruz. Burada text yazıların sonunu #0 karakteri belirtir

.Code
Main:
push 0 ;
uType değeri stackte (Sadece Tamam düğmesi gösterilecek)
push offset Baslik ;Başlık adresi stackte
push offset Yazi ;Yazi adresi stackte
push 0 ;Pencere yok, o yüzden hWnd değeri olarak 0 değerini stacke koyduk
call MessageBoxA ;Mesaj kutusu gösterildi

CALL ExitProcess ;Programın sonu.. (Kernel32.ExitProcess)
End Main ;Burada da program bitti.

Bu programı aşağıdaki şekilde derleyebilirsiniz.

TASM32.EXE mesaj.asm /mx /m3 /z /q
TLINK32 -x /Tpe /ap /c mesaj,mesaj,, import32.lib


Alıntıdır. . .
  Alıntı ile Cevapla
The Following 2 Users Say Thank You to HighVoltage For This Useful Post:
arqadas (05-12-09), xroot (05-31-09)
Alt 04-22-09, 23:37   #2 (permalink)
Member Banned
 

User ID : 2815
Messages : 8
Threads : 1
Thanks : 1
Rat :
mükrimin isimli Üye şimdilik offline konumundadır
CryptoSuite.Org
Standart

la bunları dedemde biliyodu rahmetli
  Alıntı ile Cevapla
The Following User Says Thank You to mükrimin For This Useful Post:
arqadas (05-12-09)
Alt 05-12-09, 11:01   #3 (permalink)
Moderator
 
arqadas - ait Kullanıcı Resmi (Avatar)

User ID : 3409
Messages : 638
Threads : 202
Thanks : 65
Rat : Kullanmıyorum
arqadas isimli Üye şuanda  online konumundadır
CryptoSuite.Org
Standart

tsk. arkadasim
ben bunu ogrenmeye calisiyorum elimde gorsel set var ben tin tin ilerliyorum
daha hizli nasil ogrenebilirim?

birde Turbo Assembler 5.0 yazmissin bendekide Negatory Assembly Studio arasinda fark varmi hangisini kullanmaliyim? hangisi daha iyi?
tsk.

Konu arqadas tarafından (05-12-09 Saat 11:04 ) değiştirilmiştir.. Sebep: eksik
  Alıntı ile Cevapla
Cevapla

Bookmarks


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



WEZ Format +3. Şuan Saat: 18:50.