zabezpieczenie programu

0

jak wiemy sporo ludzi lubi pisać jakieś nakłądki updaty patche itp do programów które mają na kompie i z tego wynika mopje pytanie

Czy da radę zabezpieczyć nasz program w delphi aby do niego nie były dorzucane jakieś nakładki?
Czy jest jakieś zabezpieczenie chroniące przed zamianą exe na kod źródłowy delphi i przed deasamblowaniem?

Zastanawiałem się trochę nad tym. Ktoś na forum pisał na temat odczytania z exe kodu źródłowego (albo mi się przyśniło... B-| ).
Z resztą można też odpalić program, którego częścią będzie mój program :/, co jak wiadomo też mi się nie spodoba :(
Tak więc jak można najlepiej zabezpieczyć program, to właściwy temat tego postu

pozdrawiam i czekam z niecierpliwością na odpowiedzi (najlepiej poparte przykłądami kodu w delphi)

0

hej :d
Jakby dało rade to nie byłoby tyle cracków w sieci :d
Jedynie można chwytać sie jakiś niekonwencjonalnych sposobów hmm..
sprawdzanie samego siebie po rozmiarze pliku, podgląd procesów w pamięci w trakcie działania i sprawdzenie czy jakiś inny program nie używa dajmy na to czegoś z naszego programu (to odnosi sie do nakładek)
Zresztą czy jest jakiś skuteczny sposób ? :|

0

no właśnieco do wielkości pliku to sie zgadza, np sprawdza czy na serwerze istnieje taki sam plik i czy ma tyle samo bitów, al ejak ktoś dorwie sie do kodu źródłowego to wtopa bo może wykasować linie z kodem do sprawdzania wielkości

0

Nie potrzeba miec kodu źródłowego, żeby dobrać się do programu. Nie trzeba programu nawet dekompilować/disassemblowac (można to tylko utrudnic, ale nie uniemozliwić). Wystarczy debugger. Poza tym nie ma możliwości całkowitego zabezpieczenia programu, przed nieautoryzowanymi zmianami. Jedynie poziom wiedzy i zasób narzędzi (debugger do podglądu działania+kompilator do pisania patcha wystarczy) osoby która zabiera sie za krakowanie/patchowanie jest ograniczeniem.

W przypadku sprawdzania wielkosci pliku na serwerze i zmian długości , czy sumy kontrolnej wystarczy zmienić odpowiedni 'call', czy 'jmp' na inny 'jmp', albo na 'nop' i całe zabezpieczenie idzie w diabły.

0

Nie da się :). Przed zdeassamblowaniem nie zabezpieczysz programu, chyba że... Nie udostępnisz nikomu swojego programu :). Jak masz wersję skompilowaną, to zawsze można go zdekompilować. Aczkolwiek kodu Delphi nie otrzymasz... No, chyba, że ktoś napisze program do zamieniania assamblera na Pascala, ale wiele to Ci nie da, bo i tak będzie to zmieniony kod (każdy kompilator zmienia kod tak, by działał prościej, gdyby to bezpośrednio "na chama" przetłumaczyć na ASM, to każdy program byłby parę razy większy i wolniejszy :)

0

Adam.Pilorz można otrzymać kod w Delphi (dekompilatorem DeDe) ale tlyko wtedy kiedy sam program był pisany w Delphi

0

Poza tym np. PowerGG to tez nakladka, a dziala dodajac swoje menu komunikatami...
[Dopisane]
Shalom - Nie da sie odczytac kodu zrodlowego w Delphi, tylko w Asm. Dede odczytuje tylko nagłówki unitow co najwyzej i procedury.

0

Problem polega na tym, że DeDe nie zwraca kodu programu w takiej formie, w jakiej był przed kompilacją. Przynajmniej tak mi się wydaje, bo nie znalazłem większości rzeczy na temat mojego programu w nim. Podaje mi listę komponentów, może metod i tyle... Reszta jest w ASMie.

0

No to by było naprawde dziwne, gdyby DeDe zwracał taki kod źródłowy, jaki napisaliśmy, bo przecież program nie jest wszechwiedzący i nie wie jak napisaliśmy swój program... przecież jedną procedurkę w delphi można zastąpić kilkudziesięcioma innymi

0

Można program zapkakować jakimś nieznanym exe packerem wtedy ort! się zdeasemblować. Jest to oczywiście do ominięcia ale jest trudniej. A z pliku exe ort! się odczytać kodu źródłowego dla delphi jedynie asm
Pzd

0

Nie da się . Przed zdeassamblowaniem nie zabezpieczysz programu, chyba że...Nie udostępnisz nikomu swojego programu

Hmm..z tą opinią można polemizować..Proponuję zapoznanie się z technikami antydeasemblerowymi - znany przykład wirusa JUMP, który mimo, że jest w pełni funkcjonalny to jego deasemblacja pokazuje tylko skoki JMP. Z pewnością zabezpieczanie programu nie jest łatwe i trzeba się wykazać znajomością asm'a, ale nie ma rzeczy niemożliwych :)

Krótki przykładzik prostej techniki antydeasm:

MOV BX,108H
MOV AL,0BAH
MOV CS:[BX],AL
DB 0AH,010H,01H
MOV AH,09H
INT 21H
RET
Napis DB "Cokolwiek",13,10,'$

Pozdrowienia dla 2elo :p</quote></asm>

0

Nie da się . Przed zdeassamblowaniem nie zabezpieczysz programu, chyba że...Nie udostępnisz nikomu swojego programu

Hmm..z tą opinią można polemizować..Proponuję zapoznanie się z technikami antydeasemblerowymi - znany przykład wirusa JUMP, który mimo, że jest w pełni funkcjonalny to jego deasemblacja pokazuje tylko skoki JMP.

Więc tak - to że widać same skoki nie oznacza, że są to wykonywane instrukcje. Tam jest poprawny kod - wystarczy go odpowiednio poprzesuwać. To tylko mydlenie oczu a nie jakieś super hiper zabezpieczenie. Więc ten argument odpada.

Z pewnością zabezpieczanie programu nie jest łatwe i trzeba się wykazać znajomością asm'a, ale nie ma rzeczy niemożliwych :)

A lądowanie na Słońcu? :) Ale fakt - nie ma rzeczy niemożliwych - każdy program da się odkodować/wydobyć źróło w asm.

Krótki przykładzik prostej techniki antydeasm:
[kod]

Ale wtopa [green] Po pierwsze ten sposób zwany bodajże pilepine znany był za czasów DOSa 2.0 i już się go nie stosuje, ale co ważniejsze - dałeś ciała, bo Twoj kod będzie wykonany poprawnie tylko podczas pracy krokowej w debuggerze - odpalony normalnie się wykrzaczy :d - odwrotnie ;) no ale spox - można uznać to za czeski błąd...

0

Siema
Nie jestem jakims wielkim programista ale za to lubie teorie :p . Mozna by poprostku napisac dwa osobne exe, ktore beda kontrolowac sie nawzajem (Czyli musza chodzic w tle). W chwili usuniecia albo zmienienia kodu w jednym z exe drugi bedzie ragowal na to. NP: z powrotem podmienial kod. Niewiem jak to by mozna napisac bo nigdy na tym nie myslalem ale mysle ze sie dato zrobic. Tylko szybki musi ten programik :)

0

To wtedy skrakujemy dwa exe i nie bedzie jeden podmienial drugiemu kodu haha. Nie da sie zabezpeiczyc. Najlepiej udostepnic zrodla w sieci GNU i inne tam i wtedy jak nie ma tajemnicy to nikomu sie nie chce krakowac itd :) tak jak linuch :)

0

ja tez nie jestem wielkim programista i mam pytanie:
Jak wywalaja zabezpieczenia z programow?
Dezassembleruja i szukaja "recznie" zabezpieczen?
Jesli tak jest to moze napisac po prostu duuuuuuzego (bardzo bardzo duzego)execa skompresowac go jakims kompresorem?
Boze co ja pisze... [glowa]
Chyba troche spiacy jestem...

0

<ort>zadko</ort> kiedy deasembluja, w wiekszosci przypadkow debuguja

//o czym Ty piszesz? - m.M

0

jesli program bedzie szybki to nigdy niuda nam sie skrakowac dwoch exekow na raz. Najpierw ort! musi pominic jeden pozniej drugi. Jesli jeden zanie zmieniac kod drugi natychmiast zacznie ragowac.

0

jesli program bedzie szybki to nigdy niuda nam sie skrakowac dwoch exekow na raz. Najpierw przecirz musi pominic jeden pozniej drugi. Jesli jeden zanie zmieniac kod drugi natychmiast zacznie ragowac.

O matko! Ratunku...
Przecież widmo napisał o 'cracku' a nie o jakimś loaderze czy co... widać, że nie masz pojęcia o tym, co piszesz a koniecznie chcesz przepchać swój kiepski pomysł!

Cracking<font color="blue"><font size="1">*1</span></span> polega na permanentnej zmianie kodu programu. Więc w Twoim przypadku należy wywalić z programu głównego odwołania do tego drugiego i już po całym zabezpieczeniu. Ten drugi można nawet wywalić z dysku.

Blokuję ten temat, bo znowu tylko bicie piany zostaje... bez sensu totalnie...


<font color="blue"><font size="1">*1</span></span> zaraz Vogel się przyczepi, że w oryginale to słowo oznaczało co innego ;) ale ja go używam w powszechnym znaczeniu.

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