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