Forum » Programiranje » Backengeneering [Reverse engeneering]
Backengeneering [Reverse engeneering]
Nejc Pintar ::
Zanima me kako se naučiti tega zanimivega področja programiranja?
Lahko je biti prvi, če si edini!
- spremenilo: snow ()
iggy ::
Ja googlat je treba mal če se hočeš kej naučit.
Sicer pa tukaj nekaj voham.
Sicer pa tukaj nekaj voham.
Hey, you're fat!
BigWhale ::
Revese engineering ni podrocje programiranja. Programiranje moras ze obvladati, ce se hoces iti reverse engineering. No, odvisno kaj bos 'reversal', ce bo to kuhinjski stol, potem moras znati obdelovati les. ;)
Srachko ::
Sem bral enih par člankov, kako se da skrekat exe fajl od originalnih špilov. Mislim, da je to tudi reverse engeeniring.
I can see clearly now, the brain has gone...
Red_Mamba ::
seveda je, saj RE pomeni, da greš ti v obratni smeri kot je to v navadi in poizkušaš razumeti kako stvar deluje.
Z krekanjem pa ravno to delaš. Poizkušaš razumet kako zaščita deluje da jo lahk zaobideš.
Z krekanjem pa ravno to delaš. Poizkušaš razumet kako zaščita deluje da jo lahk zaobideš.
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
OmegaBlue ::
Reverse prav pride pri analizi obstoječega programnja za produkcijo svojega, spremenjenega na osnovi originalnega. Čeprav to ni ravno legalno ali zaželjeno.
Never attribute to malice that which can be adequately explained by stupidity.
BigWhale ::
Red Mamba,
Ah ne pretiravaj no. Reverse engineering je recimo reimplementacija ene igre. Open Transport Tycoon bi bil lep primer.
Se lepsi primer reverse engineeringa je pa Samba.
Ah ne pretiravaj no. Reverse engineering je recimo reimplementacija ene igre. Open Transport Tycoon bi bil lep primer.
Se lepsi primer reverse engineeringa je pa Samba.
Red_Mamba ::
BW: men se zdi da teb ni čist jasno kaj RE sploh pomeni
RE je analiza sistema/programa/stroja iz preprostega razloga, da si gor prideš kako zadeva dela/je sestavljena...
Kaj pol z tem znanjem dalje delaš pa ni več RE.
RE je analiza sistema/programa/stroja iz preprostega razloga, da si gor prideš kako zadeva dela/je sestavljena...
Kaj pol z tem znanjem dalje delaš pa ni več RE.
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Zgodovina sprememb…
- spremenil: Red_Mamba ()
Red_Mamba ::
reverse engineering: the process of analyzing a subject system to
+ identify the system's components and their interrelationships and
+ create representations of the system in another form at a higher
level of abstraction.
+ identify the system's components and their interrelationships and
+ create representations of the system in another form at a higher
level of abstraction.
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
BigWhale ::
Hja in pri veliki vecini crackov se nic od tega ne pocne. Ampak se ugotavlja samo katere bite je treba z nulami prepisat.
Ni nekega globjega znanja o sami zasciti, kaj sele o kaki abstrakciji :P
Ni nekega globjega znanja o sami zasciti, kaj sele o kaki abstrakciji :P
Red_Mamba ::
ja to je blo tko 5-10 let nazaj
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
klemen22 ::
ReverseeEngineering za n00be: MS Office in OpenOffice. Seveda so reversali tisti ta drugi da ne bo pomote (Oo).
Motiti se je človeško, odpuščati pa božje. Torej ti odpuščam ;)
Red_Mamba ::
ja in kaj bom z tem dosegel?
jaz še vedno pravim da je RE proces s katerim prideš do potrebnega znanja,
kaj pa ti pol naprej delaš pa nima nič zveze z RE, to je že navaden inžiniring,
rev. inžiniring si se pa prej šel, da si lahk sploh kaj sestavil z novim znanjem.
RE je analiza sistema ne pa geneza, kva tuki ni jasno?
jaz še vedno pravim da je RE proces s katerim prideš do potrebnega znanja,
kaj pa ti pol naprej delaš pa nima nič zveze z RE, to je že navaden inžiniring,
rev. inžiniring si se pa prej šel, da si lahk sploh kaj sestavil z novim znanjem.
RE je analiza sistema ne pa geneza, kva tuki ni jasno?
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Nejc Pintar ::
Primer reverse engeneeringa je tudi iPod Linux, pa razni driverji za Linux, mogoče tudi blackbox za windows?
Lahko je biti prvi, če si edini!
Gundolf ::
> RE je analiza sistema ne pa geneza, kva tuki ni jasno?
Red_mamba, tvoj citat pravi drugače (identify the system's components and their interrelationships and create representations of the system in another form at a higher level of abstraction.)
Čeprav se dokaj strinjam s tem, da izraz pomeni predvsem proces analize sistema brez izvorne kode. Torej tudi crackanje morda vsebuje malo RE.
Red_mamba, tvoj citat pravi drugače (identify the system's components and their interrelationships and create representations of the system in another form at a higher level of abstraction.)
Čeprav se dokaj strinjam s tem, da izraz pomeni predvsem proces analize sistema brez izvorne kode. Torej tudi crackanje morda vsebuje malo RE.
Red_Mamba ::
RE ni 100% definirana, na netu boš našel kar nekaj definicij in lahko ti najdem tudi takšno, ki nima geneze not
ampak moja kmečka logika še vedno pravi, da 2 nasprotujoča si pojma (inžiniring/ re-inžiniring) ne moreta poimenovati eno in isto stvar
(ustvarjanje novih stvari)
ampak moja kmečka logika še vedno pravi, da 2 nasprotujoča si pojma (inžiniring/ re-inžiniring) ne moreta poimenovati eno in isto stvar
(ustvarjanje novih stvari)
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Gundolf ::
Sej tako iz direktnega pomena besedne zveze bi rekel, da je to inžiniring, ki izhaja iz obratne smeri nečesa. Se pravi bi bil pravi pomen tak, da neko stvar raztaviš, iz tega razbereš princip delovanja in/ali vse podrobnosti ter nato ti narediš podobno. Torej v softwareskem smislu, da dissassemblaš ali še kaj več executable in potem po svoje implementiraš.
S tem se strinjajo tule: dictionary, medtem ko tule: Wikipedia pravijo, da za software namen implementacije ni pomemben ampak je važnen le postopek pridobivanja kode iz prevedenih programov.
IMHO je tole Wikipediino bolj uveljavljeno v računalništvu.
[edit: mamba, hec je bil le v tem, da si se v lastnem postu demantiral]
S tem se strinjajo tule: dictionary, medtem ko tule: Wikipedia pravijo, da za software namen implementacije ni pomemben ampak je važnen le postopek pridobivanja kode iz prevedenih programov.
IMHO je tole Wikipediino bolj uveljavljeno v računalništvu.
[edit: mamba, hec je bil le v tem, da si se v lastnem postu demantiral]
Zgodovina sprememb…
- spremenil: Gundolf ()
Red_Mamba ::
darko: that's basicaly it, yes ; to tumbam že cel cajt
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
veteran ::
Crack ni RE, key-generator pa že (ker se moraš poglobit v algoritem, da veš, kakšne ključe stvar požre;)
upirna ::
Ne vem, če je legalno... Ampak kaj moraš sploh narediti, da crackaš igro ali program?
[to sporočilo bo spremenil upirna, kadar bo to njemu pasalo]
veteran ::
Bigwhale, LOL. Nisem jest take sorte veteran.
Upirna, seveda je to kriminalno početje, zato dvomim, da boš dobil kakšne nasvete. Če pa jih boš, bo tema hitro zaklenjena, post pa izbrisan. ("ker imamo milico, pravo ljudsko milico, ki za red skrbela je, in za red skrbela bo!")
Upirna, seveda je to kriminalno početje, zato dvomim, da boš dobil kakšne nasvete. Če pa jih boš, bo tema hitro zaklenjena, post pa izbrisan. ("ker imamo milico, pravo ljudsko milico, ki za red skrbela je, in za red skrbela bo!")
klemen22 ::
Imeti veliko dobre volje!
In časa.
Motiti se je človeško, odpuščati pa božje. Torej ti odpuščam ;)
Red_Mamba ::
pa znanja ne pozabit
[st.slika https://img.shields.io/badge/Slo-Tech-green.svg test]
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
Linkedin >> http://goo.gl/839Aua
Mamba's Crypto & ICO's: https://t.me/joinchat/AAAAAExTkO4P4UDy0fIZdg
drejc ::
@Nejc: Decompilerji so v "zaprtem" programiranju edn od RE pristopov. Googlej za jad, ... Zato se ob lansiranju kode ponavadi uporablja obfuskator da REjevce malo zmede saj zamenja "domača" imena spremenljivk z raznimi ascii znaki.
"Rise above oneself and grasp the world"
- Archimedes of Syracuse
- Archimedes of Syracuse
sas084 ::
Pozdravljeni
Da nebom odpiral nove teme glede reverse engineering me zanima, če slučajno kdo ve kje bi se dalo dobiti kakšne informacije glede
legalnosti reverse engineering v Sloveniji.
Da nebom odpiral nove teme glede reverse engineering me zanima, če slučajno kdo ve kje bi se dalo dobiti kakšne informacije glede
legalnosti reverse engineering v Sloveniji.
MrBrdo ::
BigWhale: tukaj se nebi čisto strinjal s tabo, večino crackov se lahko šteje pod reverse engineering. morda lahko nebi štel le določenih primerov, npr.:
- kadar se uporabi generični crack (npr. za SecuROM, SafeDISC itd...) ali generične unpackerje (npr. za UPX)
- kadar se paralelno laufa v debuggerju original in ne original, in potem "slepo" popatcha neoriginal da gre po isti poti kot original
V ostalih primerih pa moraš vsaj približno ugotovit kako del programa deluje, da lahko narediš crack. In ko to razumeš pomeni da si reverse engineeral, ker si iz assemblya prišel do neke višjenivojske razlage (npr. z besedami).
Kar se tiče OP, za reverse engineering je odvisno kakšen program želiš reverse engineerat:
- IA32 executable: tukaj potrebuješ čimboljše obvladovanje IA32 assemblerja in poznavanje strukture executablov (npr. PE format na Windows). ko enkrat poznaš assembler lahko greš čez program in bereš assembly, debugiraš, da vidiš kako program deluje in potem lahko podvojiš to delovanje
- Flash: imaš orodja ki ti splunejo ven actionscript, tako da tukaj ni velika znanost
- Java: isto kot flash
- .NET: isto kot java (.NET Reflector)
- pri večini ostalih jezikov (npr. PHP, Python itd) se ponavadi uporablja le nek obfuscation, kjer se potem uporabljajo razna orodja da se pride nazaj (vsaj približno) do izvorne kode
- komunikacijsko reversanje se tudi dela z raznimi orodji (npr. Wireshark) in poznavanje protokolov, lahko se uporabi tudi hooking in neka avtomatska prevedba podatkov za nadaljno analizo.
Nekaj dobrih informacij je na portalu tuts4you, kjer lahko najdeš tudi vaje v obliki CrackME programov in razne tutoriale v obliki screencastov. Če te več zanima o tem bom imel čez nekaj mesecev delavnico na to temo na FRI (http://fristajlo.si/dogodki/25), če se prijaviš na obveščanje (http://fristajlo.si/obvescanje) boš dobil mail ko bo znan termin. Vendar je potrebno že znat nekaj assemblerja, za udeležbo.
veteran: v bistvu nimaš čisto prav, jaz bi skoraj prej rekel obratno... namreč pri keygenu je ponavadi treba le poiskati kodo, ki zgenerira key, in jo skopirat v svoj assembly projekt (ali pa kar C++ in uporabiš inline assembly) in naredit GUI. razumevanje algoritma v tem primeru je zelo malokrat potrebno. ponavadi je celo lažje naredit keygen kot pa crack, sploh kadar so uporabljeni razni packerji, CRC zaščita itd., če narediš kar keygen nič od tega ni potrebno zaobit (čeprav tudi to ponavadi ni ravno težko, izjema je kak hardcore obfuscator kot npr. Themida). Ponavadi samo poiščeš nek string, ki se izpiše pri registraciji (npr. Invalid key!), potem pa je precej enostavno najti kodo, ki generira ključ. Včasih niti debugiranje ni potrebno. Ali pa postaviš tam okoli breakpoint in debugiraš, in enkrat vmes maš v registru ali na stacku pointer do stringa s keyem. Potem samo restartaš app in vpišeš ta key.
sas084: jaz bi rekel da je legalno, dokler je v raziskovalne namene... ko pa narediš crack in ga daš v javnost, je pa že kar vprašanje.
- kadar se uporabi generični crack (npr. za SecuROM, SafeDISC itd...) ali generične unpackerje (npr. za UPX)
- kadar se paralelno laufa v debuggerju original in ne original, in potem "slepo" popatcha neoriginal da gre po isti poti kot original
V ostalih primerih pa moraš vsaj približno ugotovit kako del programa deluje, da lahko narediš crack. In ko to razumeš pomeni da si reverse engineeral, ker si iz assemblya prišel do neke višjenivojske razlage (npr. z besedami).
Kar se tiče OP, za reverse engineering je odvisno kakšen program želiš reverse engineerat:
- IA32 executable: tukaj potrebuješ čimboljše obvladovanje IA32 assemblerja in poznavanje strukture executablov (npr. PE format na Windows). ko enkrat poznaš assembler lahko greš čez program in bereš assembly, debugiraš, da vidiš kako program deluje in potem lahko podvojiš to delovanje
- Flash: imaš orodja ki ti splunejo ven actionscript, tako da tukaj ni velika znanost
- Java: isto kot flash
- .NET: isto kot java (.NET Reflector)
- pri večini ostalih jezikov (npr. PHP, Python itd) se ponavadi uporablja le nek obfuscation, kjer se potem uporabljajo razna orodja da se pride nazaj (vsaj približno) do izvorne kode
- komunikacijsko reversanje se tudi dela z raznimi orodji (npr. Wireshark) in poznavanje protokolov, lahko se uporabi tudi hooking in neka avtomatska prevedba podatkov za nadaljno analizo.
Nekaj dobrih informacij je na portalu tuts4you, kjer lahko najdeš tudi vaje v obliki CrackME programov in razne tutoriale v obliki screencastov. Če te več zanima o tem bom imel čez nekaj mesecev delavnico na to temo na FRI (http://fristajlo.si/dogodki/25), če se prijaviš na obveščanje (http://fristajlo.si/obvescanje) boš dobil mail ko bo znan termin. Vendar je potrebno že znat nekaj assemblerja, za udeležbo.
veteran: v bistvu nimaš čisto prav, jaz bi skoraj prej rekel obratno... namreč pri keygenu je ponavadi treba le poiskati kodo, ki zgenerira key, in jo skopirat v svoj assembly projekt (ali pa kar C++ in uporabiš inline assembly) in naredit GUI. razumevanje algoritma v tem primeru je zelo malokrat potrebno. ponavadi je celo lažje naredit keygen kot pa crack, sploh kadar so uporabljeni razni packerji, CRC zaščita itd., če narediš kar keygen nič od tega ni potrebno zaobit (čeprav tudi to ponavadi ni ravno težko, izjema je kak hardcore obfuscator kot npr. Themida). Ponavadi samo poiščeš nek string, ki se izpiše pri registraciji (npr. Invalid key!), potem pa je precej enostavno najti kodo, ki generira ključ. Včasih niti debugiranje ni potrebno. Ali pa postaviš tam okoli breakpoint in debugiraš, in enkrat vmes maš v registru ali na stacku pointer do stringa s keyem. Potem samo restartaš app in vpišeš ta key.
sas084: jaz bi rekel da je legalno, dokler je v raziskovalne namene... ko pa narediš crack in ga daš v javnost, je pa že kar vprašanje.
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
rfmw ::
Me zanima in sem se prijavil. Hkrati pa sprasujem, ce je bilo že kdaj kaj takega na to temo organizirano?
Legendary 8RDA+ (reCAPed ;), XP1700+ 2108 @ 1.84 V, SLK900A AS3 @ 2500 rpm
1,5GB Samsung DDR333+Geil DDR400+SuperTalent DDR400 @ DC 200 MHz @ 6-3-3-2.5
1,5GB Samsung DDR333+Geil DDR400+SuperTalent DDR400 @ DC 200 MHz @ 6-3-3-2.5
MrBrdo ::
rfmw: Iz moje strani ne... Drugače pa glede na interes, bo morda potrebno dat prednost študentom FRIja. Ker bo bolj proti koncu študijskega leta bo verjetno kar nekaj dni zapored po več ur dnevno.
MrBrdo
sas084 ::
Hvala za odgovor, drugač pa če koga bolj podrobno zanima reverse engineering je ene par strani kot je recimo tut4you ki jo je omenil MrBrdo, na crackmes.de
se da tud dobit dost materiala. Me zanima to področe, tko da na delavnico FRI sm se prjavu, upam da se bo u prihodnje organiziralo še ki podobnega :)
se da tud dobit dost materiala. Me zanima to področe, tko da na delavnico FRI sm se prjavu, upam da se bo u prihodnje organiziralo še ki podobnega :)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
⊘ | Kaj točno pomeni "skrekat"?Oddelek: Pomoč in nasveti | 6489 (5583) | Lonsarg |
» | Crack programa, kako se ga naredi?Oddelek: Loža | 3711 (2697) | msjr |
» | Na PlayStationu 4 že teče LinuxOddelek: Novice / Konzole | 13155 (9824) | 66speeder66 |
» | Case StudioOddelek: Programska oprema | 1236 (1039) | deninho1989 |
» | Konec podpore za piratske kopije MS Windows (strani: 1 2 3 )Oddelek: Novice / Operacijski sistemi | 19643 (8175) | KontraCepec |