RE FORUM

[REVERSE ENGINEERING] => General Discussion => Topic started by: llAmElliK on January 09, 2006, 09:36:25 AM

Title: 16 bit VB Dongle Apz
Post 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...
Title: 16 bit VB Dongle Apz
Post by: Z!L0G80 on January 09, 2006, 11:35:24 AM
ja bych to debugoval v SoftIce anebo v TRW2000(TWX2002) ale ty jedou akorat pod win9x ...
Title: 16 bit VB Dongle Apz
Post by: llAmElliK on January 09, 2006, 11:53:13 AM
HASP emulator - výsledek.
Title: 16 bit VB Dongle Apz
Post by: llAmElliK on January 09, 2006, 11:55:26 AM
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".
Title: 16 bit VB Dongle Apz
Post by: BlackRose on January 09, 2006, 02:12:39 PM
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ě...
Title: 16 bit VB Dongle Apz
Post by: llAmElliK on January 09, 2006, 07:20:43 PM
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:
Title: 16 bit VB Dongle Apz
Post by: BlackRose on January 11, 2006, 08:18:40 AM
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?
Title: 16 bit VB Dongle Apz
Post by: DARKER on January 11, 2006, 08:43:44 AM
posli mi zipnutu aplikaciu alebo daky link, skusim sa ti pozriet nato ...
Title: 16 bit VB Dongle Apz
Post by: BlackRose on January 11, 2006, 10:14:30 AM
Quote from: Z!L0G80
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
Title: 16 bit VB Dongle Apz
Post by: Z!L0G80 on January 11, 2006, 11:32:03 AM
http://exetools.com/debuggers.htm
http://secrecy.ayinfo.ha.cn/soft/38.htm
Title: 16 bit VB Dongle Apz
Post by: llAmElliK on January 11, 2006, 12:27:38 PM
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)
Title: 16 bit VB Dongle Apz
Post by: BlackRose on January 11, 2006, 12:57:35 PM
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!
Title: 16 bit VB Dongle Apz
Post by: llAmElliK on January 11, 2006, 01:04:53 PM
Quote from: BlackRose
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.
Title: 16 bit VB Dongle Apz
Post by: DARKER on January 11, 2006, 07:48:55 PM
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
Title: Re: 16 bit VB Dongle Apz
Post by: BlackRose on February 26, 2006, 05:25:21 PM
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 ?
Title: Re: 16 bit VB Dongle Apz
Post by: Master on February 27, 2006, 07:14:11 AM
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.
Title: Re: 16 bit VB Dongle Apz
Post by: BlackRose on February 27, 2006, 07:51:16 AM
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á:)
Title: Re: 16 bit VB Dongle Apz
Post by: Master on February 27, 2006, 03:23:44 PM
Jo,taky se k nemu vracim :) a sna?im se ho nejak nakonfigurovat.Ale porad mi nejdou funkce hWnd a bmsg
Title: Re: 16 bit VB Dongle Apz
Post by: BlackRose on February 28, 2006, 07:27:03 AM
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...
Title: Re: 16 bit VB Dongle Apz
Post by: BlackRose on March 08, 2006, 12:58:03 PM
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
Title: Re: 16 bit VB Dongle Apz
Post by: BlackRose on March 10, 2006, 11:29:13 AM
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
Title: Re: 16 bit VB Dongle Apz
Post by: arox on December 09, 2006, 09:45:51 PM
i can't download, why ? :(
Title: Re: 16 bit VB Dongle Apz
Post by: BlackRose on January 31, 2007, 10:17:21 AM
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
Title: Re: 16 bit VB Dongle Apz
Post by: llAmElliK on February 18, 2007, 01:21:30 PM
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