Thread: N00b : help ?
View Single Post
  #6  
Old 05-04-2005, 19:05
baatazu
 
Posts: n/a
If its not by window name/process then its Mutex or Semaphores.

Mutex: stands for mutual exclusion object. Is a program object that allows multiple program threads to share the same resources such as file access, but not simultaneously. When a program is started, a mutex is created with a unique name. After this stage, any thread that needs the resource must lock the mutex from other threads while it is using the resource. The mutex is set to unlock when the data is no longer needed or the routine is finished. That way, you can find an external way to release the Mutex or change the mutex name on each instance and as a result have multiple instances running.

Semaphore: It a software flag. In multitasking systems, a semaphore is a variable with a value that indicates the status of a common resource. It's used to lock the resource that is being used. A process needing the resource checks the semaphore to determine the resource's status and then decides how to proceed. Things are more complicated.

If it works in one of the above ways then its not so easy to clear the check. Is not like a FindWindow() and if yes, it shows - if no, deny. There are several functions and checks, such as CreateMutex to create a mutex handle, OpenMutex to obtain an existing handle and when threads needs to run in Mutex it uses wait functions such as WaitForSingleObject. Then its done by calling the ReleaseMutex.

Conclusion, is it better to fool the instance system rathen than cracking the exe itself. You dont know if the developer "locked" only the executable instances using a single check or it has many internal restrictions/checks.
Reply With Quote