Log in

View Full Version : Please > Where to start?


RCEnewbie
February 17th, 2009, 18:31
Hello all,

I am not going to ask any of you to do something for me. I am trying to learn the methodology and steps to solve this problem. I will be glad if you point me to the right direction.

I have a software and I have its serial number. Actually serial number is 4 parts (5, 6, 7 and 8 digit numbers)

After the full installation; first you write a 5 digit number. Then to the next place 6 digits, then 7 digits and 8 digits.

If all 4 sub-serial numbers are fitting each other, "OK button" is becoming active (normally OK button is grayed out and inactive but when I write last digit of the 4th serial number, Ok button is becoming active) and software is unlocking itself. No need for dongle, no keyfile, not connecting the internet etc. So, I just have to know 4 numbers.

As I wrote you, I have those numbers and I can unlock the software (I have no problem of using this software) but my main problem is; I have to find a different serial number combination which can unlock the software.

There should be a logic behind it or a function to calculate these 4 numbers.

1. How can I know if there is only 1 combination or not? Maybe there is no other serial numbers to find and I have the only one. How can I be sure about it?

2. If there are more than 1 serial number (probably this is the case); how can I find them?

Please find the attached image which I prepared to explain it better. I seriously need to start somewhere and I will be glad if you show me the correct steps.

Cheers,

XER
February 17th, 2009, 20:01
Bash from JMI in 3...2...1...

esther
February 17th, 2009, 20:11
YOUR BRAIN DROPS IN THE TOILET AND GOT FLUSH!!!

Oh I'm just kidding scroll below there are links will help you,learn it and ask question when you are ready

RCEnewbie
February 17th, 2009, 20:13
Quote:
[Originally Posted by XER;79371]Bash from JMI in 3...2...1...


Xer, thank you very much for your message but could you explain what do you mean ?

RCEnewbie
February 17th, 2009, 20:17
Quote:
[Originally Posted by esther;79372]YOUR BRAIN DROPS IN THE TOILET AND GOT FLUSH!!!

Oh I'm just kidding scroll below there are links will help you,learn it and ask question when you are ready


Thank you very much Esther. I will do my best but in the mean time, I will be glad if someone lights my way regarding to this problem.

RCEnewbie
February 17th, 2009, 20:33
By the way, is it important to have a working serial number to get other serial numbers? I mean does it helpful to have at least 1 working serial to reach others? Or its not important at all?

JMI
February 17th, 2009, 21:17
What XER meant was that you might be expecting a visit from me, since it is obvious you ignored the BIG RED LETTERS at the top of the Forums on your way in and did not do any apparent homework on your own before posting your question. People who do that, generally get to hear from me.



What seems apparent is that you actually have little or know knowledge about reverse code engineering and you want someone to "guide' you to the solution to "your" problem, without your having to demonstrate that you have done any, or at least some basic research on your own.

What you first need to understand is this is NOT the place where someone is going to take you by the hand and lead you, like a small helpless child, through the "steps" you need to follow to find the solution to what you want. We don't do that here. If and when you show some actual effort at finding you own way to reverse engineering and find yourself stuck at a particular point, and you have actually tried to find the solution on your own, and THEN ask for help, you would be more likely to find it.

Reverse code engineering is a long, laborous, and many times difficult course of study and training. It is not something you learn in an afternoon or over a week or two. It takes substantial study and effort to learn how to look at the code and to begin to underatand what it is doing and learning how to modify it. You do not indicate that you have done any of these things.

For example, do you know what a debugger is and/or how to use one? Do you have any knowledge of assembly language code, which is what one usually sees in a debugger?? What, if anything, do you actually know about how software, generally, and your program, particularily, may check the validity of the serial number which is input by the user?? Without some basic knowledge about these things, there is very little you can "reasonably" expect to accomplish on your own, and, again, this is not the place to expect someone to do the work for you.

If you actually know how to use a debugger, you have a serious advantage, because you allegedly have a valid serial. With knowledge of use of a debugger, you could follow the code and see all the checks of the serial number which in input, to determine whether it is valid.

However, if you actually do know how to use a debugger, the chances are excellent that you do not need a valid serial number at all. Somewhere, in the code, the program checks whether the serial is valid or not and branches to validate the serial, make the button active, and starts the program. If you actually knew what you were doing, you could step through the code and find the place where this happens and make it go to the proper place, even with an invalid serial number.

If you actually want to learn, follow ester's advice and scroll down to some of the links at the bottom of these Forums and begin the long process of actually learing about reverse code engineering. It will NOT provide you with instant gratification, but actually learning what you want to accomplish, and eventually accomplishing it, is the only path to true learn.

YOU have to invest the time and effort. Only then, will you actually learn something.



Regards,

XER
February 17th, 2009, 22:30
This is actually I great project for you if you're a beginner. Since you already have a working serial code, you can follow the code flow from the point when the ok button becomes enabled. This is most likely when the application does the check to see if your input is valid. All you have to do is find the correct breakpoint and/or the correct location in the code where this occurs. If there is only one serial code (unlikely), then this should be relatively easy to spot. If all of what I've said sounds like jargon to you, then you need to take JMI's advice and learn the abc's and 1,2,3's of RCE. Best of luck.

RCEnewbie
February 18th, 2009, 02:22
Thank you very much for your answers. Seriously, I believe you are all so kind to me and I understand the point very well.

I didn't mention but I did my best before writing you. Simply look at the XER's first message!!! "Bash from JMI in 3...2...1..." I even searched the Google for "Bash JMI". I thought that Bash is a kind of encoding/debugging software from a company called JMI and 3-2-1 means a kind of special technique/jargon for reverse engineering !!! Haha..

If you don't have a clue what you are doing, it is seriously not possible to find a starting point. Am I going to learn all the background information which you have been learning all these years? Go to the university again, learn binary programming and start learning all the details of reverse engineering? Unfortunately not possible. I wish I could but not possible. Look at this, I even search google for "Bash JMI" !!!

Ok, you are sending me to the links at the bottom of the page. Seriously saying, when did you check them last time? Please no offense but most of them are very old links and some are not working. Of course very valuable, I am not saying anything wrong but it gives you a feeling that its outdated information. No information is outdated in this world but how can I say; its giving you the feeling that something is still missing.

First of all, I have IDA Pro Free Edition and Ollydbg. I have a car but I don't know how to use it. I can start the engine but don't know what to do next. Ok, I have been looking at the code as you mentioned. Searching the part of the working serial number No clue about hard coded serial number. Now look at the questions appearing from a beginners mind :

- I am searching for the part of the serial number now. No result but should I search for the serial numbers as we write on the paper or should I change it into a binary code??? Oh, My serial lets say is 123456789 and what does it mean in binary code???

- No search result for working serial number but wait! Should it be hard coded? Himm... You idiot! There should be mathematical formula, not a hard coded serial number! How can they write hundreds, thousands of serials inside the code, seems not realistic. So there should be a mathematical formula controls if serials are matching each other or not. But where is that formula embedded into the code???

- Something is triggering OK button to become active! I should find that point in the code and get back little by little to find the "serial matching function" (this is how I call it) ! But but but How to find the place where OK button is becoming active?

- ok now, what is left? Lets look at the error messages. Because if it gives you an error, it means that first its checking if serials are matching or not. Aha! By that way I can find the place of that serial checking function. But how?

You see, my logic is somehow working. Maybe its not as brilliant as yours but still I have been trying. But logic is obviously not enough. This was all I could do and then I decided to write you.

Unfortunately, I can not (not because I don't want) spend months / years about this subject. If you feel that I am on the right direction, please keep giving more information as you did above but if you think that its not going anywhere, lets stop it now. I wish I could start learning it years ago.

Again, thank you very much for all your kindness.

XER
February 18th, 2009, 02:39
Yeah, the first response I wrote was a joke. Apologies for the confusion. Anyway, your logic is good and valid. Unfortunately, there is no short cut to accomplishing what you want without taking the time to learn the basics. I wouldn't say it takes months or years to learn what you need, but it definitely takes that long and longer to become good at it.

For a jump off point however, from what I gather you need to learn or at the very least become familiar with:

Assembly - this is the most important. If you don't know this, you won't be able to accomplish anything
IDA - there are dozens of tutorials and walk throughs on the web. Simply google "IDA tutorial".
The windows API - the collection of functions that handle such things as the enabling of the OK button


All of this and more is available through this forum. I used this place as one of my key references when I was learning.

JMI
February 18th, 2009, 03:54
Sounds like some serious, but weak self-justification to me.

So you've got a "disassembler" and you seem only to partially understand how it works. You have a ring 3 debugger and probably only limited knowledge of assembly language. None of those are serious shortcomings, unless you actually want to "debug" (as in "trace" the actual operation of the software in operation and understand how it works.

Just some examples. Do you know what mechanism is used to call your dialog box which contains the "OK" button?? Do you know what mechanism is used to activate a "button", so that you have some reasonable chance of recognizing when you might get to a piece of code which might be interacting with the "OK" button?? If you don't, what do you plan, if anything, to do to acquire such information? Particularly if you don't think any of the tutorials at the bottom of the Forums would be useful???

For example: The Krobar Tutorials may be "old" but there are entire sections on "serial finding" and serial fishing"" and, by themselves, such terms would be useful subjects for google searching.

It is difficult, based only upon what you have written, to know whether or not you have either the determination or the skill set to succeed with your objective. Clearly you appear to want a solution with a "minimum" of actual reflective thought about the problem and a minimum of personal effort at attempting to "think through" the problem.

There are many tutorials on the web about serial fishing, where one enters a serial number at random in the input box and then attempts to trace the software "logic" which evaluates the check of the input and branches either the the "bad cracker" (get the error message) or the "good cracker" (to the code which starts the program).

Most of us who have spent any significant time at attempting to "reverse" software, even though we aren't "software engineers" and may never have attended a class in any computer language, have spent hours and hours tracing code without any clear understanding of what is actually going on, simply in the blind hope that we will eventually notice a "decision" point, where we might change an entry in the code to make it actually work, even though we don't actually have the "proper" serial. Only after we have actually done it often enough, and studied what other may have written about their own discoveries, did we develop any sense of understanding of how some of the techniques might actual work.

Only by studying some of the "nuts and bolts" of the operating system, or by studying the writings of others who actually did the work and helpfully wrote of their adventures for those who may have less time or less original skill, did we gain some knowledge of what we might actually be looking for.

Consider it similar to having a "problem" with an automobile. It won't start. There are a number of possibilities of what would be the problem, but if you know little about how the mechanics and systems of the vehicle actually work, your options are limited. You can undertake to actually learn about the systems and how they work; you could try trial and error; or you could hire someone with the knowledge to do it for you.

So, eventually, you will need to learn how to recognize the code which calls the serial input dialog box and the code which analyzes the input into that box, and the branch to the "good cracker" which enables the button.

So what are YOU going to do, besides wine that it is just too hard and too much work to actually "think" about these things and read some of the readily available information already on the net???

Regards,

Ricardo Narvaja
February 18th, 2009, 04:13
I'm with JMI, learning is the unique method to solve a problem in cracking, if you build a house, you cannot start wth the ceiling, is needed the basis first.
I wrote a Introduction to cracking FROM ZERO in spanish, is a good starting point for spanish readers and have the basis, you can continue when conclude the introduction, by yourself.

There are a english translations not made by me (i don't speak english but i'ḿ learning in my job now),
The translation was made with a translator machine and is very bad, but my tutorials have plenty of images, and with this you can understand the bad translation better, is a good help.

hxxp://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/

Ricardo Narvaja

Externalist
February 18th, 2009, 12:12
Like the others stated, you need to know the '123's before you start to work with 2nd order differential equations and such. Same with RCE, you NEED to know at the minimum assembly language, and if you don't there's nothing you can really do. In math or physics forums, if you post a question then there are a couple of people willing to give you a complete solution for different reasons, but in RCE forums it just doesn't work that way. Only when you've shown at least SOME effort(assuming you know the basics of RCE), then people will offer you help and guidance, but they won't give you the complete answers. That's just how it is and you have to either live with it, or give up. The reason for that is not because people in the RCE community are unfriendly, but more because of the nature of RCE. I can't explain it due to my sloppy english, maybe someone else will do it for me.

The problem here is, you are clearly showing some progress you made, hence you've shown your efforts, however, your posts show that you are still lacking the knowledge of the BASICS of RCE. Even if the people here offer you help, they will assume that you know the basics, otherwise the help posts will just sound like a bunch of jargon to you. And that's why people are constantly pointing you to places and tutorials to learn the basics.

I too can point you to a tutorial that I find fairly easy for people who are at the entry of learning RCE.
_http://www.tuts4you.com/download.php?list.17
It's a pack of Video Tutorials aimed to RCE newbies. It is VERY easy to follow since it's in video format, and if you have one full day off, then you can go through a couple of the video's and get a feel of how RCE is done(although it's not a proper way to learn RCE but still ). Then the next day, armed with the knowledge, you can start reversing your app to find where the serial is being calculated, and if you're having trouble, then you could post your efforts on what you've done so far and then people will give you help/guidance on what to do next. It takes only a day or two to go through the aformentioned video tutorials and gain the knowledge you need, but if you look at the tutorials and feel like you can't understand a thing, then unfortunately I think nobody on this board can help you on your issue. Probably point you to some good assembly books, but you don't seem to want to pour your time to learn a totally new subject so...

Aimless
February 18th, 2009, 12:51
How about:

1. Win98 on VMWare
2. All ORC lessons
3. SoftICE
4. W32dasm
5. IDA (later on)
6. Smartcheck (later on)

And HEAPS of lessons on the archived FRAVIA site (link on this board itself.)

Have Phun

arc_
February 18th, 2009, 15:25
The posters before me have made good points. I myself have learned to reverse all on my own, simply by searching for "cracking tutorials" on Google and of course trying targets on my own... Don't waste time typing sentences like "I have the tools but don't know how to use them" in a forum - instead go and LEARN how to use them!

And yes, getting good at reversing definitely takes a lot of time and dedication. But you may discover a passion for working with code, and then things go by themself - you will forget notions like "bah I'll still have to work for years before I can crack this target", but instead work your way through more and more difficult targets... and eventually you'll stop and look back, and see how far you've come

naides
February 18th, 2009, 20:58
To rain over wet:
RCEnewbie, if you want to learn RCE just to get to use the program you are talking about, I suggest you buy the program, steal it or find a ready made crack in the wild world of internet and P2P networks.
It is far cheaper in time money and effort. Believe me. RCE is and expensive and time consuming hobby, it may cost you your sanity, your marriage or your career. . .
Actually, if you carefully read the things people post in here, more than 60% of us the regulars in the board are certifiably insane.

JMI
February 18th, 2009, 21:43
Hi nadies:

I believe you missed this part of his first post:

"I have a software and I have its serial number."

Apparently, what he wants to do is try to figure out is "the logic" behind the calculation of the 'correct' serial numbers which might work.

I have suggested that he might need to spend some more time on "self-study" and consider that if he can trace the program, using the 'correct' serial, he should be able to find the "good boy" point where the serial is approved and the 'OK' button enabled. Finding that, he should be able to enable activation, even with a "bad cracker" serial.



Regards,

TempoMat
February 19th, 2009, 09:47
Quote:
[Originally Posted by naides;79403]To rain over wet:
RCEnewbie, if you want to learn RCE just to get to use the program you are talking about, I suggest you buy the program, steal it or find a ready made crack in the wild world of internet and P2P networks.
It is far cheaper in time money and effort. Believe me. RCE is and expensive and time consuming hobby, it may cost you your sanity, your marriage or your career. . .
Actually, if you carefully read the things people post in here, more than 60% of us the regulars in the board are certifiably insane.


naides I am with you.
When I started RCE (not to mention that after all these years I still consider myself a Newbie) I could sit in front of the computers for several hours a day and almost everyday in a week.

The Family didn't give up on me, because they would rather share me with the computers rather than with any other out of home hobbies.

I have even spent more than a year reversing some applications because I wanted to keygen them, even though I have never used most of these applications since they were first installed. In the end I managed to get almost all of them done. A few of them are still remaining, which I look at once in a while, just to remind me that I am still a newbie.

Cheers

FrankRizzo
February 19th, 2009, 16:40
Quote:
[Originally Posted by arc_;79399]The posters before me have made good points. I myself have learned to reverse all on my own, simply by searching for "cracking tutorials" on Google and of course trying targets on my own... Don't waste time typing sentences like "I have the tools but don't know how to use them" in a forum - instead go and LEARN how to use them!

And yes, getting good at reversing definitely takes a lot of time and dedication. But you may discover a passion for working with code, and then things go by themself - you will forget notions like "bah I'll still have to work for years before I can crack this target", but instead work your way through more and more difficult targets... and eventually you'll stop and look back, and see how far you've come


He is absolutely right. You might find that you ENJOY it! I certainly do!

As I like to say, some people work crossword puzzles, I reverse code. It's just something that I like to do! (I've been at it since 1984, and started on the Commodore 64).

anonim
February 20th, 2009, 21:30
very nice one, by arc...
anyway, it seems that the guy is not responding???

if you'll find your way back,
as it been said,
//http://www.tuts4you.com/download.php?list.17, is a start,
its not the best though but,
it is some kind of a start.
how in the world have you even thought of tracing the sirial routin without a debugger..?!
anyway,
there's a long way now,
me too at the start..
you got the pointers here..
good luck.

RCEnewbie
February 22nd, 2009, 10:27
Thank you for your kind and informative answers. Each of you seems very nice people and seriously trying to help. Now I have all the pointers. Again thank you very much for your help.

anonim
February 23rd, 2009, 01:46
not taking all credit (thought),
yet,
with honor..