Ziel: |
FireWorks 2 |
Beschreibung: |
FireWorks creates the smallest, highest-quality JPEG
and GIF graphics in the fewest number of steps. It is a total solution for creating and
producing web graphics. Fireworks simplifies and streamlines the process of making web and
screen graphics, while providing the ultimate in flexibility and editability. FireWorks
also makes it easy to minimize file size without sacrificing quality, which results in
faster web sites and higher satisfaction among web site visitors. |
URL: |
http://www.macromedia.com |
Schutz: |
Zeit-Limit / NAG (SalesAgent) |
Benötigte Tools: |
- SoftICE 3.24 |
|
- lcc Win32 c-compiler |
Disclaimer: |
Do I really have to remind you
all that by BUYING and NOT stealing the software you use will ensure that these software
houses will continue to produce even *better* software for us to use and more importantly,
to continue offering even more challenges to breaking their often weak protection systems.
BTW, It's illegal to use cracked Software!
If you're looking for
cracks or serial numbers from these pages then your wasting your time, try to search
elsewhere on the Web under Warez, Cracks, etc. |
Info: |
Brand and product names are trademarks or registered
trademarks of their respective holders. |
Level: |
(X)AnfÄnger (X)Fortgeschrittener |
|
Mehr und mehr Programme
benutzen SalesAgent als Schutz. Programme die mit
SalesAgent geschützt sind wurden gepackt und es gibt einen Loader (auch bekannt als
UnPacker). Wenn DU irgendwas in der EXE modifizierst, veranlasst SalesAgent, daß das
Programm abstürzt. Ich werden den Absturz umgehen, indem ich einen PROCESS PATCHER
erstelle!
Also, zuerst einmal müssen wir das Programm starten. So macht das. Wie ihr sehen könnt,
erscheint ein Bildschirm wie bei VBox. Nun habt ihr drei Wahlmöglichkeiten: BUY - TRY - ORDER.
Wenn ihr auf BUY drückt, passiert nichts. Daher können wir sicherstellen, daß
es keine Möglichkeit gibt das Programm zu registrieren.
Diese Dialog Box sieht nach einer erweiterten aus, so ein BPX DialogBoxParamA wird funktionieren. Beende FireWorks und starte
es erneut. Ihr landet in SoftICE und zwar bei der DialogBoxParamA Routine. Drückt F10 um
über den CALL zu springen. Nun erscheint der TRIAL SCREEN. Drückt auf TRY. Ihr landet in SoftICE and nachdem ihr F12 gedrückt habt,
erscheint der folgende Code:
:00408C53 E8E8D1FFFF CALL 00405E40
; checke Zeit-Limit und zeige NAG
:00408C58 83F8FF CMP EAX,-01
:00408C5B 55 PUSH EBP
:00408C5C 750B JNZ 00408C69
:00408C5E FF154C924200 CALL [USER32!PostQuitMessage]
:00408C64 E981000000 JMP 00408CEA
:00408C69 8B7C2418 MOV EDI,[ESP+18]
:00408C6D 57 PUSH EDI
:00408C6E FF1534924200 CALL [USER32!ShowWindow]
:00408C74 57 PUSH EDI
:00408C75 FF153C924200 CALL [USER32!UpdateWindow]
:00408C7B 55 PUSH EBP
:00408C7C 55 PUSH EBP
:00408C7D 68208D4000 PUSH 00408D20
:00408C82 E8557F0100 CALL 00420BDC
|
Nun können wir das
Zeit-Limit knacken, indem wir den JNZ Befehl bei 408C5C in einen JMP Befehl ändern,
stimmts?
Nein! Wenn euer Zeit-Limit abgelaufen ist, wird das Programm beendet bevor vom CALL
zurückgekehrt wird. Wie auch immer - wir können den NAG und das Zeit-Limit mit dem
Verändern von nur einem Befehl knacken. Wenn du nicht weißt warum, denk' noch mal nach
... dann lese weiter!
Wenn wir den CALL 405E40 bei 408C53, wo der NAG erzeugt wird, in JMP 408C69 ändern, dann
werden wir den NAG und auch das Zeit-Limit geknackt haben. Nun wissen wir, daß die
Adresse im Speicher für unseren Patch 408C53 ist und daß wir wollen, daß dort ein JMP
408C69 ausgeführt wird! Also beende das FireWorks und starte es neu. Bei 408C53 angelangt,
mach' folgendes:
A <ENTER>
JMP <408C69>
<ENTER>
Nun wird SoftICE EB14 als Code anzeigen ... nun wissen wir alles für unseren PROCESS
PATCHER, oder etwa nicht?
Ich bin mir beinahe sicher, daß ihr euch an den CRC check erinnert, über den ich euch am
Anfang des Essays berichtete. Also es gibt eine CRC check - aber wir können den Code im
Speicher überschreiben (wir könnten auch die Technik von Victor Porguen
benutzen, doch dieser essay ist für Newbies gedacht!!). Dies klingt so, als ob wir
einen PROCESS PATCHER einsetzen können! Wenn du genügend Zeit hast, programmiere deinen
eigenen PROCESS PATCHER - andernfalls benutze den von Gi0 und modifiziere ihn.
// *
================================================================== *
// * MANY THANKS TO Gi0 FOR RELEASING HIS PROCESS PATCHER SOURCE CODE!! *
// * IT SAVED ME THE TIME FOR CODING MY ONE!
*
// * ================================================================== *
#include <windows.h>
void main(void)
{
STARTUPINFO si;
char* cl;
PROCESS_INFORMATION pi;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
cl = GetCommandLine();
if (CreateProcess("FIREWORKS 2.EXE", cl, NULL, NULL,FALSE,
NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &pi))
{
// PATCH IT IN MEMORY
WriteProcessMemory (pi. hProcess, (LPVOID) 0x408C53, "\xEB\x14", 2, NULL);
CloseHandle (pi.hProcess);
CloseHandle (pi.hThread);
}
else
MessageBox(NULL,
"FIREWORKS 2.EXE nicht gefunden!\nStarte den process patcher im Programm-Verzeichnis!",
"Macromedia FireWorks 2 CRACK by TORN@DO", MB_OK);
} |
Ihr könnt die meisten
Programme mit Hilfe eines PROCESS PATCHERS knacken. Ich empfehle aber nur die Programme
mit einem solchen Patcher zu knacken, die entweder gepackt sind oder einen nicht so
einfach zu enfernenden CRC check haben.
Ein weiteres Programm wurde Reverse Engineerd. Irgendwelche Fragen (keine Crack-Anfragen)?
|