Archive for the 'coding' Category

merhaba.asm

GNU\Linux üzerinde assembly makine dili ile yazdığınız kodu derleyebilmek ve çalıştırabilmek için Nasm’ın sisteminizde kurulu olması gerekmektedir. Ubuntu kullanıcıları aşağıdaki komutla gerekli paketi sistemlerine kurabilirler;

$sudo apt-get install nasm

Daha sonra küçük bir asm kodunun nasıl çalıştığına bakalım. Aşağıdaki örneği şu an linkini hatırlayamadığım bir siteden almıştım. Her zaman olduğu gibi ekrana “Merhaba Dunya!” yazdıracağız. Kodumuz aşağıdaki gibidir, kopyalayıp merhaba.asm adlı bir dosyaya paste edip ardından kaydediniz.

section .text
global _start
_start:
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0×80

mov ebx,0
mov eax,1
int 0×80

section .data

msg db “Merhaba Dunya!”,0xa
len equ $ - msg

Daha sonra aşağıdaki komut ile nesne dosyamızı oluşturuyoruz.

$nasm -f elf merhaba.asm
Bulunduğunuz dizinde aşağıdaki gibi bir nesne dosyası (.o) oluşacaktır.

root@ozgur:~/Coding# ls
merhaba.asm merhaba.o

Son olarak yapmamız gereken kodumuzun çalışabilir halini üretmektir. Bunun için aşağıdaki komutu kullanıyoruz.

$ld -s -o merhaba merhaba.o

Ve sonuç,

root@ozgur:~/Coding# ls
merhaba merhaba.asm merhaba.o
root@ozgur:~/Coding# ./merhaba
Merhaba Dunya!

Artık gerisi sizin hayal dünyanıza kalmış..

black hole

Çok iyi bir programcı veya yazılım mühendisi değilim. Oturup bir program yazabilir misin deseniz yapamayacağımı söylerim. Bu sözlerimden sonra bugün yaşadığım ve yeni öğrendiğim birşeyi sizlerle paylaşmak istiyorum.

Cisco switch’ler üzerinden geçen kriptolu datayı decrypt edebilecek bir kod yazdım. Daha sonra kodun derlenmesi için gerekli olan “gcrypt.h” kütüphanesini aşağıdaki gibi depolardan indirdim.

$sudo apt-get install libgcrypt11 libgcrypt11-dbg libgcrypt11-dev

Kodu gcc ile derlerken yaptığım bir dalgınlık yazdığım tüm kodun kaybolmasına neden oldu.

root@ozgur:/home/ozgur/Desktop/coding# ls
ciscogcrypt.c
root@ozgur:/home/ozgur/Desktop/coding# gcc ciscogcrypt.c -o ciscogcrypt.c
/tmp/ccsTDxNk.o: In function `c_decrypt’:
root@ozgur:/home/ozgur/Desktop/coding# ls
root@ozgur:/home/ozgur/Desktop/coding#

Demek bu kara delik denen şey hayatın her noktasında varlığını sürdürebiliyor. Artık bu dakikadan sonra yaptığım herşeyin bir yedeğini almak farz oldu. O değil de kod nereye gitti ya…

 
Powered by WordPress and Ad Infinitum