Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ kod programu zapisany szesnastkowo

Ostatnio zmodyfikowano 2011-03-26 19:20
Autor Wiadomość
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?
C/C++
#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 );
}
P-29681
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.
P-29682
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
P-29683
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.
P-29684
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).
P-29685
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ł?
P-29688
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ę.
P-29692
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...
P-29693
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona