Tl32v20.dll szukanie kodu unlock by GustawKit

Biblioteka tl32v20.dll jest stosowana w programach shareware do ograniczen czasowych korzystania z programu. Po starcie pojawia sie nag-screen informujacy ile pozostalo czasu korzystania z programu. Umozliwia tez prowadzenie kodu rejestrujacego. Wiele programów wykorzystuje ta biblioteke. Postarajmy sie umiec znalezc poprawny kod. Rózne wersje biblioteki mozna znalezc w internecie, moze na firmowej stronie twórców tej biblioteki http://www.timelock.com

Wgrajmy program wykorzystujacy ta biblioteke np. Quick View Plus Trial lub inny, dajemy rejestracje "Purchase". Mam tu na mysli wersje programu umozliwiajaca wpisanie kodu. Pojawi sie okno dialogowe, wpisujemy dowolny kod (np. 654321) i dowolne user name i company. Przechodzimy do SoftICE (standardowo Ctrl+D) i zakladamy pulapke na wywolaniu funkcji GetWindowTextA (wiadomo bpx ..nazwafunkcji...)., przechodzimy do programu i wciskamy Ok. SoftICE przejmie kontrole i zatrzyma sie na pierwszym wywolaniu tej funkcji. Poniewaz program (w tym wypadku biblioteka tl32v20.dll) wywoluje ta funkcje trzy razy do pobrania trzech tekstów interesuje nas moment po pobraniu wszystkich. Uruchamiamy dalej (Ctrl+D) i jeszcze raz, jestesmy w SoftICE w momencie trzeciego wywolania tej funkcji. Naciskamy F11 do powrotu skad byla wywolana funkcja. Pojawi sie nam mniej wiecej taki kod (oczywiscie adresy beda inne w zaleznosci od wersji) :

:10003FAD 68503B0110     push 10013B50
:10003FB2 50             push eax
:10003FB3 FFD3           call ebx <---jestesmy tutaj
:10003FB5 8D45D8         lea eax, dword ptr [ebp-28]
:10003FB8 50             push eax
:10003FB9 E84ADDFFFF     call 10001D08
:10003FBE 83C404         add esp, 00000004
:10003FC1 8D45EC         lea eax, dword ptr [ebp-14]<-poprawny kod
:10003FC4 8D4DD8         lea ecx, dword ptr [ebp-28]<-wpisany kod
:10003FC7 50             push eax
:10003FC8 51             push ecx
:10003FC9 E8A21A0000     call 10005A70
:10003FCE 83C408         add esp, 00000008
:10003FD1 85C0           test eax, eax
:10003FD3 7553           jne 10004028 <--dobry, zly kod

Co my tu mamy ? Przeanalizujmy :

push eax przygotowanie na stosie EAX

call ebx wywolanie funkcji GetWindowTextA

lea eax, dword ptr [ebp-28] Pobranie do EAX adresu poprawnego kodu

push eax polozenie na stosie EAX jako parametr do funkcji ponizej

call 10001D08 Wywolanie funkcji generujacej poprawny kod

add esp, 00000004 Uregulowanie stosu

lea eax, dword ptr [ebp-14] pobranie do EAX adresu wpisanego przez nas kodu

lea ecx, dword ptr [ebp-28] pobranie do ECX adresu poprawnego kodu

push eax przygotowanie na stosie EAX do wywolania w Call

push ecx przygotowanie na stosie ECX do wywolania w Call

call 10005A70 Wywolanie funkcji porównania kodów i zapis wyniku do EAX

add esp, 00000008 Uregulowanie stosu

test eax, eax Sprawdzenie wyniku

jne 10004028 Skok "dobry lub zly kod"

Wystarczy wiec podczas sledzenia programu (F10) sprawdzi co jest pod adresem zawartym w ECX (czyli d ECX). Bedzie tam poprawny kod jaki nalezy wpisac w okienku dialogowym. Bingo.

Koncowa notka

Powyzszy sposób jest najbardziej elegancki i czysty. Umozliwia nam zarejestrowanie programu tak jak bysmy to zrobili placac za niego. Niektóre programy uzywaja tej biblioteki, ale nie umozliwiaja wpisania kodu. Mozna spróbowac sposobu opisanego w Jet Audio crack. Poza tym istnieja uniwersalne cracki dla programów zabezpieczonych tym sposobem lub juz zcrack'owane wersje tej biblioteki. Wystarczy tylko poszukac w internecie.

wiecej informacji - http://fravia.org- w projekcie TimeLock