************************************************
************************************************

Unfortunately, this site has restricted functionality as this browser does not support the HTML button formaction attribute.

Unfortunately, this site has restricted functionality as this browser has HTML web storage turned off.

1 of 2 files romeo

1997 October 6

  • Text / Guides and how-tos
  • Romeo, writer credits
3 items in the archive
  • FILE_ID.EXE
  • ROMEOD4C.TXT
  • FILE_ID.DIZ
[+] Configuration Copy text
Software Re-engineering for Dummies : An Overview ================================================= by romeo [d4c/97] Before I started "software re-engineering", these questions often popped up in my mind : 1. How the heck can someone figure out the serial numbers? 2. What changes do you make to a program so that it's registered? ------------------------------------------------------------------- INTRODUCTION ------------ I think it's reasonable to believe that the most widely used debugger by all "software re-engineers" or "software reverse-engineers" is SoftIce from Numega. The word "debugger" should tell you what the program does. It debugs bugs. Well, people are often very creative. If it can be used to debug bugs, it can also be used to take a peek at how the software is programmed. The debugger has to be loaded before Windows is loaded. The reason is so that any programs that run under Windows can be stopped at any time (by pressing Ctrl-D) and have it's codes (in Assembly language) revealed to the user. (i don't want to get too complicated) The ironic thing is that SoftIce is a shareware, and being the best debugger is not any good to itself, because it is used by "engineers" to find out what it's serial number is. ------------------------------------------------------------------- INTO THE PROCESS : Starting Point ============== A software is often huge and therefore full of codes. It would be impractical to go down each line of codes and figure out what each line does. Therefore, it's up to the "engineer's" creativity and experience to select a starting point. "Where should I start decipher the codes?" There are lots of techniques, which might just sound greek to you if you're a dummy to this area. So, I'll leave that part out. When a starting point is decided, the "engineer" will pay more attention to "weird, interesting or out of the ordinary" codes. Probing Techniques Simplified ============================= 1. Serial Numbers If you have downloaded a shareware once or twice in your lifetime, you might have come across a "Register" command which resides in the Help|About ... dialog box most of the time. When you click on it, you may be prompted with a box which require you to enter your name and then a serial number that matches your name. Now, this means that somewhere among the codes in the program, there may most probably be lines that says : A compare the serial number that has been entered with the correct serial number that matches the name and goto B B if it is incorrect, goto D C show a thankyou message because the number is correct and goto D D close the box and return to the program As long as the "engineer" can find these lines, it is very likely that (s)he can just write down the number from the screen (it is just that simple! - sometimes ...). This is sometimes referred as to a "soft" approach. 2. Changing Bytes Well, it can be very tricky sometimes that the "engineer" has to resort to "hard/brutal re-engineering". This involves changing certain bytes of the original program so that it works the way the engineer wants it to work. This would most likely involve "time-limited sharewares". These sharewares do not offer the option of registering the program by entering a name and a number. Worse, after certain days, they will cease to work. To make your life easier, let us use the previous example : (pretend these are the initial codes) A compare the serial number that has been entered with the correct serial number that matches the name and goto B B if it is incorrect, goto D C show a thankyou message because the number is correct and goto D D close the box and return to the program I'll show you some techniques which have been used : Technique 1 - Reverse the conditions ==================================== Often, there's only one number that matches your name. And you don't get it right 99.9% of the time. So, an "engineer" can change the codes to this : A compare the serial number that has been entered with the correct serial number that matches the name and goto B B if it is incorrect, DON'T goto D C show a thankyou message because the number is correct and goto D D close the box and return to the program Since you know that you'll be incorrect, by reversing the conditions, you'll end up registering the program. Technique 2 - One way conditions ================================ What if you happen to guess the right number? Hmm .. this means technique 1 will not work. So, this can be done : A compare the serial number that has been entered with the correct serial number that matches the name and goto B B if it is incorrect, goto C C show a thankyou message because the number is correct and goto D D close the box and return to the program Now, it doesn't matter whether you're right or wrong, you'll end up registering the program Technique 3 - Tricky conditions =============================== This is an alternative to technique 2 : A compare the serial number that has been entered with the serial number that has been entered B if it is incorrect, goto D C show a thankyou message because the number is correct and goto D D close the box and return to the program hehe .. this sounds funny but it works. Sometimes, due to the complexity of software programming, only one of the described techniques can be used, or only a mixture of 2 or more will work. ------------------------------------------------------------------- [ The only reason why I indulge in "software re-engineering" is because I get pleasure out of it. The first time when I managed to figure out a serial number for a shareware, I was so overwhelmed; I shouted out loud with triumph and I felt so good about myself. All boiled down to the "ummmph" that I get - it's addictive and I wanted more each time. ] - anonymous "engineer" - ------------------------------------------------------------------- -=THE END=-
ROMEOD4C.TXT 80x157 Font
80