    ---------------------------------------------------------------------

          ۰                                                ۰
         ۰ ۰۰                                             
        ۰   ۰   ۰
       ۰         ۰  ۰    ۰  ۰     ۰    ۰   ۰ ۰  ۰
       ۰          ۰ ۰  ۰  ۰ ۰  ۰ ۰ ۰  ۰  ۰  ۰  ۰  ۰   ۰
        ۰        ۰ ۰    ۰۰     ۰      ۰۰    ۰۰    ۰ ۰   ۰۰
         ۰      ۰   ۰  ۰  ۰  ۰    ۰  ۰  ۰  ۰  ۰ ۰  ۰
                                                             

                             prsentiert voller Stolz:

                  Den ausfhrlichen Cracktutor ber mIRC 5.5.1

                        Tutorial #4 vom 5. Juni 1999, 04:00

---[ Wissenswertes ]------------------------------------------------------------

mIRC ist ein Tool zur Kommunikation mit IRC-Servern im Internet. Es ist auf
vielen Sharewareservern zu finden. Ich empfehle den Download direkt vom Author
oder von:

  http://www.tucows.com

Es wird als Sharewareversion vertrieben und besitzt keine Einschrnkungen in
der Funktionalitt. Der einzige Unterschied zwischen der Shareware und der
Registrierten Version ist ein kleiner Nag am Anfang beim starten des Proggis,
der sich nach 30 Tagen in einen groen Nag verwandelt. Der hier vorliegende
Tutor zeigt wie man die Registrierroutine so umpatcht, da jeder Name und jede
Seriennummer eingegeben werden kann.

Falls man das Proggi schon registriert hat (mittels Crack) und einen neuen Namen
eingeben will, mu man nur folgende Registry-Keys lschen:

HKEY_CURRENT_USER\Software\MIRC\Name
HKEY_CURRENT_USER\Software\MIRC\Code

---[ Information ]--------------------------------------------------------------

Bentigte Tools:

  * W32Dasm 8.9.x, HexWorkshop 2.54 oder anderer

Bentigtes Wissen:

  * Grundwissen ber Bedienung von W32Dasm 8.9.x und eines HexEditors

---[ Das Tutorial ]-------------------------------------------------------------

Laden wir das Proggi mal im Debugger und starten es. Versuchen wir mal irgend-
einen Namen und eine Seriennummer im Registrier-Dialog einzugeben. Da kommt
auch schon unsere kleine Fehlermeldung "Sorry, your Registration...". Wie
gewohnt sehen wir zuerst mal im Resourceneditor nach, wie unser Dialog heit.
Da er nicht in den Dialogresourcen zu finden ist, nehmen wir an da er
dynamisch vom Programm zusammengebaut wird was wir uns besttigen lassen, indem
wir in der String-Referenztabelle vom W32Dasm nach einem String aus dem Dialog
suchen.

Wir setzen jetzt an alle Stellen, an denen auf unseren String verwiesen wird mal
einen Breakpoint. Wir haben Glck, es gibt nur eine Referenz und sobald wir im
Proggi dann unseren Namen und eine Seriennummer eingeben wird auch schon in den
Debugger gebrochen. Wir sehen uns in der nhe des Codes um und entdecken, da
unsere Fehlermeldung durch einen bedingten Jump angesprungen wird. Wenn wir
diesen Jump verfolgen kommen wir zu folgendem Codeteil:

  :00436D75 68487F4D00              push 004D7F48
  :00436D7A E87DCF0500              call 00493CFC
  :00436D7F 85C0                    test eax, eax
  :00436D81 0F849B000000            je 00436E22

  * Possible StringData Ref from Data Obj ->"mirc.ini"
                                    |
  :00436D87 68FCF04C00              push 004CF0FC

Anscheinend ist also die aufgerufene Funktion fr die berprfung der Serien-
Nummer verantwortlich. Wenn wir uns die aufgerufene Funktion genauer ansehen,
entdecken wir, da berprft wird, ob der Benutzername mindestens 4 Zeichen lang
ist und wenn nicht, dann wird EAX auf 0 gesetzt und die Funktion beendet. Wir
patchen also mal diese Funktion so um, da immer EAX 1 zurckgegeben wird:

  Vor Modifikation:

  * Referenced by a CALL at Addresses:
  |:00436D7A   , :00493E93
  |
  :00493CFC 55                      push ebp
  :00493CFD 8BEC                    mov ebp, esp
  :00493CFF 53                      push ebx
  :00493D00 56                      push esi
  :00493D01 57                      push edi
  :00493D02 8B750C                  mov esi, dword ptr [ebp+0C]
  :00493D05 8B5D08                  mov ebx, dword ptr [ebp+08]
  :00493D08 53                      push ebx
  :00493D09 E89E910200              call 004BCEAC
  :00493D0E 59                      pop ecx
  :00493D0F 83F805                  cmp eax, 00000005
  :00493D12 7304                    jnb 00493D18
  :00493D14 33C0                    xor eax, eax
  :00493D16 EB5C                    jmp 00493D74

  Nach Modifikation:

  * Referenced by a CALL at Addresses:
  |:00436D7A   , :00493E93
  |
  :00493CFC 55                      push ebp
  :00493CFD 8BEC                    mov ebp, esp
  :00493CFF 53                      push ebx
  :00493D00 56                      push esi
  :00493D01 57                      push edi
  :00493D02 8B750C                  mov esi, dword ptr [ebp+0C]
  :00493D05 8B5D08                  mov ebx, dword ptr [ebp+08]
  :00493D08 53                      push ebx
  :00493D09 E89E910200              call 004BCEAC
  :00493D0E 59                      pop ecx
  :00493D0F 83F805                  cmp eax, 00000005
  :00493D12 33C0                    xor eax, eax
  :00493D14 40                      inc eax
  :00493D15 90                      nop
  :00493D16 EB5C                    jmp 00493D74

Manche werden sich jetzt fragen, warum ich das so umstndlich gemacht habe und
den Patch erst am Ende der Funktion eingebaut habe: Wenn man das Proggi so
patcht, da gleich zu Beginn der Funktion EAX auf 1 gesetzt wird und dann
zurckkehrt, vermit das Teil die mov's die diese Funktion ausfhrt.
Anscheinend werden diese in einem anderen Teil des Proggis bentigt.

So, das wars auch schon wieder fr heute (war leicht, gelle?). Ich hoffe wie
immer, da ich euch etwas lernen konnte und da es euch Spa gemacht hat und
Freue mich schon auf den nchsten Tut.

Und nicht vergessen: Mitte Juni wird der offizielle [NeuRoM@nCerZ] IRC Server
in Betrieb genommen (Mit mIRC hat man dann schon das ideale Tool). Nhere
Infos (IP usw.) werd ich noch im Forum posten.

                            mnemonix@gmx.de
                  http://mnemonix.cjb.net (ab 1. Juni 1999)

---[ Gre ]--------------------------------------------------------------------

                                    Gre an:

           Vladimir, BLACKHAwK, tco95', Ozelot, TORN@DO, Maex, Wedix
                       Viper Zx, NiKai, Blub, Ignatz

                               Spezielle Gre an:

                             Highlander und Predator

            DIE NAMEN SIND IN UNBESTIMMTER REIHENFOLGE ANGEGEBEN.

---[ Ende des Tuts ]------------------------------------------------------------

