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