GÜNCEL* : WARDOM_ASSEMBLY_ DERSLERİ || By Syntax-LifeWARDOM_ASSEMBLY_DERSLERİ: (Syntax-Life, elle ve özenle yazılmıştır.Hiç bir veri internetten değildir.) MOV WARDOM.ORG, ALL_USER ; Tüm Wardom.org kullanıcılar davet et. Bu bölüm açılalı baya oldu. Ama birşey yazamadım. Şu dersleri yeniden
Konu Volatile. tarafından açılmış, 2257 kişi tarafından görüntülenip, 25 yanıt almış.
|
Özel Yazılım Trojan+, güncellemeli ve garantili. Sadece 690TL! Kredi kartınıza 12 taksit kolaylığı!
|
|||||||
GÜNCEL* : WARDOM_ASSEMBLY_ DERSLERİ || By Syntax-Life konusundaki toplam yorum: 25, okunma sayısı: 2257. |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
#1 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
WARDOM_ASSEMBLY_DERSLERİ: (Syntax-Life, elle ve özenle yazılmıştır.Hiç bir veri internetten değildir.)
MOV WARDOM.ORG, ALL_USER ; Tüm Wardom.org kullanıcılar davet et. Bu bölüm açılalı baya oldu. Ama birşey yazamadım. Şu dersleri yeniden yazacağım, başlıyoruz... 1.BÖLÜM - Tipik Bilgisayar Mimarisi ve Assembly'nin işleyişi Bir bilgisayar her saniye başına makina kodu üretir. Siz işlem yapmasanızda, arka planda çalışan Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=289484 işlemler bunu yapmaya zorlar. Hatta kapalı iken bile bilgisayar aslında çalışıyordur. İşte Çalışan Birimler: 1-SAAT ; Sistem tamamen saate bağımlı çalışır! Bilgisayarın saati yoksa o PC'den hiç birşey olmaz 2-BIOS ; Temel giriş çıkış sistemi sistem saatini ayarladığından çalışır 3-CMOS ; Ha bu neden çalışıyor derseniz, buda verileri BIOS çipine yazar. Ve ekran görüntüsü: ![]() Peki bunları nasıl yapar? Makina Dili birçok amaçla kullanılır. Yani bir 1 ve 0 farklı yerlerde kullanılır şöyle bakalım Bir makine nasıl toplama yapar(Makine:Bilgisayar): SEMBOLİK MAKİNE KODU ---- HEX KODU ---- BINARY KODU ---------- AÇIKLAMA ADD(TOPLAMA)------0x00----- 0000 0000----- : bu toplama için kullanılır. SUB(ÇIKARMA)----- 0x01----- 0000 0001----- ; bu çıkarma için kullanılır. MUL(ÇARPMA)----- 0x0A----- 0000 1010---- ; bu çarpma için kullanılır. DIV(BÖLME)----- 0XFF----- 1111 1111------; bu bölme için kullanılır. Şimdi Kısaca Assembly nedir(x86)? Assembly Intel'in geliştirdiği bil dildir. İşlemci komutlarının kısaltmasıdır. ÖRNEK : ADD -> ADDITION gibi... Merhaba Dünya, yazmayacağım çünkü merhaba dünya yazmak için 10 satır kod gerekiyor ve temel assembly bilgiside gerekiyor! Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=289484 KISACA KOMUTLAR AL(ACCUMULATOR LOCATI ON) = 8 BİTLİK AKÜMÜLATÖRDÜR ÖRNEK: xchg al, 4ch ; fonksiyonu taşır(FAKAT GEÇİCİDİR) Özet: AL fonksiyon taşımak veya küçük çapta verileri taşımak için kullanılan bir akümülatördür. AX(ACCUMULATOR REGISTER=(X)) = 16 BİTLİK AKÜMÜLATÖRDÜR ÖRNEK mov ax, 62 ; sayı akümülatöre taşındı. Özet: AX veri taşımak için kullanılır. Sayı ve diğer işlemler içinde kullanılabilir. EAX(EXTENTED ACCUMULATOR REGISTER=(X)) = 32 BİTLİK AKÜMÜLATÖRDÜR ÖRNEK mov eax, ebx ; bölgedeki veriyi akümülatöre taşıdı. Özet: EAX 32 bitlik veri yazmacıdır. Verileri taşır, isterseniz genişletebilirsiniz NOT** = 16 veya 8 bitlik bir veriyi taşırken devreye başka komutlar girer CWD(CONVERT WORD TO DOUBLE) = VERİLERİ DUBLE CİNSE ÇEVİR MOVSX(MOVE WORD WITH SIGN EXTENTION) = VERİLERİ DUBLE CİNSE GENİŞLET MOVZX(MOVE WORD WITH ZERO EXTENTION) = VERİLERİ GENİŞLETMEDEN TAŞI Aynı işlevi görür ama MOVZX veriyi genişletmez! ÖRNEK ;------------------------------- MOV [AX], 10 ; akümülatöre değer atadık CWD [EAX], AX ; veriyi 16 bitten 32 bite çevirdik ÇIKTISI AX = 10 idi EAX = 000010 olur O halde, AL+AX = EAX yani EAX = 0000 idi EAX+AL = 000010 oldu. ;------------------------------ MOVSX EAX, AX ; Aynı işlem yapıldı ;------------------------------ EDI = EXTENTED DESTANATION INDEX, ESI = EXTENTED SOURCE INDEX MOVZX EDI, ESI ; kaynak veri hedefe taşındı NOT** = Burda genişleme olamaz ve korumalı kip olması için intel movzx komutu ile kaynak indisin değerinin bozulmaması için bu komutu geliştirmiştir. BL = (BASE LOCATI ON) Örnek mov al, bl ; bölgedeki veri al'ye taşındı NOT** = Bir veri eğer akümülatör kapasitesinden büyükse o veri taşınmaz Örnek Hatalı kod mov al, eax ; 32 bitlik veri 16 bit'e doğal olarak taşınamaz! ![]() Özet: BL bir base yani alan tutucudur. Verilerinizi bekletmek için buralara koyabilirsiniz! UNUTMAYIN ** AL'DEKİ gibi GEÇİCİ OLARAK BEKLETİR!. İŞTE KORUMALI, KORUMASIZ KİP BURDAN GELİR!16 BİT VE 32BİT KORUMALI KİPTİR.!!! BX = (BASE REGISTER) Örnek mov ax, bx ; bölgedeki veri ax'e taşındı Aynı notlar bunun içinde geçerlidir!!! Özet: BX bir base alan tutucudur. 16 bittir verilerini bölgeye "KAYDEDEBİLİRSİNİZ!"(KORUMALI KİPİN FAYDALARI) DEVAMI AŞAĞIYA EKLENECEK! Düzenleyen Volatile. : 13-07-2009 at 12:49. |
|
|
|
|
|
#2 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
? Co-Adminler yada Mehmet abi bi bakarmısınız?! neden başı kelimeleri yıldızlı çıkıyor?
Mesela : BASE ********* ->******** yazması gerek!! :S |
|
|
|
|
|
#3 |
|
Super Moderator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Kayıt Tarihi: Mar 2005
Üye numarası: #9764
Mesaj sayısı: 53,079
Karma etkisi: 74714
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 7465394
|
|
|
|
|
|
|
#4 |
|
Banned
![]() ![]() ![]() ![]() ![]() Kayıt Tarihi: Feb 2006
Üye numarası: #52117 Yer: VikinGLand
Mesaj sayısı: 3,698
Karma etkisi: 0
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 1929988
|
Güzel olmuş syntax, ilerletmek lazım dersleri, tşkler
|
|
|
|
|
|
#5 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
Uygar abi teşşekürler...
Alperen abi istersen beraber ilerletelim ![]() |
|
|
|
|
|
#6 |
|
Banned
![]() ![]() ![]() ![]() ![]() Kayıt Tarihi: Feb 2006
Üye numarası: #52117 Yer: VikinGLand
Mesaj sayısı: 3,698
Karma etkisi: 0
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 1929988
|
|
|
|
|
|
|
#7 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
Tamam usta bide veri yazmacı konusu tamamladım şimdi dersin devamını aşada belirttim
DERSİN DEVAMI.... EBX=(EXTENTED BASE REGISTER=(X)) Örnek MOV EBX, EAX ; eax'taki veri ebx'e taşındı Özet Ebx bölge yazmacıdır. Verileri taşır ve kaydersiniz ebx vs.. genişletilmiş yazmaçlar. Linux i386 Kernellerinde ve çeşitli tcp/ip soket programlamada kullanılır. KORUMALI KİPTİR. ;===== (SAYI YAZMAÇLARI ) ===== CL = (COUNTER LOCATI ON) Örnek Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=289484 MOV CL, 62 ; 62 fonksiyonunu CL'ye taşıdık. MOV AL, CL ; CL mutlaka kendi başına kalamaz al ile tamamlanır. Özet CL sayı yazmacıdır. Genelde içine fonksiyon alır. Ama asıl görevi sayılarla ilgilidir. "KORUMASIZ" KİPTİR!!! CX = (COUNTER REGISTER=(X)) Örnek NOP ; işlem yok nop= no operation MOV CX, BX ; bölgedeki veriyi sayı yazmacına ata Özet CX ile büyük sayılar işlemi yapabilirsiniz. KORUMALI KİPTEDİR.!! ECX = (EXTENTED COUNTER REGISTER=(X)) Örnek MOVSX ECX, CX ; cx'teki veri büyüyerek ecx'e alındı. UNUTMA** = 0000=EAX -> CWD*,MOVSX* için. Özet ECX sayı yazmacıdır. Bölgelerin yerini bulmak veya büyük işlemler için kullanılır. ;===== ( VERİ YAZMAÇLARI ) ===== DL = (DATA LOCATI ON) Örnek MOV DL, CL ; veriyi alıp veri yazmacına kaydetti NOT** = DL önemli bir yazmaçtır. Segment Yazmaçları ile önemli derecede bağlantıları vardır!! BAŞLICA SEGMENTLER DSEG = (DATA SEGMENT) SSEG = (STACK SEGMENT) CSEG = (CODE SEGMENT) IP = (INSTRUCTION POINTER) Bunlar genel verileri listelemek için kullanılır. DSEG = Verileri bir yerde toplar ve erişim sağlar ÖRNEK: DSEG DB $1,$2 ; veri segment global bir segmenttir. ** Global Segmentler nedir? 1-Her yerden erişilir. 2-Fonksiyon veya makro çağırabilirsiniz 3-Olmazsa olmazdır! SSEG = Yığını belirler ve aynı zamanda boş alanın ne kadar 0 ile doldurulacağını belirler ÖRNEK SSEG DUP(?)13 DUP** = Duplacation Factor.Bu hiçbir zaman bilinmez nedeni bilgisayarın nereleri 0 ile dolduracağını kimse hesaplayamaz ve olasıklarda buna el vermez. CSEG = Kod burada geçer. PROC yani içinde proccesure barındırır. PROC FAR gibi... Örnek CSEG START MAIN PROC FAR LDS WORD PTR[AAAA], ESP . . . VS.. IP = Genelde bunu elleyemezsiniz bunu bilgisayar kendi belleğine göre yapar. ÖRNEK ? HEPSİNİ BİTİŞİNDE [SEGMENTADI] ENDS yazılır Örnek CSEG ENDS ; gibi * Veri yazmaçlarına devam... DX = (DATA REGISTER=(X)) Örnek MOV DS, DX ; veriyi veri segmentine taşı ![]() Özet 16 bitlik taşıyıcıdır.Veriyi kaydeder!!! Korumalı Kiptedir!!! EDX = (EXTENTED DATA REGISTER=(X)) Örnek MOV EDX, ECX ; sayıyı veri yazmacına kaydettik Özet 32 bit kayıt eder(KORUMALI KİPTE). Genellikle TCP/IP soket programlamada gelen verileri, veri yazmacına yazdırır. 8 bitlik korumalı yazmaç - 2 tanedir ve bunlar hepsini tamamlar örnek AH+AL=AX (8+8=16) AX+AL+AH=EAX (16+8+8=32) ========= SONRAKİ DERS SP(STACK POINTER, BASE POINTER, BYTE PTR, WORD PTR ) ========== Düzenleyen Volatile. : 27-06-2009 at 11:16. |
|
|
|
|
|
#8 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
;======= ( STACK POINTER ) ====== Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=289484 SP=(STACK POINTER) Örnek NOP ; işlem yok POP BP ; yığından çek POP SP ; yığından çek MOV BP, SP ; yığındaki veriler bölgeye gönderildi Özet: Stack pointer önemli bir parametredir. Yığındaki verileri istenilen veriye taşır ve kodun akışını sağlar, global veya içsel makrolarda veya yordamlarda kullanılabilir. NOT** = POP(POP WORD) - Bu parametreyi her zaman kullanmalısınız, veriler bellekte otamatik olarak yığılır ve bu yazmaçlar sayesinde bu işlem gerçekleşir. İlk önce noktalayıcıları yığından yani işinden alıp kendi işiniz için çalıştırmanız gerekir. ESP = (EXTENTED STACK POINTER) Örnek MOV EBP, 7C00 ; sistem önyükleyicisini hedef belirledir (NOT=7C00(MASTER BOOT RECORD)) MOV ESP, 62 ; yığına 62 ekledik MOV EBP, ESP ; yığından veriyi mbr'nin üstüne yazdık.(TABİ BU ÖRNEK BÖYLE BİRŞEYE SİSTEM NAH İZİN VERİR )Özet: Esp'de bir yığın noktalayıcıdır.İkiside yani; sp, esp yığınları kontrol edebilir ve dl,dx,edx ile yığın segmentine bağlanabilir. ;====== ( BASE POINTER ) ======= BP=(BASE POINTER) Örnek POP BP ; yığından al POP SP ; yığından al SUB BP, SP ; bölgeden yığını çıkardık Özet: BP bölge noktalayıcıdır. Sistemde belirli bir aygıt üzerinde çalışırken mesela sabit diskinizin mbr'sini programlarken kullanabilirsiniz. Bunun yanında BP gene yığından çağırılmalı nedeni ise gene bilgisayardan onu ayırmanız gerekir. Kendi emrinize sokmanız için... NOT** = Bir virüs yazarı bu parametre ile mbr'nin üstüne virüsü yazabilir. Not kendiniz denemeye kalkmayın yapamazsınız nedeni ileriki derslerde bir sistemin nasıl sistem moduna alınacağını yazmadığım. Kısaca şimdi bahsedeceğim ![]() Win95'in IFSMgr'leri ile sistem yazma/silme işlemleri yapılır. IFSMgr_Ring0_FileIO = Çekirdek modu yani herşey serbesttir. Örneğin BIOS'u silip yazabilirsiniz IFSMgr_Ring1_FileIO = Aygıt ve kabuk modu IFSMgr_Ring2_FileIO = Aygıt modu IFSMgr_Ring3_FileIO = Uygulama modu Daha fazlası ileriki derslerde yazacağım EBP=(EXTENTED BASE POINTER) Örnek POP EBP ; yığından al MOV ESI, EBP ; yığına taşı Özet Aynı işlemleri 32 bitte yapar yanlız, sistem modu içinde kullanılabilir. WORD PTR VE BYTE PTR bir sonraki ders... |
|
|
|
|
|
#9 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
;===== ( TEMEL ASSEMBLY TAŞIMA KOMUTLARI ) ===== MOV = VERİLERİ TAŞIR | + AX (AH, AL, EAX) | + BX (BH, BL, EBX) | + CX (CH, CL, ECX) | + DX (DH, DL, EDX) Özelliği: Her veri rahatlıkla taşınabilir. XHCG = VERİLERİ DAHA VERİMLİ TAŞIR | + AX (AH, AL, EAX) | + BX (BH, BL, EBX) | + CX (CH, CL, ECX) | + DX (DH, DL, EDX) Özelliği: Her veri rahatlıkla takas edilir. MOVSX = VERİLERİ GENİŞLETEREK TAŞIR | + AX (AH, AL, EAX) | + BX (BH, BL, EBX) | + CX (CH, CL, ECX) | + DX (DH, DL, EDX) Özelliği: Her veriyi 32 bit'e çevirir MOVZX = VERİLERİ GENİŞLETMEDEN HEDEFE TAŞIR | + SI (ESI) = SOURCE INDEX, EXTENTED SOURCE INDEX | + DI (EDI) = DESTANATION INDEX, EXTENDED DESTANATION INDEX LEA = AKTİF VERİLERİ KAYNAKTAN ALIR HEDEFE TAŞIR VEYA VERİYİ TAŞIR | + DS,CS,SS,IP | + SI(ESI) | + DI(EDI) Özelliği: Hızlı ve verimlidir. LDS = VERİYİ SEGMENTLERE YÜKLER | + DS,SS,CS,IP | + DI,EDI,SI,ESI | + AX, BX, CX, DX | + EAX, EBX, EDX, ECX | + ESP, EBP, SP, BP Özelliği: Segmente yükleme yapar ;===== ( WORD PTR, BYTE PTR )====== Bu yukarıdaki şeyler bunun anlaşılması için yazdım çünkü komutları kullanacağız BAŞLAMADAN ÖNCE ÇOK ÇOK ÖNEMLİ BİR NOT; ASSEMBLY SAĞDAN SOLA OKUNUR!!! WORD PTR = (WORD POINTER) Örnek mov ax, word ptr[aaaa] ; aaaa adlı word'ü ax'e taşıdık Özet: Genel olarak word ptr'lar içerik almak ve kontrol Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=289484 olarak kullanılır. Buna örnek LEA ESI, WORD PTR[INT21H+80] ; diski ve bios word noktalayıcı olarak ayarladık ve kaynak ilan ettik BYTE PTR = (BYTE POINTER) Örnek lds ds, byte ptr[21] ; disk verilerini aldık Özet: İçerik almak ve bellek yönetimi için kullanılır. Virüs yazımında kullanılma amacı hedef şeçer ve bellekteki dosya dizilimlerini bulur *.com *.exe gibi... ======== ( SONRAKİ DERS = ? ) =========== |
|
|
|
|
|
#10 |
|
Forum Ustası
![]() ![]() ![]() ![]() ![]() Kayıt Tarihi: Jun 2008
Üye numarası: #229520
Mesaj sayısı: 7,316
Karma etkisi: 48610
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 4859991
|
zor konudur bu ama guzel ve basıt olmus tsk ederım dostum aldım arsıve devamını beklıyorum
|
|
|
|
|
|
#11 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Nov 2008
Üye numarası: #277831 Yer: Ankara
Mesaj sayısı: 660
Karma etkisi: 2416
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 241202
|
Lan bi okuduğunuz bi baktığınız yok wardom bakanlara teşşekürlerimi sunarım ayrıca yorum yazanlarada
![]() O kadar emek harcadım lan her bir ders için 3 saat ayırdım... Hatasız yazayim diye.. Şurda şuraları canlandıralım (The Vikings'e dersleri için teşşekür) forumumuz bilgi ile dolsun diyoruz işe bak ![]() NOT = Ama ben bu bölümü adam etmeyi bilirim! ![]() Kaynak: Wardom http://www.wardom.com.tr/showthread.php?t=289484 NOT : Dersleri hızlı yazdığım için bazı hatalar olabilir insanlık hali ve çoğu komutun birbirine benzer ve işlevlikte olmasından.. Düzenleyen Volatile. : 01-09-2009 at 18:45. |
|
|
|
|
|
#12 |
|
Hızlı Çırak
![]() ![]() Kayıt Tarihi: Feb 2007
Üye numarası: #110016 Yer: Karabuk
Mesaj sayısı: 76
Karma etkisi: 119
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 11378
|
baya bi zora benziyor ama çözücez "Syntax-Life" çook teşekkür emegine saglik
|
|
|
|
|
|
#13 | |
|
Hızlı Çırak
![]() ![]() Kayıt Tarihi: Jul 2009
Üye numarası: #345398
Mesaj sayısı: 62
Karma etkisi: 282
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 27910
|
Alıntı:
teşekkürler Assembly zor bir programlama dili katılıyorum üniversitedeyken az kafa kırmamıştım![]() ![]() |
|
|
|
|
|
|
#14 | |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Sep 2006
Üye numarası: #85775 Yer: İstanbul
Mesaj sayısı: 311
Karma etkisi: 435
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 42944
|
Alıntı:
|
|
|
|
|
|
|
#15 |
|
Daimi Üye
![]() ![]() ![]() Kayıt Tarihi: Sep 2009
Üye numarası: #369049 Yer: Underworld
Mesaj sayısı: 722
Karma etkisi: 6046
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Karma: 604322
|
ah ah asembly
alttan almak zorunda olduğum derslerden biri 2. dönemde bu konu uğrak yerlerimden biri olacak sanırım ![]() |
|
|
|
![]() |
| Etiketler |
| x86 asm |
| Şu Anda Konuyu Görüntüleyenler: 1 (0 üye ve 1 misafir) | |
| Konu Araçları | Bu Konuda Ara |
|
|
