[Wine] Need help with using CMBChine online bank USB token with Wine ( unofficial USB patch-set applied )

Qian Hong fracting at gmail.com
Thu Jan 12 09:33:37 CST 2012


Hello,

I'm looking forward to make a USB token working with Wine. The token
is used by CMBChine online bank ( http://english.cmbchina.com/ ) , and
the Client for the token can be download from
http://121.15.172.132/download/PB/PbSetup60.exe
( http://www.cmbchina.com/cmbpb/v36/pb.htm )

I've follow http://wiki.winehq.org/USB, but get some trouble.

Here is what I've tried:
0. Build and install the patched Wine. ( wine-1.3.36-223-gc7cc9a1 with
USB patch for 1.3.36 )

1. Plug in my USB token, get the bus number and chmod the usb device.
$ lsusb
Bus 001 Device 009: ID 1483:c007
Full information: http://pastebin.com/vBYW0hKS

$ sudo chmod a+rw /dev/bus/usb/001/009
fracting at fracting-redhat:~/wine-git$ ls -l /dev/bus/usb/001/009
crw-rw-rw- 1 root root 189, 8 2012-01-12 21:26 /dev/bus/usb/001/009

2. Install the Client for the USB token:
$ wine PbSetup60.exe

The installer extract two `.dat` file into windows/system32/drivers directory:
.
├── CertClient.dat
├── CMBProtector.dat
└── mountmgr.sys

winedump CertClient.dat show that, it only depends on hal.dll and ntoskrnl.exe
winedump CMBProtector.dat only show hal.dll and ntoskrn.exe depending as well.

winedump -j export show nothing for both.

3. According to the Wine USB wiki, the registry should be modified,
but the installer PbSetup60.exe has set the registry. The mentioned
key/value of registry has a bit different between Windows's and
Wine's, I try to import the mentioned key/value from Windows to Wine,
but the result seems no different, the below steps and logs are
generated without Windows registry, if someone need another log with
Windows registry I'll update one.


4. Start the Client:
$ cd drive_c/windows/system32
$ wine PersonalBankPortal.exe

A login Window will display, the title in Chinese is
"用户登陆(MG6.0.4.8)", means "user logon" in English.


This exe will load {f2eb8999-766e-4bf6-aaad-188d398c0d0b} at runtime,
which is PersonalBankMain.ocx in the same directory.
Unfortunately, PersonalBankMain.ocx depends on hid.dll, according to
Wine USB wiki:
" Drivers which depend on modules other than ntoskrnl.exe, hal.dll,
usbd.sys will not work. "
Any luck?

5.
A WINEDEBUG=+winedevice trace show that, CertClient.dat and
CMBProtector.dat is loaded by PersonalBankPortal.exe :

trace:winedevice:ServiceMain starting service L"CMB8100"
trace:winedevice:ServiceMain starting service L"CMBProtector"
trace:winedevice:load_driver loading driver
L"C:\\windows\\system32\\Drivers\\CertClient.dat"
trace:winedevice:load_driver_module
L"C:\\windows\\system32\\Drivers\\CertClient.dat": relocating from
0x10000 to 0x440000
...
trace:winedevice:load_driver loading driver
L"C:\\windows\\system32\\Drivers\\CMBProtector.dat"
trace:winedevice:load_driver_module
L"C:\\windows\\system32\\Drivers\\CMBProtector.dat": relocating from
0x10000 to 0x550000

6.
A WINEDEBUG=+usbhub trace show:
trace:usbhub:add_usb_devices add 1483:c007

7.
 - Click on the "使用移动证书" tab, which means "using USB token"
 - Choose hardware type from the "硬件类型" form, for me I select `type
23`, "类型23", this type is print on my USB token, works on Windows.

 * My expect result:
There will be a username display below the "硬件类型”/“hardware type"
form, ( above the "用户秘密"/"password" form )

 * Actual result:
Still display "未找到或未插好USB KEY"/"Couldn't find USB KEY"

A   +usbd,+mountmgr,+usbhub,+hid,+hal,+ntoskrnl,+winedevice log is
uploaded to http://pastebin.com/YgChQbLM

Additional information:
 - According to [1],some years ago, a freebsd hacker (
https://www.delphij.net/ ) found, the old version of CertClient.dat
and CMBProtector.dat is exactly the same with something from winio
,but I'm not sure about the latest version.
 - This kind of USB token is so called driver-free, on Windows, users
only need to install the Client and the USB token will work, while
other types of USB token from CMBChina online bank need not only the
Client but also an additional driver. Is there any luck to get this
kind of USB token working with Wine?

According to the above steps and logs, did I miss anything important?

It's difficult for me to get further with my limited knowledge at this
time, any suggestion is great appreciated.
Thank you and best wishes!

[1] http://news.csdn.net/n/20061201/98696.html

-- 
Regards,
Qian Hong

-
Sent from Ubuntu
http://www.ubuntu.com/



More information about the wine-users mailing list