Here are my essays in revised form. They are gear more towards the
newbies of assembly, with somewhat better written notes.

An Essay by sYmbol
KeyLBE32.DLL, why would you use this to protect your program? 

(x) Intermediate

Introduction

This little dll uses two values (Dword in length or 8 characters long in
otherwords) which are created by the dll. You are then presented these
and asked for a reg code. Hmmm, all I can say is 'Thanks for the hint!'.

Tools Required
None

Target History
No longer included. For those of you who know what target uses
KeyLBE32.DLL here is an explanation.


Essay
The KeyLBE32.DLL creates two values, Code Entry and Computer Number,
which it uses to create a valid reg code. It then writes the code into a
.lic file. Below you will find the code which I did not comment very
well since it is all math. 

10007810 8B54240C                mov edx, dword ptr [esp+0C] 1 then your key would be 45FF1CB9

Or if EDX <1 as in Code entry: 1342547B and your Computer Number was 
EFFAEFFF, EDX was < 1 then your key would be 440907

Footnote 1
AND Function: For those of you beginning in the world of assembly the
AND statement is a binary comparison. Let's take the number 5 and 6 for
example. If I were to say 5 and 6 it means you convert both numbers to
binary and compare them.
Binary table 8|4|2|1
Number 5=    0|1|0|1    
Number 6=    0|1|1|0

Now were are comparing DIFFERENCES when using the AND statement. A 0 and
1 would give a 0 while a 0 and 0 give a 0. The only time you get 1 is
when you have a 1 and a 1. SO! with 5 and 6 you get 4.

Binary table 8|4|2|1
Number 5=    0|1|0|1    
Number 6=    0|1|1|0
--------------------
New Value    0|1|0|0

This is universal through all numbers. If you have a hex number it get's
converted to binary, same for decimal or octdecimal. That little thing
call 'Calculator' that comes with Windows. Great tool for this stuff!

Footnote 2
SHR Function: This is a logical function. It shifts, too the right, the
value of the 'count' ?!?!What?!!? Let's take the hex value 10 for
example. a SHR 10,1 gives a result of 8. This table may explain this
better.

SHR dest,count

Count Table
These are hex values---->1---2