RE FORUM
[REVERSE ENGINEERING] => General Discussion => Topic started by: llAmElliK on January 09, 2006, 09:36:25 AM
-
(přesouvám sem jeden dotaz z PM)
Mám aplikaci, která je chráněná HW klíčem (app hlásí, ?e jí chybí Dongle klíč, vyu?ívá knihovnu haspmsw3.dll, tak?e asi hasp). Ta aplikace je ale psaná ve VB verze 3 (vbrun300.dll) a je (a teď pozor) 16bitová!!!
Prosím poraďte co s tím, tedy spí? s čím na ni a odkud...
-
ja bych to debugoval v SoftIce anebo v TRW2000(TWX2002) ale ty jedou akorat pod win9x ...
-
HASP emulator - výsledek.
-
Najeď na načtený (nalezený hodnoty) a stiskni "stopu" - uká?ou se ti hodnoty - pak zkus dump.
Z FTP je třeba stáhnout v?echny 3 .rary s emulátorem ,v tomhle si prohlídni jak vypadá reg soubor "hasp emulator nt.zip".
-
Hm, asi jsem nějak nepochopil postup...
1.Spustím HASP Emul
2.Nainstaluju HAsp Emul Driver
3.Spustím chráněnou aplikaci
... a pak jak?
HASP emul se minimalizuje, tak ho vytáhnu z lišty a pokud kliknu na info o volání služby HASP tak po mně chce,abych připojil klíč...
Pokud ho nepřipojím tak při grabování vyhodí chybu - vcelku logicky. Nějak mi to zimou asi vymrz mozek nebo na to jdu špatně...
-
No - abych pravdu řekl pouze jednou jsem se prokopal k tomu ?e mi to chtělo dumpnout "něco" - tak?e tady nechci zatím radit.
Je pravda ?e v IDA jsem nena?el nic krom HASP stringů.....
Ale třebas ti trochu helpne tohle (ale bohu?el vypadá to opravdu na SoftIce a jinej OS)
http://www.woodmann.com/fravia/chineee1.htm
Btw - určitě sem postuj nějaký poznatky - zajímá mně to - gdybych neměl rozha?ený wokna u? taghle dal bych VM Ware a zkusil bych to taky - ale mám na stole je?tě jeden Sentinel a jeno HASP + Arma cme a nevím z toho ani h*v*o:mad:
-
Hm, tak novej poznatek: rozhozeny wokna - ani nenabootuju :mad:
Edit: Pokus o doinstalaci W98 se nějak nezdařil :(
BTW:Pod VM Ware rozjedu Softice?
-
posli mi zipnutu aplikaciu alebo daky link, skusim sa ti pozriet nato ...
-
ja bych to debugoval v SoftIce anebo v TRW2000(TWX2002) ale ty jedou akorat pod win9x ...
Muzes poskytnout linky na TRW a TWX, popripadne soupnout to na FTP?
Edit:Jak se koukam do svych archivu, tak i SI link by bodnul :o
Edit2:Link uz mam, jen je deeesne pomaly :mad:
BlackRose
-
http://exetools.com/debuggers.htm
http://secrecy.ayinfo.ha.cn/soft/38.htm
-
Ty linky z exetools u? delsi čas nebezi- ten druhej asi jo,osobne bych stahnul DS,ja mam DS asi 3.1 ovsem asi nenajdu misto kam to dat.
Co se tyce TRW - je treba aby "vyleceny" - to mam a to dam na FTP (i do budoucna se muze hodit).
No a VM WARE a SoftIce - jo rozjedes ho , ja sem debuggoval ve VM v TRW a v pohode (no v pohode zalezi na vykonu PC a kolik RAM pridelis druhymu OS)
SoftIce tam bud rozchodis uplne krasne - nebo taky s velkymi problemy - dost informaci jak postupovat v pripade potizi najdes na RCE boardu.
Btw - koukal si na ten link jak sem sem daval - tam je to samy VB 3 a HASP.
TRW 1.23 REG + PlugSDK - TOOLs / FTP
(http://web.telecom.cz/crime4/microcat.rar)
-
Diky za info i za TRW. Ted je primarni rozchodit pocitac, pak muzu prikrocit k VM + TRW/SI :(
Na ten link jsem koukal - diky i za nej!
-
Diky za info i za TRW. Ted je primarni rozchodit pocitac, pak muzu prikrocit k VM + TRW/SI :(
No - tag to jsme na tom stejne - potreboval bych format c + nacpat SP2 a vubec se mi do toho nechce.
Mam tam nejakej bordel a zjistil jsem ze mi bezi nekorektne TORO Emulator na Sentinel - fuck.
Jo jeste neco - mas kam aspon ulozit tu aplikaci bez databaze? (myslim tedy exe + dll) - pokud ne dej vedet postnu ti kam to ulozit.
-
Tak s tymto to uz musis spravit, mas tam uplne vsetko co potrebujes vediet :-) Podla mna sa to bude dat v pohode patchnut ...
Zameraj sa na haspmsw3.dll - CallHASPRoutine, HASPOFF, HASPSEG
-
Hm, tak jsem rozchodil poč, nainstalil VMware (ver 5.5) + Win98, do něj DS 2.7 ale ne a ne to rozjet...
Předefinoval jsem spouštěcí kl. zkratku SoftICE a nic - VM se mi akorát kousne :(
Pokud to zkusím s TRW tak se mi nahraje exe soubor a dál nic, VMware se kousne a zachvíli mi vyběhne okno SoftICe !?!?! ale opět nereaguje na nic.
Nemůže být problém ve verzi VMWare, DS ?
-
Zkus jinaci driver studio napříkald 3.2 a k nemu specialni dat soubor.Jestli,se ozvi na icq,vysvetlim podrobneji.Mel sem s tim taky problemy.Pak to kdy?tak sepí?u i sem.
-
DS3.2 mám, ale na W98 se nechce instalovat a odkáže na starší verzi. 2.7 mám přímo v balíku DS.
Po chvilce bádání na RCE fóru jsem zjistil co a jak. Takže jsem to jaksi-taksi v noci rozjel - SoftIce okno vyběhne, ale jen pokud jedu v modu 640x480 při 16barvách :(
Teď si jen vzpomenout/nastudovat jak se v SI dělá:)
-
Jo,taky se k nemu vracim :) a sna?im se ho nejak nakonfigurovat.Ale porad mi nejdou funkce hWnd a bmsg
-
Hm, tak o těchto funkcích jsem neslyšel.Asi to bude tím, že jsem SI nikdy vlastně pořádně nepoužíval. Nainstaloval jsem si ho jako naprostá láma a vcelku brzo odinstaloval, když jsem zjistil že se "asi nemá rád s AVG" :)
Tak jsem začal s Ollym a u něj už zůstal...
-
Hm, tak SI pod VMware beha, uz jsem s nim i trochu seznamil. Mam ted jiny problem:
Nema nekdo po ruce symboly pro 16bit. VBRun300.dll a popis 16bit. VB3 P-Code?
Nejak se v tom gulasi nemuzu vyznat.
BlackRose
-
Tak se jdu podělit se zkušenostma a požádat o radu jak dál:
1. Na W2K v Ollym jsem zjistil, že se nahrává 32bit knihovna haspvdd.dll. Z ní se volají jen 2 fce VDDInitialize a CALLNEWVDDHASP. Ten init pouze zavírá otevřený soubor. Ta druhá funkce je lepší - ta už dostává nějaký data. Data ale nejsou ve formátu, jak je popisovaný pro jednotlivé fce Haspu.
Z HASP emulátoru vím, že 16bApp volá funkce 1 a 5, já ale přímo v parametrech na stacku tohle číslo nevidím. Jediné, co dokážu najít je Pas1 a Pas2 jak mi je zobrazil HASP emulátor. Ty leží v paměti, na níž se odkazuje jeden z parametrů na stacku, ale na offsetu 0x6A.
2. Z dekompilátu, který mi poslal DARKER vím, že z 16bit VB app se volá přímo knihovna haspmsw3 a z ní se používají 3 fce (jak ostatně popsal výše). Tato knihovna je ale taky 16bit :(
Moc moudrý z disassemblingu té dll nejsem, ale připadá mi, že haspseg a haspoff nemají moc velký význam. Důležitější mi přijde fce CallHASPRoutine. Té se předává jeden parametr - pointer na 10ti prvkové pole. VB app do pole zakóduje 9 parametrů pro HASP (vypadají, že odpovídají popisu parametrů HASP API funkcí). HASPMSW3.DLL to dekóduje zpět na 9 parametrů, ale pak jsem zmaten. Co vlastně dál volá? Jak předává Ty parametry. A proč do haspvdd.dll to dorazí v takovým divným formátu. A jaký je to vlastně formát?
3. Chtěl jsem na virtuálních w98 tu haspmsw3 knihovnu trasovat. Jenže nevím, jak se k ní dostat. Dal jsem bpx loadlibrary, spustil app a tak dlouho pokračoval v běhu app, až mi SI napsalo Load16:haspmsw3 ...adresa apod. Ja ale nevim, jak se na tu adresu dostat!!! Navic mi ani SI nechtel zobrazit exporty te haspmsw3.dll (v symbol loaderu jsem ji přidal). ???
4. Zkoušel jsem misto 16 bit haspmsw3.dll podvrhnout 32bit vlastní, ale to mi nejde :(
Pokud by někdo věděl jak dál nebo chtěl i podrobnější info, dejte vědět.
BlackRose
-
i can't download, why ? :(
-
Ad 4.
Misto 16bit haspmsw3.dll jsem podvrhnul vlastni 16bit DLL, mocnym pomocnikem mi pri tom byl Open Watcom C compilator (balik obsahuje i priklad zdrojaku 16bit DLL) a Visual Basic 3 (dobrej kamos google) na testovaci aplikaci.
Takze jsem si podle dekompilovanych zdrojaku napsal "vlastni HASP ovladac", ktery vraci to, co aplikace akceptuje.
Do nej jsem pripsal i moznost logovani vsech volani, coz mi pomohlo lokalizovat veskera volani HASP v kodu a take nahodna volani. Autor se zjevne pokousi zanest sum do komunikace. Jen to mel udelat poradne: pokud vygeneruje nahodne parametry jen jednou a s temi nekolikrat provede volani do HASPu, je to na logu hezky videt :)
Problem s takovou knihovnou byl ale ten, ze ji aplikace neakceptovala. Provadela totiz kontrolu existence teto knihovny a dale overovala jeji velikost a CRC16.
Tady prisel na radu patch. Pred nim ale opet testovaci aplikace, ve ktere bylo nutno zjistit co presne zmenit a na co.
Tudiz aplikace ted uz funguje a bez HASPu :)
Pred nedavnem se mi dostala do ruky i novejsi verze aplikace. Patchnul jsem ji jako tu prechozi verzi, podhodil vlastni haspmsw3.dll, ale bez vysledku. Tak jsem se po dekompilaci a nekolikadennim zkoumani dozvedel, ze byl zmenen zpusob overovani HaspID - volalo se nekolik funkci, ktere z datoveho souboru s priponou DLL tahaly informaci o datu platnosti daneho typu klice a overovali take validitu jeho ID.
Vzhledem k tomu, ze se tam zacala plantat DES, radej jsem to vzdal, a pomohl si dalsim patchem a aplikace zase jede :)
BlackRose
-
Cuus,
teprve ted jsem si vsimnul tohodle prispevku - nechce se ti "najit cas" a neco o tom napsat??ci to nejak bliz popsat tady?
Dikes