[ deepwhite @ 11.05.2010. 14:14 ] @
Pozdrav,
interesuje me da li je i u kolikoj meri moguce uraditi dekompajling jednog exe-a.
Radim jedan programcic koji mora da se izvrsava iskljucivo na jednoj masini. Postoji velika verovatnoca da ce biti prekopiran i upotrebeljen/izmenjen. Moj posao je da ga napravim tako da sto vise otezam posao ljudima koji to budu radili. Zastitu mogu uraditi citanjem odredjenih hardverskih brojeva sa masine na razne nacine. Ono sto me brine je mogucnost da neko dekompajlira sam exe i da povadi informacije i/ili izmeni zahteve i putanje do trazenih podataka.
Koliko je to verovatno?
[ EArthquake @ 11.05.2010. 20:59 ] @
mnogi ljudi su jako mnogo vremena ulagali u zastite (pa i zaobilazenje istih)
koje su mnogo naprednije od toga sto ti pominjes

nemoj pogresno da me razumes , ali ne valja izmisljati toplu vodu

ako je nesto ozbiljno u pitanju pogledaj profesionalne alate za zapakivanje
recimo http://www.reversinglabs.com/solutions/software_protection.php
ljudi su inace sa nasih prostora
[ deepwhite @ 12.05.2010. 11:02 ] @
Nemoj me pogresno razumeti ali sam ocekivao ozbiljnije odgovore.
[ X Files @ 12.05.2010. 11:26 ] @
Citat:
povadi informacije i/ili izmeni zahteve i putanje do trazenih podataka


Ako su u pitanju klasicni resursi (bitmape, string tabele), njih mozes kriptovati (pa posebnom rutinom vratiti u normalnu formu pre ucitavanja) ili izracunati njihov checksum, pa navesti program da radi random pogresno ako to detektuje.

Putanje ces relativno lako sakriti (ako je njihova vidljivost u nekom HEX editoru problem). Takodje i njihov checksum mozes iskoristiti za proveru.

U kljucne delove koda (kojima preti by-pass) mozes ugraditi neke brojace, cija tacnost je potrebna za ispravno racunanje (izvrsavanje) necega dalje.

Nikako ne davati MessageBox sa porukom "otkrio sam prevaru" niti prekidati izvrsavanje programa! Program treba da nastavi da radi, ali random pogresno, tj. nepouzdano.

Idealnze zastite nema, sve se razbijaju, ali mozes hakerima oduzeti dosta vremena.



[ deepwhite @ 12.05.2010. 12:11 ] @
Da li koriscenjem vise razlicitih programskih jezika, implementacijom jednih u druge (tipa activex i sl), raznim zahtevima preko nestandardnih metoda ( php :) ) mogu smanjiti verovatnocu da ce neko "provaliti" sistem ili je to sve "vidljivo" ljudima koji su vrhunski u poslu razbijanja i izmena linija koda?
Samo malouman covek moze misliti da je 100% zastitio nesto kad znamo da je kompleksniji sistem teze zastiti, tako da o tome ne zelim da raspravljam. Pitanje je da li disasemblingom i nakandnim patchovanjem moguce razbiti i izmeniti i kod pisan u vb kao i kod c++ ili bilo kojeg specijalizovanog endzina? Znaci zelim da definisem nivo na kome rade, da ih tako nazovem, hakeri.
[ jorganwd @ 12.05.2010. 20:11 ] @
Citat:
deepwhite: Nemoj me pogresno razumeti ali sam ocekivao ozbiljnije odgovore.


Ne znam sta je u EA-ovoj poruci bilo neozbiljno? Pored njegove preporuke, ja bih najprije razmotrio slojevitu zastitu samog servera ako je scenario onakav kakvog ga opisujes.

my 2c
[ EArthquake @ 13.05.2010. 10:56 ] @
ja sam ti dao najozbiljniji moguci predlog , imas i besplatno dostupnih resenja verovatno
ako hoces nesto ozbiljno


kao sto rekoh , ne treba izmisljati toplu vodu


rece X files da kriptujes podatke , cime ?
za bilo kakvo kriptovanje ti treba kljuc , a ako kljuc drzis u samoj aplikaciji ... magicni krug

jedan od nacina je , tako inace i rade packeri, da na osnovu neke unete sifre radi dekripciju programa on the fly ,
ali to se da vrlooo lako pobediti

dalje , checksume , sta mene sprecava da ih promenim u samom programu da odgovaraju?

zasto je citanje serijskog broja hard diska toliko popularno ? sta me sprecava da patchujem deo koda koji to proverava da uvek vraca true?
ili da hookujem funkciju koja vraca taj ID , da vraca onaj koji ja hocu ?


sve te zastite su povrsne, naravno , radice ako pokusavas app da zasitits od procesnog komsije ili sekretarice
otezava stvari da, ali niko ko se ozbiljno bavi ovime se nece ni oznojiti ...


[ X Files @ 13.05.2010. 11:27 ] @
Citat:
sve te zastite su povrsne, naravno , radice ako pokusavas app da zasitits od procesnog komsije ili sekretarice
otezava stvari da, ali niko ko se ozbiljno bavi ovime se nece ni oznojiti ...

Ovo jeste tacno i poenta je cele price. Zato sam i insistirao na barem ne javljanju poruke o gresci i random pogresnim rezultatima.

[ deepwhite @ 14.05.2010. 14:42 ] @
Citat:
X Files: Ovo jeste tacno i poenta je cele price. Zato sam i insistirao na barem ne javljanju poruke o gresci i random pogresnim rezultatima.



Ovo me je interesovalo. Što se tiče ozbiljnosti hteo sam da kažem da linkove mogu i sam da nađem, ali konkretno objašnjenje je ozbiljan odgovor. Ovde sam dobio nekoliko odgovora koji su tipa - batali ti to, daj to profesionalcima. Ne secam se da sam rekao da profesionalci nisu u timu, nego zelim da cujem sta neko drugi misli o ovakvim stvarima.
[ notebookFun @ 22.05.2010. 23:05 ] @
Programi pisani u VB ili C++ se ne mogu dekompajlirat, ali se moze vidjeti ASM kod, koji je na prvi pogled komplikovan.

Za profesionalce, koji se bave reversing-om, sve se moze rijesiti. EArthquake ti je dao dobar prijedlog, jedno od osnovnih pravila zastite EXE fajlova, jeste zastita EXE PROTECTOR-om.

Ako zelis zabraniti kopiranje programa onda to mozes uraditi na sledeci nacin.

Uzmi C: volume number, uzmi ime masine, enkrptuj ovo dvoje i smjesti u jedan file negdje u "C:\windows\system32".
Kada se program bude startovao (dekriptuj) file i provjeri VOLUME NUBER i COMPUTER NAME. U slucaju da nije ok, ne izbacuj nikakvu gresku vec pusti da program radi npr 1min i da se poslije sam ugasi.

Obavezno koristi protector, bar ti lameri nece moci PATCH-ova ili CRACK-ovat program. Neki poznatiji protector-i su:
Armadillo
ASPack
RLPack






[ Shadowed @ 23.05.2010. 00:27 ] @
I sta se desava kada korisnik promeni computer name? :)
[ Ivan Dimkovic @ 23.05.2010. 00:37 ] @
Citat:
notebookFun
Programi pisani u VB ili C++ se ne mogu dekompajlirat, ali se moze vidjeti ASM kod, koji je na prvi pogled komplikovan


Moguce je donekle dekompajlirati C/C++ aplikacije sa IDA Pro disassemblerom i HexRays plug-inovima.

Kvalitet dekompajliranja je obicno nizak i ne puno pregledniji od disasembliranog koda, osim ako u izvrsnom fajlu nisu i debug simboli - onda moze biti upotrebljivo.

Za autora teme - najpametnije je da kupis DigitalRiver-ov Armadillo / Software Passport. Ako ukljucis sve zastite (+ nanomites) prilicno ces zakomplikovati rasturanje tog programa, i osim ako program nije siroke potrosnje - popularan, vrlo verovatno nece biti razbijen.
[ deepwhite @ 24.05.2010. 10:08 ] @
Molim da me neko ispravi ako gresim ali svi ovi navedeni programi za zastitu se mogu naci na torentima. Zar nije logicno da prvo sebe zastite pa onda klijente? Ili je to patka proizvodjaca ili nesto trece?
[ notebookFun @ 25.05.2010. 13:04 ] @
Citat:
SHADOWED: I sta se desava kada korisnik promeni computer name? :)

Pozoves autora programa, i on ti rijesi problem, ako imas dokaz da si kupio program :)




Citat:
Ivan Dimkovic: Moguce je donekle dekompajlirati C/C++ aplikacije sa IDA Pro disassemblerom i HexRays plug-inovima.



Da se dobije cist c++ kod, koji se kasnije moze kompajlirati je nemoguce.

Citat:
deepwhite: Molim da me neko ispravi ako gresim ali svi ovi navedeni programi za zastitu se mogu naci na torentima. Zar nije logicno da prvo sebe zastite pa onda klijente? Ili je to patka proizvodjaca ili nesto trece?


Sto se tice DigitalRiver-ov Armadillo / Software Passport, po meni je samo bacanje para, jer je za ljude koji se bave reversingom bas Armadillo veliki izazov i uvijek bude razbijen. Isto kao sto je nova DRM zastita na Assassin's Creed 2, vec razbijena....



Kupi program! Ovakav odgovor koji ti trazis ne mozes dobiti na ovom forumu. Procitaj pravila foruma.

[ deepwhite @ 25.05.2010. 14:48 ] @
Naravno da necu stavljati u komercijalnu upotrebu program skinut sa torenta. Samo sam primetio da ih ima na torentima i da su razbijeni, što znači da nisu ni sebe mogli zaštiti...
[ jorganwd @ 25.05.2010. 17:51 ] @
Ne mogu da dozvolim da ova diskusija prodje ovako.

Zamisli deepwhite to ovako. Ma koliko ti stitio tvoj program, on ce biti razbijen. Tacka. Samo je pitanje cost/benefit analize - koliko zapravo trebas da ulozis u security da bi odlozio potencijalni incident.

Drugo, moras misliti i o marketingu i promociji. Kada tvrdis nesto, onda to pokusaj da sagledas iz nekog drugog ugla osim programerskog. Pokusaj da nam prodas softver koji nikad necemo moci da probamo prije kupovine. Prosvijetli nas.
[ vlada_vlada @ 26.05.2010. 18:22 ] @
Citat:
Pozdrav,
interesuje me da li je i u kolikoj meri moguce uraditi dekompajling jednog exe-a.
Radim jedan programcic koji mora da se izvrsava iskljucivo na jednoj masini. Postoji velika verovatnoca da ce biti prekopiran i upotrebeljen/izmenjen. Moj posao je da ga napravim tako da sto vise otezam posao ljudima koji to budu radili. Zastitu mogu uraditi citanjem odredjenih hardverskih brojeva sa masine na razne nacine. Ono sto me brine je mogucnost da neko dekompajlira sam exe i da povadi informacije i/ili izmeni zahteve i putanje do trazenih podataka.
Koliko je to verovatno?


Deepwhite, evo cisto jedna glupa ideja - mimo svih tih dekompajling-trte-mrte tehnika.


1. Pirat podigne virtuelnu masinu
2. Instalira program
3. Napravi X kopija image-a
4. Podeli drugarima za 100din

HDD serijski broj? MAC adresa? Ime windows racunara? Hmmz..
[ notebookFun @ 27.05.2010. 11:39 ] @
Citat:
vlada_vlada

1. Pirat podigne virtuelnu masinu
2. Instalira program
3. Napravi X kopija image-a
4. Podeli drugarima za 100din

HDD serijski broj? MAC adresa? Ime windows racunara? Hmmz..



Podrazumjeva se da svako ko napise dobar program zna da ga i zastiti. Ja bih onda u dio zastite dodao kod za detekciju Virtual machine :)

Evo ima vec gotov code za to :)

http://www.codeproject.com/KB/system/VmDetect.aspx
[ vlada_vlada @ 27.05.2010. 12:02 ] @
Znaci plan je da se ubaci detekcija svih postojecih VM-ova, otvarajuci dependency ka nedokumentovanim funkcijama? :)

Salis se?

Bas me zanima kako bi ti izgledali test-case-ovi za to parce koda :P
[ jorganwd @ 27.05.2010. 14:27 ] @
Sve su to glupe ideje. Core Security, Qualys i njima slicni su recimo to davno skontali i pribjegli drugim tehnikama zastite (to je trebalo skontati iz mog prvog posta u ovoj temi)
[ EArthquake @ 29.05.2010. 08:52 ] @
kao sto rece jorganwd, a i ja samnagovestio istu misao

uradis procenu koliko ti je zastita potrebna

mozda shvatis da ti se vise isplati da pare koje bi potorosio na zastitu potrosis na reklamu

znam da kod nas jos uvek nije slucaj da ljudi imaju svest o pirateriji i moralnoj obavezi placanja
software-a, ali i to se menja

poenta je, ako ti je program dobar , ljudi ce ti platiti za njega , pa makar bio i dzabe, nacice se neko ko ce ti dati donaciju


i jos jedna stvar, mislis da se adobe recimo mnogo zdere zbog piraterije photoshopa?
sumnjam , posto im je to neka vrsta ulaganja u buducnost, bilo koja firma koja koristi njihov software mora da ima original licenciran, u suprotnom niko nece saradjivati s njima
s druge strane, cinjenica da svi neprofesionalci , ili profesionalci koji ne rade na komercijalnim stvarima, koriste photoshop sada, znaci da ce ga , kad se zaposle i krenu da rade nesto komercialno verovatno preferirati u odnosu na neka druga resenja

ista fora je recimo s microsoftom, ja kao student imam licencu za gotovo sve MSove proizvode
Zasto? Zato sto cu sad, hteo ne hteo, nauciti da radim u njima pa cu kad dodje vreme komercijalne stvari raditi u njihovim tehnologijama

(malo sam upao u digresiju)

poenta price je da bi se ja vise potrudio da sto vise ljudi koristi moj software umesto da pokusavam da sprecim ilegalno koriscenje , kad ti software postane rasiren i nezamenljiv, tada razmisljaj o zastitama
[ deepwhite @ 29.06.2010. 00:18 ] @
Moj program treba da se izvrsava na jednoj jedinoj masini koja ce biti postavljena na javno mesto. Upozorenje sam dobio od distributera koji je na osnovu svog iskutsva rekao da ce program biti prekopiran cim masina izadje iz ofisa. Treba zastiti program da se ne podigne ni na jednoj drugoj masini bar dok kupac ne potvrdi kupovinu i ne potpise se ugovor, a procedura traje 3-6 meseci, a posle kom opanci kom obojci jer predajemo ceo projekat i to vise nije moj problem.
Ovde nije komercijalan sam programcic tj. exe, nego je komercijalan ceo projekat zajedno sa masinom, elektronskim interfejsima itd... Pitanje je zastite da se exe ne odnese sa racunara (to je trial verzija) i da se ne izmene odredjene stvari posle cega to vise ne bi bio trial. Nadam se da je malo jasnije.
Kako zastiti programcic da se ne podigne na drugoj masini, a da ne ponavljamo odgovore iz prethodnih postova?
[ jzarko @ 28.01.2011. 11:40 ] @
Hardlock USB ima jedna izraelska firma u novom sadu,da ih sad ne reklamiram raspitaj se!