Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C kendi source kodunu yazdıran program


Öne çıkan mesajlar

Mesaj tarihi:
Vidar said:

güvenlikle ilgilenen hocaların olduğunu bilmek ne güzel. Güvenlik konsepti kulağına bile fısıldanmadan mezun oluyo çoğu bilg müh okuyan genç.

http://people.sabanciuniv.edu/levi/
  • 2 yıl sonra ...
Mesaj tarihi:
#include

int
main (void)
{
char *s1="#include %c%cint%cmain (void)%c{%c";
char *s2=" char *s%c=%c%s%c;%c char *s%c=%c%s%c;%c";
char *s3=" char n='%cn', q='%c', b='%c%c';%c";
char *sp=" printf(";
char *s4="%ss1,n,n,n,n,n);%c";
char *s5="%ss2,'1',q,s1,q,n,'2',q,s2,q,n);%ss2,'3',q,s3,q,n,'p',q,sp,q,n);%c";
char *s6="%ss2,'4',q,s4,q,n,'5',q,s5,q,n);%ss2,'6',q,s6,q,n,'7',q,s7,q,n);%c";
char *s7="%ss2,'8',q,s8,q,n,'9',q,s9,q,n);%ss2,'0',q,s0,q,n,'x',q,sx,q,n);%c";
char *s8="%ss3,b,q,b,b,n);%ss4,sp,n);%ss5,sp,sp,n);%c";
char *s9="%ss6,sp,sp,n);%ss7,sp,sp,n);%ss8,sp,sp,sp,n);%c";
char *s0="%ss9,sp,sp,sp,n);%ss0,sp,sp,n,n,n);%c return 0;%c}%c";
char *sx="--- This is an intron. ---";
char n='n', q='"', b='';
printf(s1,n,n,n,n,n);
printf(s2,'1',q,s1,q,n,'2',q,s2,q,n); printf(s2,'3',q,s3,q,n,'p',q,sp,q,n);
printf(s2,'4',q,s4,q,n,'5',q,s5,q,n); printf(s2,'6',q,s6,q,n,'7',q,s7,q,n);
printf(s2,'8',q,s8,q,n,'9',q,s9,q,n); printf(s2,'0',q,s0,q,n,'x',q,sx,q,n);
printf(s3,b,q,b,b,n); printf(s4,sp,n); printf(s5,sp,sp,n);
printf(s6,sp,sp,n); printf(s7,sp,sp,n); printf(s8,sp,sp,sp,n);
printf(s9,sp,sp,sp,n); printf(s0,sp,sp,n,n,n);
return 0;
}

Gençler bende bir matematik dergisinde bu soruyu görmüştüm ve internette araştırırken bunu buldum sanırım çalışıyor :D Hemde C de konu bayağı eskiymiş bu arada :)
Mesaj tarihi:
nedanko said:

eh orasi oyle, onun icin koca bi printf bile yeter tek satirda cozersin yani :)


aquila said:

ahaha lan her kod satirinin altina ayni kodu prinfle yazsan olur.



Son dahil ettiğin şeyi tekrar tekrar eklemen gerekir ama. Mesela

a

print a

olmaz. Ve de

a

print a, print a

da olmaz. Kısacası ekledikçe eklersin hehe. Fixed point theoremden falan bahsediyolar hangi uyuşturucunun etkisi altında bu bağlantıyı kurmuşlar bilmiyorum ama bir çeşit contraction mapping kurup bu ekleme sekansını devam ettirdikçe kodun kendisine varıyorsun gibi saçma bişey olsa gerek
Mesaj tarihi:
o değil de kendi kodunu modifiye edip tekrar compile eden program yazmak mümkündür herhalde değil mi?

burda cheat etmek de serbest direk source kodu okuyacak değişiklik yapıp sonra tekrar compile edecek, kendisi compile etmeyecek tabi compilerı çalıştıracak, onu çalıştırınca kendini kapatacak falan.

bu sorudan serbest çağrışım yaptım
Mesaj tarihi:
Ken thompson'in bir yazisinda oneriliyordu bu yanlis hatirlamiyorsam. Hatta TAOCP'de de geciyordu sozu.

Ismi quine bu olayin. Zor bir sey. Google'larsan bir suru sey bulursun ama. Bilmem ne recursive teorimine dayali olarak anlatiliyordu. Ben becerememistim kendim, kolay gelsin.
Mesaj tarihi:
Ardeth said:

o değil de kendi kodunu modifiye edip tekrar compile eden program yazmak mümkündür herhalde değil mi?

burda cheat etmek de serbest direk source kodu okuyacak değişiklik yapıp sonra tekrar compile edecek, kendisi compile etmeyecek tabi compilerı çalıştıracak, onu çalıştırınca kendini kapatacak falan.

bu sorudan serbest çağrışım yaptım


Mumkun tabii. Zaten source koddan executable'i cikarttiktan sonra source code'un bir olayi yok ki. Herhangi bir dosya gibi acar kodu, gerekli degisikligi yapar sonra da run eder o executable'i.
Mesaj tarihi:
Adam mezun olmuş ben ne diyorum... asdfasd

başlığı okuduğumda hocanın ismi ahmet koltuksuzmu diye soracaktım tam :)
bizim final sınavımızda sormuştu bu soruyu.

çok abzürd şeyler düşünme.
bi array tanımla koddaki tüm karakterleri içersin. ayrıca kod bunu yazdırsın.
bu kadar dangalak bi soru bu aslında. :)
Mesaj tarihi:
Kemarlos said:

şuan sorduğum soru çok komik geldi bana :) o anki halimle konuşmak isterdim :D


niye lan
ben bu topic sayesinde öğrendim böyle bişi olduğunu
Mesaj tarihi:
@Dwinz evet dostum. tanışıyo muyuz? gerçi nickimden adımın kemal olduğu belli oluyo ama..

@senko ya quinine'i çoğu kişi bilmiyo olabilir çok bilinen bişi değil ama, yazması kolay aslında, sorarken çok fazla düşünmemişim ya da düşünememişim mi artık bilmiyorum :)
×
×
  • Yeni Oluştur...