Wednesday, August 13, 2014

How to install HASP MultiKey USB Dongle Emulator on Windows 7 64 bit

Hello everyone, yesterday my friend asked me to help him to eliminate a HASP dongle from his PC. His PC was installed Strand7 and it needs a USB dongle which has type HASP to work exactly. I accepted his request to help him. I noticed that his PC was installed Windows 7 64 bit Professional.
I searched on Internet and read many web pages regarding dongle emulator. I found a emulator named EDGEHASP2007 but unfortunately it didn't work on Windows 7 64 bit. Then, I continued searching on Internet and I found HASPHL2010 but it is not free so I didn't try it. I thought I will give up but I still hope I can find a free emulator. Fortunately, I found this page describing some steps for installing MultiKey emulator but it noted that you must re-install your software on Windows XP 32 bit after which you must use some tools to dump HASP key and create registry file. Because I didn't have Windows XP I cannot follow this method. I searched on Internet again and I found this tool [Universal HASP SRM / HL / 4 / Hardlock Dongle Dumper v.1.3]. It can dump HASP key and create registry file for you altogether. It's a awesome tool made by rengteam. Great thanks to rengteam. Finally, I managed to install MultiKey USB Dongle Emulator.

Now, I want to write some steps here:

Note: I cloned successfully all types of dongles with MultiKey Emulator. The most important step is that you must generate exact registry file. If you have any problem, please drop a comment.

1. Download necessary tools
Download necessary tools here

For dongle Sentinel SuperPro/UltraPro, please download this additional tool

2. Get dongle password
If your dongle type is Sentinel SuperPro/UltraPro, please skip this step!
The following steps are original here, please follow them to get your dongle password. In my case, dongle password is 725F:583A

Start dumper

Run HASPHL2010.exe on machine that has latest version of Aladdin HASP HL dongle drivers installed and original parallel port or USB dongle connected to computer.

Service installation

HASP/Hardlock dumper and emulator designed as low level kernel mode driver and requires Administrators privileges to be installed.
When you start HASPHL2010.exe for a first time you'll see following window.
Emulate HASP dongle
Press "INSTALL" button and if installation was successful Driver status window will be changed to "Status : driver is installed"

Starting service

Now you need to open "Emulator" tab.
HASP HL dongle emulator
Then you press "Start Service" button. If everything is ok you'll see
HASP HL dongle driver

Running your software

To find your key it is necessary to start protected software.

Reading your key.

Open "DUMPER" tab.
HASP HL dongle dumper
HASP/HL Dongles window shows logged HASP dongle passwords. In this case, dongle password is 3C39:25A0
3. Create registry file
Now that you already got your dongle password. It's time to generate registry file.
If your dongle is Sentinel SuperPro/UltraPro, please use SSP2MK_1.2 to generate registry file.

If your dongle is HASP or HASP HL then you need to use RTDumperGUI to generate registry file. Please carefully read readme.txt file before doing. For HASP (or HASP HL) dongle you must input two parts of your dongle password into two contiguous textboxes. For example, my dongle password is 725F:583A so I must input 725F into the first textbox and 583A into the second textbox. 
In my case, I got registry file RTDumperGUI/hasp_725F583A/725F583A___.reg. You should rename it to 725F583A.reg and then open it and replace [HKEY_LOCAL_MACHINE\System\CurrentControlSet...] with

Now we are ready to eliminate the dongle

4. Install MultiKey USB Dongle Emulator
- Register 725F583A.reg into Registry by right click on it and select Merge

- Click start button , type uac, then press Enter. It will show User Account Control Settings, please decrease UAC level as follows:

- Install MultiKey32 or MultiKey64 (it depends on your OS, for example Windows 7 32 bit, Windows 7 64 bit). If your OS is 64 bit, then open folder MultiKey64 and do as follows:

You wait for a while, you will see a popup asking you to install a unsigned driver. You must accept to install it anyway. And then, you wait for finishing driver installation successfully.

5. Sign driver by [Driver Signature Enforcement Overrider]

You execute dseo13b.exe and do as follows:

Select [Enable Test Mode] and click Next button

Select [Sign a System File] and click Next button

Find [C:\Windows\System32\drivers\multikey.sys] in your OS, it must exist in your OS. If it doesn’t exist, please reinstall MultiKey again.

Input in the textbox [C:\Windows\System32\drivers\multikey.sys], click OK

Select [Exit] and click Next button to exit

Now you have to restart your PC, hold down F8 key on your keyboard, you will see the Advanced Boot Options screen, you select [Disable Driver Signature Enforcement] as follows:

Press Enter to boot Windows. After Windows is booted it will install the unsigned driver automatically. You should verify the new driver as follows:
Press key combination Windows + R, type devmgmt.msc, press Enter. It should show

Now you can start your protected software and enjoy it. From now you will don't have to remember to bring/plug USB dongle.

Good luck :)

Compile EDB (Evan's Debugger) 32 bit version on Ubuntu 64 bit

These are main steps for compiling EDB (Evan's Debugger) 32 bit version on Ubuntu 64 bit

1. Download tarball
Download tarball here
cd ~/Downloads
tar -zxf debugger-0.9.20.tgz
mv debugger debugger-0.9.20
cd debugger-0.9.20/

2. Install necessary libraries:
a. install GNU libc6 i386
sudo apt-get install libc6:i386 libc6-dev:i386

b. install qt i386 libraries
sudo apt-get install \
libqt4-core:i386 \
libqt4-dbus:i386 \
libqt4-declarative:i386 \
libqt4-designer:i386 \
libqt4-dev:i386 \
libqt4-dev-bin:i386 \
libqt4-help:i386 \
libqt4-network:i386 \
libqt4-opengl:i386 \
libqt4-opengl-dev:i386 \
libqt4-qt3support:i386 \
libqt4-script:i386 \
libqt4-scripttools:i386 \
libqt4-sql:i386 \
libqt4-sql-mysql:i386 \
libqt4-sql-sqlite:i386 \
libqt4-svg:i386 \
libqt4-test:i386 \
libqt4-xml:i386 \
libqtcore4:i386 \
libqtdbus4:i386 \
libqtgui4:i386 \
libqtwebkit-dev:i386 \
libqtwebkit4:i386 \
qt4-default:i386 \
qt4-designer:i386 \
qt4-dev-tools:i386 \
qt4-qmake:i386 \
qtchooser:i386 \

3. Create symlink to 32 bit headers
cd /usr/include
sudo mv sys sys_x86-64
sudo ln -s i386-linux-gnu/sys .

4. Modify qmake files
a. modify file src/ as follows:

--- a/src/src.proq
+++ b/src/
@@ -196,20 +196,23 @@ unix {
                INCLUDEPATH += $$LEVEL/include/os/unix/osx /opt/local/include
-       macx {
-               VPATH       += arch/x86_64 $$LEVEL/include/arch/x86_64
-               INCLUDEPATH += arch/x86_64 $$LEVEL/include/arch/x86_64
-       }
-       !macx:contains(QMAKE_HOST.arch, x86_64) {
-               VPATH       += arch/x86_64 $$LEVEL/include/arch/x86_64
-               INCLUDEPATH += arch/x86_64 $$LEVEL/include/arch/x86_64
-       }
-       !macx:contains(QMAKE_HOST.arch, i[3456]86) {
-               VPATH       += arch/x86 $$LEVEL/include/arch/x86
-               INCLUDEPATH += arch/x86 $$LEVEL/include/arch/x86
-       }
+    VPATH       += arch/x86 $$LEVEL/include/arch/x86
+    INCLUDEPATH += arch/x86 $$LEVEL/include/arch/x86
+       #macx {
+       #       VPATH       += arch/x86_64 $$LEVEL/include/arch/x86_64
+       #       INCLUDEPATH += arch/x86_64 $$LEVEL/include/arch/x86_64
+       #}
+       #!macx:contains(QMAKE_HOST.arch, x86_64) {
+       #       VPATH       += arch/x86_64 $$LEVEL/include/arch/x86_64
+       #       INCLUDEPATH += arch/x86_64 $$LEVEL/include/arch/x86_64
+       #}
+       #
+       #!macx:contains(QMAKE_HOST.arch, i[3456]86) {
+       #       VPATH       += arch/x86 $$LEVEL/include/arch/x86
+       #       INCLUDEPATH += arch/x86 $$LEVEL/include/arch/x86
+       #}
        *-g++* | *-clang* {
                QMAKE_CXXFLAGS_DEBUG += -g3

b. modify file plugins/plugins.pri as follows:

--- a/plugins/plugins.pri
+++ b/plugins/plugins.pri
@@ -28,21 +28,24 @@ unix {
        freebsd-* : INCLUDEPATH += $$LEVEL/include/os/unix/freebsd
        macx-*    : INCLUDEPATH += $$LEVEL/include/os/unix/osx /opt/local/include
-       # arch include paths
-       macx {
-               INCLUDEPATH += $$LEVEL/include/arch/x86_64
-               include(plugins-x86_64.pri)
-       }
+    INCLUDEPATH += $$LEVEL/include/arch/x86
+    include(plugins-x86.pri)
-       !macx:contains(QMAKE_HOST.arch, x86_64) {
-               INCLUDEPATH += $$LEVEL/include/arch/x86_64
-               include(plugins-x86_64.pri)
-       }
-       !macx:contains(QMAKE_HOST.arch, i[3456]86) {
-               INCLUDEPATH += $$LEVEL/include/arch/x86
-               include(plugins-x86.pri)
-       }
+       # arch include paths
+       #macx {
+       #       INCLUDEPATH += $$LEVEL/include/arch/x86_64
+       #       include(plugins-x86_64.pri)
+       #}
+       #!macx:contains(QMAKE_HOST.arch, x86_64) {
+       #       INCLUDEPATH += $$LEVEL/include/arch/x86_64
+       #       include(plugins-x86_64.pri)
+       #}
+       #
+       #!macx:contains(QMAKE_HOST.arch, i[3456]86) {
+       #       INCLUDEPATH += $$LEVEL/include/arch/x86
+       #       include(plugins-x86.pri)
+       #}
 win32 {

5. Compile and install
cd ~/Downloads/debugger-0.9.20
qmake -spec linux-g++-32
sudo make INSTALL_ROOT=/opt/debugger-0.9.20_x86 install
sudo cp -r doc /opt/debugger-0.9.20_x86

6. Create .desktop file
sudo vim /usr/share/applications/edb_x86.desktop
[Desktop Entry]
GenericName=edb debugger x86
Comment=edb debugger x86

That's all
Good luck :)