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 :)

Friday, March 21, 2014



Và cuốn sách mà mình muốn đề cập tới là cuốn Goals của tác giả Brian Tracy. Đây là cuốn sách tuyệt vời có thể giúp các bạn thiết kế một cuộc đời như mong muốn.

Đây là bìa sách

Link download:

Vì mình biết rằng hầu hết các bạn vẫn chưa đọc được cuốn sách này bằng Tiếng Anh, cho nên mình muốn tóm lượt lại nội dung chính của nó như sau. Các bạn cố gắng phấn đấu học cho xong phần 1, sau đó học tiếp phần 2 để đọc được cuốn sách như mình nhé.

Tác giả Brian Tracy có nói rằng : You become what you think about, most of the time. Nếu như bạn luôn luôn nghĩ về những mục tiêu của mình, những điều các bạn muốn, và làm thế nào để đạt được những điều đó, không sớm thì muộn, giấc mơ của bạn cũng sẽ trở thành hiện thực. Ngược lại, những điều mà bạn không muốn, những lo lắng, bệnh tật, đau khổ….cũng sẽ trở thành hiện thực nếu như bạn suốt ngày chỉ nghĩ về nó. Ngoài ra, có một điều vô cùng quan trọng: nếu như bạn không suy nghĩ về những thứ mà bạn muốn thì bộ óc sẽ tự động hướng sự tập trung vào những thứ khác mà bạn không hề mong muốn.

Vì vậy, để không bị lạc hướng trong cuộc sống, nay muốn cái này, mai muốn cái khác, điều cần thiết là các bạn phải biết tự thiết lập mục tiêu và kế hoạch cho cuộc đời mình. Với mục tiêu rõ ràng và một bản kế hoạch cụ thể, bạn sẽ luôn biết được rằng mình sẽ đi về đâu trong cuộc đời này. Và đây là tất cả những gì mà tác giả Brian Tracy đề cập tới trong cuốn sách của mình.

Để có thể thiết lập được mục tiêu và một bản kế hoạch hành động cụ thể đi kèm là một công việc đòi hỏi rất nhiều sự chính xác và tỉ mỉ. Chính vì vậy nên không phải ai cũng biết cách lập một bản kế hoạch cho riêng mình. Do đó, ngày hôm nay mình sẽ hướng dẫn các bạn cách làm thế nào để có thể tự lập được cho mình một bản kế hoạch hoàn hảo nhất.

Bước 1 : Các bạn phải xác định chính xác được đâu là điều mình thực sự muốn trong từng lĩnh vực cụ thể

- Hãy chắc chắn rằng đây phải là những thứ mà bạn thật sự khao khát, thật sự thèm muốn. Các bạn hãy tưởng tượng rằng bạn có một cây đũa thần mà khi vung lên mọi giấc mơ của bạn đều thành hiện thực. Lúc đó, bạn sẽ mơ ước những gì ? Bạn muốn cuộc sống của mình như thế nào, ở đâu, với ai…Cứ để trí óc bạn bay bổng thỏa thích, đừng giới hạn trí tưởng tượng của mình, bởi nếu như bạn không thể mơ thì điều đó cũng đồng nghĩa với việc bạn sẽ không thể có được điều điều gì cả.

- Mọi thứ phải thật cụ thể, có nghĩa là các bạn phải tưởng tượng được chính xác điều mình muốn trong đầu. Ví dụ như bạn mơ ước có một ngôi nhà tuyệt đẹp. Lúc này bạn phải biết được ngôi nhà mình hình dáng như thế nào, màu sắc ra sao, bao nhiêu tầng, bao nhiều phòng, đồ nội thất kiểu gì, cách bố trí từng phòng… Nói tóm gọn là càng chính xác thì càng tốt. Brian Tracy có nói rằng ông và vợ ông đã tưởng tượng ra một ngôi nhà hoàn hảo với 42 chi tiết cụ thể liên tục trong vòng 3 năm trước khi tất cả trở thành hiện thực. Bạn cũng nên làm như vậy nếu muốn hiện thực hóa giấc mơ của mình.

- Những điều mà bạn mong muốn đó phải xuất phát từ chính bản thân bạn chứ không phải điều mà bạn muốn làm để làm hài lòng người khác hay điều mà người khác đặt ra cho bạn. Hãy nhớ rằng chỉ khi nào mọi thứ xuất phát từ bản thân bạn khi đó bạn mới có đủ sức mạnh và lòng kiên trì để vượt qua mọi khó khăn trên con đường chinh phục nó.

- Cuối cùng, những điều mà bạn mong muốn phải phù hợp với điều kiện thực tế của bản thân bạn cũng như môi trường xung quanh. Hãy luôn giữ đôi chân trên mặt đất và thành thật với bản thân mình. Dù ở trên mình có nói là các bạn có thể mơ ước bất cứ điều gì nhưng điều đó không có nghĩa là nó viển vông và quá xa rời thực tế. Đơn cử như việc bạn mong muốn chấm dứt chiến tranh trên toàn thế giới hay kiếm được 1 triệu đô la trong vòng 6 tháng. Những ước muốn như vậy chỉ khiến bạn thêm mất niềm tin và nhanh chóng bỏ cuộc khi bạn nhận ra là mình ngày càng cách xa điều mình muốn. Vì vậy, hãy cẩn thận.

Bước 2: Sau khi đã biết được điều mình muốn trong từng lĩnh vực cụ thể ở bước 1, việc tiếp theo là các bạn thiết lập các mốc thời gian cần thiết để đạt được những mục tiêu đó. Nếu thiết lập mục tiêu nhưng lại không có thời gian cụ thể để hoàn thành nó, bạn sẽ mãi mãi không bao giờ đạt được điều mình muốn. Một mục tiêu mà không có thời gian cụ thể đi kèm thì giống như một viên đạn nhưng lại không có thuốc súng ở bên trong vậy. Sẽ không có gì thôi thúc bạn để bạn nỗ lực hết sức mình ngày này qua ngày khác.

Những mốc thời gian cụ thể sẽ giúp kiểm soát được lịch trình của mình, điều chỉnh mọi hoạt động sao cho tất cả luôn đi đúng theo những gì mà bạn đã đề ra. Bạn sẽ luôn luôn biết được rằng mình đang ở đâu trên con đường chinh phục những giấc mơ.

Bước 3: Xác định chính xác tình trạng hiện thời của bạn. Nếu như bạn muốn tới được nơi mà mình muốn tới, thì bạn phải biết đích xác được rằng mình đang ở đâu, từ đó bạn mới biết cách làm thế nào để đi tới đó. Bạn phải biết là hiện giờ mình đang có những gì, điều kiện và hoàn cảnh của mình ra sao, năng lực của mình đến đâu… Giống như việc bạn muốn giảm cân, bạn phải biết rằng hiện mình đang nặng bao nhiêu kg rồi từ đó sử dụng con số này để đo lường sự tiến triển của bạn. Nếu bạn muốn trở thành con người mà bạn mơ ước, có được những thứ mà bạn hằng mong, hãy luôn luôn thành thật với chính bản thân mình.

Bước 4 : Sắp xếp những điều mà bạn mong muốn theo thứ tự ưu tiên sao cho phù hợp với vị trí hiện giờ của bạn. Thường các mục tiêu của bạn sẽ liên quan đến nhau, ví dụ như có những mục tiêu chỉ có thể hoàn thành sau khi các mục tiêu khác đã hoàn thành trước đó.

Bước 5 : Xác đinh tất cả những việc bạn cần phải làm để có thể đạt được từng mục tiêu cụ thể. Hãy đối chiếu từng mục tiêu mà bạn mong muốn với vị trí hiện giờ của bạn, từ đó bạn sẽ có cái nhìn đầy đủ nhất về những thứ mà bạn còn thiếu để có thể biến ước mơ thành sự thật. Ví dụ như nếu bạn muốn thành tỉ phú năm 30 tuổi thì bạn cần phải có khả năng gì đặc biệt, phải học thêm kĩ năng gì, phải giao du kết bạn với ai….. Một lần nữa, bạn càng chi tiết và tỉ mỉ bao nhiêu thì việc bạn đạt được mục tiêu của mình càng dễ dàng bấy nhiêu

Bước 6 : Xác định chính xác những vật cản ngăn cách bạn tiến tới mục tiêu của mình. Thực tế những gì ngăn cản bạn có được những thứ bạn muốn 80% đến từ chính bên trong con người bạn. Vì vậy, hãy luôn luôn xem xét từ chính bản thân mình. Nó có thể là một thói xấu nào đó khiến bạn không thể bộc lộ hết khả năng, hay một nỗi sợ từ xa xưa khiến bạn luôn chần chừ. Bất kể đó là gì, hãy thành thật với chính mình.

Bước 7 : Cuối cùng, sắp xếp tất cả những việc bạn cần phải làm thành một bản kế hoạch hành động cụ thể: Việc nào bạn sẽ làm trước, việc nào bạn sẽ làm sau; việc nào quan trọng nhất, việc nào ít quan trọng hơn. Đây sẽ là tấm bản đồ theo bạn cho trong suốt cuộc hành trình. Một bản kế hoạch được lên chi tiết và kĩ lưỡng sẽ tiết kiệm cho bạn rất nhiều thời gian và tiền bạc.

Trên đây là 7 bước giúp bạn thiết lập một bản kế hoạch hoàn hảo nhất. Điều cuối cùng mà bạn cần phải làm là dán bản kế hoạch lên tường, hàng ngày nhìn vào nó để chắc chắn rằng bạn luôn đi đúng hướng. Quan trọng hơn tất cả, hãy hành động ngay. Tất cả chẳng có ý nghĩa gì cho đến khi bạn thực sự hành động. Hãy làm gì đó để đảm bảo rằng mỗi ngày bạn đều tiến thêm 1 bước gần hơn đến ước mơ của mình.

Nếu các bạn muốn biết cụ thể hơn về việc lập kế hoạch thì các bạn phải chịu khó đọc cuốn sách nhé. 

Tuesday, March 4, 2014

CentOS 6 - Restore default top Panel

If you are using CentOS 6 and at some time you changed several configurations of top Panel. After that you want to restore default top Panel configurations, you should do as follows:

1. Remove current Panel settings
rm -rfv /home/<username>/.gconf/apps/panel

2. Logout
3. Login again

Good luck!