ROT13 Converter ve ROT13 Şifreleme Yöntemi
ROT13 (Rotate13) forumlarda ve web proxy sayfalarında sıkça görülen ayrıca, çeşitli puzzle, riddle, bulmaca türlerinde karşımıza çıkan bir şifreleme türüdür. Daha önce dergilerimizde kriptografiye giriş yapmış ancak çeşitli sebeplerden devamını getirememiştim. Şimdi kaldığım yerden yavaş yavaş devam etmek istiyorum. Öncelikle ROT13 nedir onu bir öğrenelim, yazının sonundaki ROT13 Converter ve kaynak kodları ile de hem kriptografi bilgimizi hem de assembly bilgimizi artıralım.
ROT13 Nasıl Çalışır?
ROT13 (Rotate13) yer değiştirme yöntemi kullanan bir Caesar(Sezar) şifreleme türüdür. Mantık olarak ingiliz alfabesindeki bir harfin 13 harf sonraki harf ile eşleşmesidir. Harflerin eşleşme tablosunu resimden göre bilirsiniz.

Resimde de görüldüğü gibi bluedevil = oyhrqrivy olarak şifrelenir.
ROT13 Converter (Encoder/Decoder)
Assembly çalışmalarıma bir yenisini de küçük bir ROT13 Dönüştürücüsü ekleyerek devam etmek istiyorum. Mantık olarak ingilizce alfabesindeki bir harfin 13 sonraki harf ile yer değiştirmesi ile oluşan ROT13 şifreleme yöntemini assembly dilinde şöyle kullandım. Girilen metnin her bir karakterini bir döngüye soktum. Bu döngü ilk önce o karakterin bir harf mi yoksa faklı bir karakter mi olduğunu karşılaştırıyor. Eğer harf değilse doğrudan ekrana onu yazıyor eğer bu bir harf ise a-m ile A-M arasında olanların hex değerine “13″ ekleyip yazıdırıyor, eğer n-z ya da N-Z arasında ise 13 çıkartıp ekrana yazdırıyor.
Not: Bu küçük programcığı yazarken arkadaşlarım öncelikle bir ASCII tablosunu incelemelisiniz:
|
|
download: [SCT]ROT13 Converter (61.09KB) added: 07/01/2010 clicks: 448 description: ROT13 Encoder/Decoder, assembly çalışmaları için örnek bir ROT13 şifreleyicisi. Kaynak kodları içindedir. |





19 Ocak 10 Saat 22:01
Merhabalar, aşağıda DOSta NASM ile kullanılarak oluşturulan COM dosyasının çalıştırılmasıyla kullanılabilen eskiden yazdığım bir ROT13 kaynağı vardır.
[bits 16]
org 100h
[SECTION .text]
mov si,inFinie
mov di,oStr
xor cx,cx
call Rot13
call afterROT
mov di,sStr
kbrd:
mov ah, 0×10 ;get character
int 0×16
cmp al,0x0d
je enter_key
stosb
call putch
jmp kbrd
enter_key:
mov al,0x0d
call putch
mov al,0x0a
call putch
xor al,al ;append 0×00
stosb
mov si,sStr
mov di,oStr
xor cx,cx ;reset counter
xor ax,ax
call Rot13
call afterROT
int 0×20
Rot13:
inc cx
lodsb
or al,al
jz exit
fir:
cmp al,’A’
jl noop
cmp al,’Z’
jle rangeOK
cmp al,’a’
jl noop
cmp al,’z’
rangeOK:
sub al,13
cmp al,’a’
jge noop
add al,26
noop:
stosb
jmp Rot13
exit:
ret
afterROT:
xor al,al
stosb
sub di,cx
mov si,di
call print
ret
print: ;at si
lodsb
or al,al
jz .bit
call putch
jmp print
.bit:
ret
putch: ;in al
xor bh,bh
mov bl,7
mov ah,0x0E
int 0×10
ret
[SECTION .data]
inFinie db “EBG13 pbqre ol vaSvavr”,0x0d,0x0a,0
[SECTION .bss]
sStr resb 0×1000
oStr resb 0×1000
20 Ocak 10 Saat 23:24
İşte bu sitede görmek istediğim yorumlar. Çok çok teşekkürler!!
21 Ocak 10 Saat 14:31
Bir kod da ben vereyim o zaman
Derleme : nasm kod.asm -o kod.com
;———————————
org 0×100
jmp basla
_yazi dd 0×0
_i dd 0×0
_j dd 0×0
LC0 db “BLUEDEVIL”,0xD,0xA, 0
LC1 db “KUTALMIS”,0xD ,0xA,0
basla:
mov si,LC0
call yazi_yaz
mov dword[_yazi],LC0
mov dword[_j],9
call _cevir
mov si,LC0
call yazi_yaz
;——————————–
mov si,LC1
call yazi_yaz
mov dword[_yazi],LC1
mov dword[_j],8
call _cevir
mov si,LC1
call yazi_yaz
;——————————–
mov ah,0×0
int 0×16
;——————————–
_cevir:
mov dword [_i], 0
L7:
mov ecx, dword [_i]
mov edx, dword [_yazi]
movzx eax, byte [ecx+edx]
cmp al, 78
jle L5
sub al, 13
jmp L10
L5:
add al, 13
L10:
mov byte [ecx+edx], al
mov eax, dword [_i]
inc eax
mov dword [_i], eax
cmp eax, [_j]
jne L7
ret
;——————————–
yazi_yaz:
mov ah,0xe
.tekrar_yaz:
mov al,byte[si]
int 0×10
inc si
cmp byte [si],0×0
jne .tekrar_yaz
ret
21 Ocak 10 Saat 14:39
Bu arada aklıma gelmişken yazayım, bir haftadır bir boot loader üzerinde çalışıyordum, iki gün önce bitti, yazısını da yazdıktan sonra sana yollasam dergide ya da burda yayınlar mısın?
Ne iş yaptığını kısaca anlatacak olursam, 3 dosyadan oluşuyor. boot, pro.com, ayarlar.ini bu üç dosyadan boot, başlangıç sektörüne yazılacak, bunlar boot edilecek medyaya yazıldıktan sonra, açılışta boot, pro.com u belleğe yüklüyor, o da ayarlar.ini yi belleğe yüklüyor ve ayarlar.ini içinde yazan tüm dosya isimlerini medyadan buluyor, hepsini yanında yazan adreslerine yüklüyor, daha sonra ayarlar dosyasındaki atlanması istenen adrese atlıyor.
Anlayacağın baya gelişmiş bir loader (grub değil tabi
)
Aslında kendi sistemimi boot etmek için yazdım ama genel amaçlı bir kod sonuçta, birilerinin işine yarayabilir, özellikle sistem programcılarının.
İyi çalışmalar blue görüşmek üzere : )
21 Ocak 10 Saat 14:45
Flood gibi oldu ama : ) blog kodları bozuyor, o nedenle buradan kopyalanan direkt çalışmıyor, farkettiklerim “” ve 0x deki x ler, onları düzeltince çalışıyor, bilgine.
22 Ocak 10 Saat 19:03
Kutalmış çok isterim. Yazıyı bitirir bitirmez yolla hemen yayınlayalım. Bu arada Buradan değil de e-posta kullanalım mesajlaşmak için