Mach3 z pohledu RE

Diskuze o softvéru MACH od tvůrců Artsoft všech verzí: dotazy, programování, skripty, poznatky atd...
Odpovědět
PavelZ
Příspěvky: 356
Registrován: 10. 3. 2008, 11:48
Bydliště: Praha

19. 8. 2008, 11:10

Tak jsem se konečně vrátil z dovo, kde jsem se trochu nudil a pokusil jsem se nalézt odpověď na problematiku programové struktury a rovněž i licenční ochrany Machu (já koukal do verze 2.63), a to z pohledu reverzního inženýrství. Prosím Robokopa, aby následující přízpěvek nevyhodnotil jako protiprávní, neboť v něm nikdo žádný návod na crack Machu nenalezne. I když disassemling kódu není v souladu s právem, nečinil jsem tak v žádném případě proto, abych jakýmkoliv způsobem poškodil autory programu, ale čistě ze studijních důvodů!
Pro extra šťouraly já sám Mach nepoužívám, dal jsem na radu Robokopa a ubírám se cestou EMC (s procesorem na 550 MHz mi stejně nic jiného vyjma investice do upgradu hardwaru nezbývá :-)
Tedy hned napoprvé mne trochu zarazilo, že exe soubor Machu není nikterak chráněn a lze ho poměrně snadno disassemblovat (IDA to zvládla za 2,5 minuty). U podobného softwaru bych očekával ochranu min. na úrovni AsProtect nebo Armadillo. Patrně si autoři jsou jisti tím, že jejich ochrany jsou dostatečně robustní. Další zděšení mne čekalo, když jsem zjistil, že celý modul Mach3 (vyjma driveru) je postaven na mrkvosofťáckém MFC a navíc typickou architekturou Doc/View, dle mého soudu pro řídící program z hlediska rychlosti naprosto nepochopitelná volba. Ale budiž.
Vlastní licence se ukrývá jak všichni majitelé licence vědí v 200 znakovém lic. souboru (podle výpisu jsou 3 - jeden pro Mach, jeden pro Wizardy a jeden pro G100. Data ze souborů se načtou do paměti hned na začátku, ale jsou vyhodnocována v pravidelných intervalech (jak již psal Pupak), ale již se znovu ze souborů nenačítají. Rovněž si myslím, že licence není vztažena k hardwaru,
Vlastní kryptování je poměrně složité a vzhledem k tomu, že po Machu netoužím, jsem se do nějakého důkladnějšího průzkumu nepouštěl (patrně nějaký RSA, SHA nebo co já vím). Koneckonců je pro účely tohoto přízpěvku bezpředmětné.
Každopádně na konci každého dešifrování je porovnání a pak se většinou nastavuje nějaký příznak např. DemoFlag. Zde musím autory Machu pochválit, protože Mach poměrně záhy přijde na to, že ač je DemoFlag v nule (malý patch :-), licenční data tomu neodpovídají a začně jak už mnozí poznali škodit.
Nevím jak ostatní verze, ale tahle škodí tak, že prohazuje piny na motory, což je jistě uznáte krajně destruktivní (a dobře tak těm, co jim to naboří ... jsem zastáncem legálního softwaru). Další způsoby škození jsou např. že zastavuje zpracování programu u každé instrukce Mxxx nebo při spuštění Wizardu už dále program nereaguje na klikání na tlačítka a musí se restartovat. Jistě asi budou patchnutý soft provázet další nepříjemnosti. Vzhledem k tomu, že CNC mašinu zatím nemám hotovou, nedají se ostatní případné "sabotáže" odhalit (to nemyslím vážně, zcela s autory soucítím a jen škoda, že Mach nemá i pin "kick his ass").
Trochu mne mrzí, že Mach nepozná, že běží pod debuggerem. Možná, že ano, ale i po 1 hodině pod Olly to neudělalo nic zlého, i když jsem to moc nezkoumal, ale v kódu nikde není funkce IsDebuggerPresent ani nic jí podobné.
Závěrem bych tvůrcům Machu jen doporučil, aby zvážili větší zabezpečení exe souboru (většina komerčních ochranných systémů má již antidebugg ochrany implementovány a tato ochrana sama je již velmi dokonalá, přičemž má téměř nulový vliv na rychlost programu - je aktivní pouze při zavádění programu do paměti).
A úplným závěrem vzkaz pro ty, kteří snad v tomto příspěvku COSI čekali, nalezl jsem relativně snadný způsob, jak u demoverze deaktivovat omezení počtu řádků (v mé verzi je 500 a 150 pro soustruh) + aktivace wizardů. Nemohu tedy trdit 100%, že na něj Mach nepřijde, ale zhruba po 5 hodinách zatěžkávacích zkoušel bylo vše v normálu a ani usilovné pátrání v kódu po nějakém náznaku kontroly CRC exe souboru nevedlo nikam. Ten způsob, o němž jsem psal, však ze zcela logických důvodů zveřejňovat nehodlám a jak jsem výše předeslal, ani ho nehodlám využít pro vlastní potřebu. Koneckonců 2,6k Czk je směšná částka za stovky hodin úsilí autorů.
A co Robokop?
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22901
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

19. 8. 2008, 11:21

za 2600 se myslim nevyplati to crackovat

klidne napis kolik khodin jsi s tim stravil a podel tim tech 2600 abychom vedeli za kolik pracujes :)

navic by to bylo nefer a na ukor vyvoje machu resp quantumu
kterej jak se zda moc rychle nepokracuje ale bylo by ho treba

jinak neshledavam na clanku nic moc prilis zavadneho
Vsechna prava na chyby vyhrazena (E)
PavelZ
Příspěvky: 356
Registrován: 10. 3. 2008, 11:48
Bydliště: Praha

19. 8. 2008, 12:09

Jednoduchá kalkulace - cca. 15 hodin = 173,50 Kč/hod.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22901
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

20. 8. 2008, 7:52

to ujde
Vsechna prava na chyby vyhrazena (E)
prichy
Příspěvky: 762
Registrován: 29. 7. 2006, 11:05
Bydliště: Sokolov

21. 8. 2008, 1:40

PavelZ: mno, sam asi vis k cemu jsou "tyhle AsProtect-ky" apod, kdyz to je komercni znama zalezitost je to otazkou desitek minut a co ja si pamatuju pak uz mas "cisty kod"......nejaky filegenerator uz by davno byl, ale je to asi dost okrajovy soft proto se tim nikdo moc nezabyva. Kdyz frezkou alespon par korun za mesic treba na urovni amaterske, nevyplati se to, to je fakt.

Ach boze, kdyby tolik stali solidni CAM-y :-(
Prichy
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22901
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

23. 8. 2008, 11:16

s cam softem je to zalostne
kdyz treba ted vidim co kdo nabizi a za kolik, udelal jsem si za posledni rok myslim velmi dobry obrazek o cam softwarech a ceny zavratne rozdilly v uzitne hodnote propastne
celkem nechapu jak je mozne nektere konkretni produkty prodavat za ceny za ktere jsou nabizene
Vsechna prava na chyby vyhrazena (E)
Odpovědět

Zpět na „MACH všech verzí“