ison |
» 2011-03-24 19:52:15 nie da rady napisać kodu tak by człowiek nie mógł go odczytać a się kompilował.
|
jesteś pewien? #include <cstdio> #include <string> #include <windows.h> #define _ int #define __ for #define _________ unsigned #define _______ ++ #define ________ "\b \b\b" const char ____[] = { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x00 }; _ main() { _ ___ = 0x00; __( _________ _ _____ = 0x00; _____ < strlen( ____ ); _______ _____ ) { __( _ ______ = 0x00; ______ <( 1 << 8 ) - 186 - ___; _______ ______ ) putchar( ' ' ); __( _ ______ = 0x00; ______ <( 2 << 7 ) - 187 - ___; _______ ______ ) { printf( ________ ); putchar( ____[ ___ ] ); Sleep(( 1 << 3 ) - 1 ); } _______ ___; } Sleep( 1000 ); }
|
|
szyx_yankez |
» 2011-03-24 20:01:58 @ison: to tylko brzydko napisany program z dziwnymi definicjami. Nadal czytelny dla człowieka, choć w troche mniejszym stopniu.
Większośc osób znających c++ mających troche doświadczenia to rozszyfruje.
|
|
ison |
» 2011-03-24 20:27:33 @up to może to? (język C) #include <stdio.h> main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_, main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13? main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t, "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\ ;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \ q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \ ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \ iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \ }'+}##(!!/") :t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1) :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
:) źródło: http://pl.wikipedia.org/wiki/Zaciemnianie_kodu |
|
szyx_yankez |
» 2011-03-24 20:40:49 Po pierwsze nie kompiluję się.
Po drugie:
Zaciemnianie kodu (także obfuskacja, z ang. obfuscation) to technika przekształcania programów, która zachowuje ich semantykę, ale znacząco utrudnia zrozumienie. |
(żródło: http://pl.wikipedia.org/wiki/Zaciemnianie_kodu).
Tylko utrudnia zrozumienie, ale nadal jest zrozumiałe. |
|
hashedone |
» 2011-03-24 20:46:06 W C++ tego się zrobić raczej nie da, w C w któreś tam wersji jak najbardziej. Sztuczka polega na tym, że main nie musi być funkcją, a może być na przykład... tablicą. Tablicą, która zawiera jako kolejne elementy kod programu (konkretne instrukcje procesora, dosłownie, czyli coś, co jest jeszcze na niższym poziomie niż assembler). |
|
ison |
» 2011-03-24 20:57:21 @szyx_yankez jeśli jest na wikipedii to znaczy, że się kompiluje :p no tak, po odszyfrowaniu zrozumiałe jest, ale jak chcesz inaczej napisać kod aby nie dało się go rozszyfrować oraz żeby się kompilował? |
|
szyx_yankez |
» 2011-03-24 21:12:22 jeśli jest na wikipedii to znaczy, że się kompiluje :p |
Wkipedia nie jest w 100% wiarygodnym źródłem.
no tak, po odszyfrowaniu zrozumiałe jest, ale jak chcesz inaczej napisać kod aby nie dało się go rozszyfrować oraz żeby się kompilował? |
Np. napisac swój własny język o składni typu:
&& HHAJMMMNAHH * J !(() J !!( *( JJ !**( * JJ
Następnie tłumaczyć kod z c/c++ na dany język, badź też pisać programy w tym swoim języku. A przy kompilacij w drugą strone: własny język-> c/c++ -> kompilacja.
Ps.Kiedyś nawet zaprojektowałem własny język o pozornie trudnej składni i napisałem do niego interpreter.
Dla przykładu kod w moim języku obliczający pierwsze 90 liczb ciągu Fibonaciego i wyświetlający je w konsoli wygląda tak:
ci90ca1cb0cm0$i#o a o.|.>i:i-1>m:a+b>b:a>a:m# . Celem języka miało być to aby kody żródłowe programów były jak najkrótszę. |
|
hashedone |
» 2011-03-24 21:24:12 Przy czym nawet jeśli jesteś w stanie napisać samodzielnie język programowania na poziomie C++, to jaki sens ma udostępnianie źródeł w nim napisanych, skoro nikt nie ma do niego kompilatora? Tak właściwie to zastanawia mnie co może mieć na celu udziwnianie kodu w ogóle... |
|
1 « 2 » 3 4 |