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