[delphi]wyciaganie kodu zrodlowego

0

czesc

od kilku dni nurtuje mnie pewne pytanie otoz czy da sie poprzez jakies debbugery wyciagnac kod zrodowy z programu exe napisanego w delphi. Na roznych forach czytalem i jedni mowili ze sie da, drudzy mowili ze sie nie da i teraz sam juz nie wiem

odpalilem dede i wczytalem do niego moj programik pojawilo mi sie jakie komponenty uzylem w programie ich nazwy itp kliknalem na jednym i mialem

00477146   8B83B0030000           mov     eax, [ebx+$03B0]
0047714C   E8F789FCFF             call    0043FB48
00477151   33D2                   xor     edx, edx
00477153   8B83AC030000           mov     eax, [ebx+$03AC]
00477159   E8EA89FCFF             call    0043FB48
0047715E   33D2                   xor     edx, edx
00477160   8B83C0030000           mov     eax, [ebx+$03C0]
00477166   E8DD89FCFF             call    0043FB48
0047716B   5B                     pop     ebx
0047716C   C3  

osobiscie nic z tego nie rozumiem.
wiec jak to jest z tym wyciaganiem kodu zrodlowego z programu exe?
chodzi mi czy da sie wyciagnac cos takiego gdy mialem w button przypisany kod
label1.caption:='kod';

czy jakis debbuger pokaze mi to czy nie ??

0

kilka literek : assembler... tzn. bydzie, ale ino w asmie

0
arti12 napisał(a)

chodzi mi czy da sie wyciagnac cos takiego gdy mialem w button przypisany kodlabel1.caption:='kod';czy jakis debbuger pokaze mi to czy nie ??
nie

0

user image

no to zrobilem przez PE Explorer dissambler

czyli nikt mi nie ukradnie kodu programu :)

a kumpel mnie nastraszyl ze jak napisze jakis program to on sobie wezmie kod - yhym

0

http://img249.imageshack.us/my.php?image=bbbbqm7.png<image>user image

nie wkleilo zdjecia </image>

0

to ci jednak weźmie... w pascalu jest coś takiego jak blok asm..end;

0

Kodu dokładnie takiego samego nie dostaniesz nigdy nie zależnie od tego jakiego programu użyjesz. Jedyne co możesz wyciągnąć z programu to zoptymalizowana wersja Twojego programu w assemblerze, którą disassembler może spróbować przerobić na delphi/c++ czy co tam innego Ci sie podoba/mu sie uda. Jedank nawet po wykonaniu tej operacji nie ma szans, żeby uzyskany kod był taki sam ja kod "wejściowy". O odzyskaniu nazw zmiennych, komentarzy itp. oczywiście nie ma co marzyć, jest jednak możliwość odzyskania strutury klas.

Z tego co wiem ostatnio powstał plug-in do IDY, który przerabia asma na c++(wmiare możliwości oczywiście). Poducz się chociaż trochę assemblera i zobacz jak to w rzeczywistości wygląda. I nie daj się kumplowi, kod to on sobie weźmie jak program będzie open source, ale się włamie do Twojego kompa - innych możliwości nie ma ;-)

0

i ja sie troche dowiedzialem o tym :D

bo juz zwatpilem czy pisanie programow ma jakis sens jesli kazdy by mogl sobie wziasc kod z takiego execa

0

cyrkiel dziekuje bardzo za odpowiedz i rozwiniecie tematu

0

Sorki za odświeżenie tematu ale nie chciałem pisać kolejnego tym samym,

Czy jest możliwość ustawienia jakiejś opcji w delphi 7 aby w skompilowanym pliku delphi nie występowały nazwy procedur i funkcji, i parametrów komponentów?

Nie chce żeby ktoś mnie źle zrozumiał nie chodzi mi o zabezpieczenie przed dekompilacją tylko o to żeby np dede zamiast wyrzucać dokładne nazwy procedur i parametry komponentów pokazywał tylko kod w asemblerze lub jakieś defaultowe.

P.S. Rozwiązania typu upx mnie nie interesują, ponieważ działają w obie strony :/

0

Kiedyś kiedyś na tym forum udzielał się niejaki Sheitar (sorry jak przekręciłem) on (chyba jest nawet autorem) polecił mi rozwiązanie które rozwiązanie typu upx czyni jednokierunkowym. Nazywało się to coś a'la UPXHack.

0
zember napisał(a)

Czy jest możliwość ustawienia jakiejś opcji w delphi 7 aby w skompilowanym pliku delphi nie występowały nazwy procedur i funkcji, i parametrów komponentów?

Opcje projektu -> linker -> odznacz TD32 debug info
Opcje projektu -> compiler -> debugging -> odznacz wszystko, co znajdziesz w tej części zakładki: debug information, local symbols, reference info, assertions.

0

Niestety po odznaczeniu tych opcji dede nadal widzi wszystkie nazwy procedur z unit1.pas :( Ma ktoś jeszcze jakies pomysły moze jakies packer asymetryczny ktory dzial tylko w jedną strone ?

0
zember napisał(a)

Niestety po odznaczeniu tych opcji dede nadal widzi wszystkie nazwy procedur z unit1.pas :( Ma ktoś jeszcze jakies pomysły moze jakies packer asymetryczny ktory dzial tylko w jedną strone ?

Nazwy procedur likwiduje Blinker - ale czy da się zastosować do Delphiego nie wiem, nigdy nie próbowałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1