http://bugs.winehq.org/show_bug.cgi?id=16697
Summary: HyperChem 8.0.x's licensing system fails to properly generate a 'locking code,' preventing program usage Product: Wine Version: 1.1.11 Platform: PC URL: http://www.hyper.com/Download/tabid/357/Default.aspx OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: d.c.ddcc@gmail.com
HyperChem 8.0.6 Evaluation requires the user to enter a provided license code in order to generate a locking code, which is sent via email to the authors for a trial license key. However, a proper locking code (0-0) isn't generated, thus prohibiting program usage.
Reproduce: 1. Download HyperChem 8.0.6. 2. Copy mfc40.dll from a Windows installation. 3. Launch the setup and pick "standalone," then "software-license." 4. Use the serial number provided on their website. 5. Launch chem.exe; it will ask you to launch the activator, which generates a locking code of 0-0.
http://bugs.winehq.org/show_bug.cgi?id=16697
--- Comment #1 from ddcc d.c.ddcc@gmail.com 2008-12-31 18:52:37 --- Created an attachment (id=18357) --> (http://bugs.winehq.org/attachment.cgi?id=18357) WINEDEBUG=+relay wine CHEM.exe &> log
The licensing portion is made by Rainbow Technologies, which was acquired by SafeNet in 2003. chem.exe calls ACTIVATOR.EXE, located in windows/Rainbow Technologies/Client Activator/2.0/English
http://bugs.winehq.org/show_bug.cgi?id=16697
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=16697
geovanicogoy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #2 from geovanicogoy@gmail.com 2010-02-25 17:05:28 --- *** This bug has been confirmed by popular vote. ***
http://bugs.winehq.org/show_bug.cgi?id=16697
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation
--- Comment #3 from Austin English austinenglish@gmail.com 2012-06-24 22:22:52 CDT --- Still present in 1.5.7. fixme:winsock:convert_socktype_w2u unhandled Windows socket type 5
http://bugs.winehq.org/show_bug.cgi?id=16697
--- Comment #4 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to comment #3)
Still present in 1.5.7. fixme:winsock:convert_socktype_w2u unhandled Windows socket type 5
The application attempts to create a SPX protocol socket, but that is not supported in linux kernel. Anyway I did some hacks and let it create the socket faking it as an IPX socket, it only bound the socket and read it's address, then closed the socket. In Windows it seems to do the same only, so hopefully that is not the cause.
Still in wine 1.7.11.
https://bugs.winehq.org/show_bug.cgi?id=16697
--- Comment #5 from Bruno Jesus 00cpxxx@gmail.com --- The problem is still present in 1.7.38, no idea what it could be, no relevant info in standard output.
https://bugs.winehq.org/show_bug.cgi?id=16697
--- Comment #6 from Bruno Jesus 00cpxxx@gmail.com --- Still in 2.0-rc6.
https://bugs.winehq.org/show_bug.cgi?id=16697
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |DUPLICATE Status|NEW |RESOLVED CC| |focht@gmx.net Component|-unknown |programs Summary|HyperChem 8.0.x's licensing |HyperChem 8.0.x's licensing |system fails to properly |system fails to properly |generate a 'locking code,' |generate a 'locking code' |preventing program usage |(volume/fs serial for "c:" | |must be non-zero for | |license/machine id | |generator)
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming, still present.
Spoiler: It's bug 17823
--- snip --- $ pwd /home/focht/.wine/drive_c/Hyper80/Program
$ WINEDEBUG=+seh,+relay wine ./chem.exe >>log.txt 2>&1 ... 002b:Call user32.MessageBoxA(00000000,007cd1a0 "No license was found for this application. Would you like to invoke the SentinelLM Express Activator in order to obtain a license?",007bb168 "Activate License",00000024) ret=007d513a ... 002b:Call KERNEL32.CreateProcessA(00000000,003eb160 "C:\windows\Rainbow Technologies\Client Activator\2.0\English\ACTIVATOR.EXE @"C:\users\focht\Temp\CaActiva.rsp"",00000000,00000000,00000001,00000000,00000000,003eb265 "C:\Hyper80\Program",0032f3b4,0032f3f8) ret=003e130e ... 002b:Ret KERNEL32.CreateProcessA() retval=00000001 ret=003e130e --- snip ---
Content of the response file for the activator:
--- snip --- -T:0 -D:-1 -E:-1 -M:-1 -C:"C:\Hyper80\Program\HC80-Standalone.rac" --- snip ---
Keep a backup copy of the response file, it gets deleted on each run.
Manually running the activator:
--- snip --- $ pwd /home/focht/.wine/drive_c/windows/Rainbow Technologies/Client Activator/2.0/English
$ WINEDEBUG=+seh,+relay,+snoop,+mountmgr,+ntdll,+server wine ./ACTIVATOR.EXE @CaActiva.rsp >>log.txt 2>&1 ... 0009:Call KERNEL32.LoadLibraryA(017b9398 "C:\users\focht\Temp\CAFILES\lsapiw32.dll") ret=0040c9b3 ... 0009:Ret KERNEL32.LoadLibraryA() retval=01c80000 ret=0040c9b3 0009:Call KERNEL32.GetProcAddress(01c80000,00495399 "VLSinitialize") ret=0040d593 0009:Ret KERNEL32.GetProcAddress() retval=01d1031f ret=0040d593 0009:CALL LSAPIW32.VLSinitialize(<unknown, check return>) ret=0040d59b ... 0009:Call ws2_32.WSAStartup(00000101,0032f068) ret=01c9bd97 0009:Ret ws2_32.WSAStartup() retval=00000000 ret=01c9bd97 0009:RET LSAPIW32.VLSinitialize() retval=00000000 ret=0040d59b ... 0009:Call KERNEL32.GetProcAddress(01c80000,004953a7 "VLSerrorHandle") ret=0040d5c9 0009:Ret KERNEL32.GetProcAddress() retval=01d10143 ret=0040d5c9 0009:CALL LSAPIW32.VLSerrorHandle(<unknown, check return>) ret=0040d5d0 0009:RET LSAPIW32.VLSerrorHandle() retval=00000000 ret=0040d5d0 0009:Call KERNEL32.GetProcAddress(01c80000,004953c1 "VLSinitMachineID") ret=0040d635 0009:Ret KERNEL32.GetProcAddress() retval=01d102ec ret=0040d635 0009:CALL LSAPIW32.VLSinitMachineID(<unknown, check return>) ret=0040d63c 0009:RET LSAPIW32.VLSinitMachineID() retval=00000000 ret=0040d63c 0009:Call KERNEL32.GetProcAddress(01c80000,004953d2 "VLSgetMachineID") ret=0040d673 0009:Ret KERNEL32.GetProcAddress() retval=01d10220 ret=0040d673 0009:CALL LSAPIW32.VLSgetMachineID(00000004,0032f070,0032f190) ret=0040d67f ... 0009:Call KERNEL32.GetLogicalDriveStringsA(00000400,0032ec0c) ret=01c9b77d ... 0009:Ret KERNEL32.GetLogicalDriveStringsA() retval=0000000c ret=01c9b77d 0009:Call KERNEL32.GetDriveTypeA(0032ec0c "C:\") ret=01c9b793 ... 0009:Ret KERNEL32.GetDriveTypeA() retval=00000003 ret=01c9b793 ... 0009:Call KERNEL32.GetVolumeInformationA(0032ec0c "C:\",00000000,00000000,0032f00c,00000000,00000000,00000000,00000000) ret=01c9b7a9 ... 0009: get_handle_fd( handle=0088 ) 0009: get_handle_fd() = BAD_DEVICE_TYPE { type=0, cacheable=1, access=00000000, options=00000000 } ... 0009: ioctl( code=00024000, async={handle=0088,event=0000,iosb=0032d718,user=019d8a18,apc=00000000,apc_context=00000000}, in_data={} ) ... 0025:trace:mountmgr:harddisk_ioctl ioctl 24000 insize 0 outsize 804 ... 0009: select() = KERNEL_APC { call={APC_ASYNC_IO,user=019d8a18,sb=0032d718,status=INVALID_DEVICE_REQUEST}, apc_handle=0090, context={} } ... 0009:trace:ntdll:NtSetInformationFile (0x88,0x32d6b0,0x32d6a8,0x00000008,0x0000000e) ... 0009:Ret ntdll.NtSetInformationFile() retval=c00000cb ret=7b013e1a ... 0009:Call ntdll.NtSetInformationFile(00000088,0032ce80,0032ce78,00000008,0000000e) ret=7b013e1a 0009:trace:ntdll:NtSetInformationFile (0x88,0x32ce80,0x32ce78,0x00000008,0x0000000e) 0009:Ret ntdll.NtSetInformationFile() retval=c00000cb ret=7b013e1a 0009:Call ntdll.RtlNtStatusToDosError(c00000cb) ret=7b013e59 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000042 ret=7b013e59 0009:trace:ntdll:FILE_CreateFile handle=0x32d700 access=80100000 name=L"\??\C:\.windows-serial" objattr=00000040 root=(nil) sec=(nil) io=0x32d710 alloc_size=(nil) attr=00000000 sharing=00000003 disp=1 options=00000020 ea=(nil).0x00000000 0009:warn:ntdll:FILE_CreateFile L"\??\C:\.windows-serial" not found (c0000034) ... 0009:Ret KERNEL32.GetVolumeInformationA() retval=00000001 ret=01c9b7a9 ... 0009:Call KERNEL32.GetDriveTypeA(0032ec10 "D:\") ret=01c9b793 ... 0009:Ret KERNEL32.GetDriveTypeA() retval=00000005 ret=01c9b793 0009:Call KERNEL32.GetDriveTypeA(0032ec14 "Z:\") ret=01c9b793 ... 0009:Ret KERNEL32.GetDriveTypeA() retval=00000003 ret=01c9b793 ... 0009:Call KERNEL32.GetVolumeInformationA(0032ec14 "Z:\",00000000,00000000,0032f00c,00000000,00000000,00000000,00000000) ret=01c9b7a9 ... 0009: ioctl( code=00024000, async={handle=0088,event=0000,iosb=0032d718,user=019d8a18,apc=00000000,apc_context=00000000}, in_data={} ) 0009: ioctl() = NOT_SUPPORTED { wait=0000, options=00000060, out_data={} } 0009:fixme:ntdll:server_ioctl_file Unsupported ioctl 24000 (device=2 access=1 func=0 method=0) ... 0009:trace:ntdll:FILE_CreateFile handle=0x32d700 access=80100000 name=L"\??\Z:\.windows-serial" objattr=00000040 root=(nil) sec=(nil) io=0x32d710 alloc_size=(nil) attr=00000000 sharing=00000003 disp=1 options=00000020 ea=(nil).0x00000000 0009:warn:ntdll:FILE_CreateFile L"\??\Z:\.windows-serial" not found (c0000034) ... 0009:Ret KERNEL32.GetVolumeInformationA() retval=00000001 ret=01c9b7a9 0009:RET LSAPIW32.VLSgetMachineID() retval=00000000 ret=0040d67f 0009:Call KERNEL32.GetProcAddress(01c80000,004953e2 "VLSmachineIDtoLockCode") ret=0040d6bb 0009:Ret KERNEL32.GetProcAddress() retval=01d10363 ret=0040d6bb 0009:CALL LSAPIW32.VLSmachineIDtoLockCode(0032f070,00000000,0032f194) ret=0040d6c7 0009:RET LSAPIW32.VLSmachineIDtoLockCode() retval=00000000 ret=0040d6c7 ... --- snip ---
The lock code is generated from the machine id which is derived from the volume serial of the first fixed drive found (usually 'C:'). You can test by yourself by setting it to non-zero value or using Wine-Staging.
I will refine bug 17823 summary line to be more generic. It's already "staged" and a collector.
$ sha1sum hyper8010.zip e3d3cad9b233180213b8ec838d090f6b87126e8e hyper8010.zip
$ du -sh hyper8010.zip 179M hyper8010.zip
$ wine --version wine-5.6-193-g59987bc9ec
Regards
*** This bug has been marked as a duplicate of bug 17823 ***
https://bugs.winehq.org/show_bug.cgi?id=16697
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=16697
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.hyper.com/Downlo |https://web.archive.org/web |ad/tabid/357/Default.aspx |/20200419234422/http://www. | |hyper.com/Portals/0/Downloa | |ds/Products/hyper8010.zip