---------------------------------------- | How to crack Symantec Visual Page v1.0 | by da Cracker/CBE ---------------------------------------- Introduction: ÄÄÄÄÄÄÄÄÄÄÄÄ How many percent of experienced computer users are crackers? Surely not more than 0.1%... But many of these peoples label the word "cracking" as "impossible". Well, I want to teach these guys how to crack, so that's why I decided to write my fourth tutorial, requested by Ap0ll0 and pist0ls. In this tutorial, I'll teach you how to crack Symantec Visual Page v1.0... (Sorry if it's not the latest one, but I don't want to download it! It's too big... I had that version on a cd) I hope that you'll enjoy it! If you have any comment, suggestions, .... please e-mail me at dc_cbe@hotmail.com ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄIndexÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ | | |1) Programs that you'll need to crack Symantec Visual Page | |2) Finding the location that needs to be patched to remove the nag | |3) Patching the location to remove the nag | |4) Finding the location that needs to be patched to remove the expiration| |5) Patching the location to remove the expiration date | |6) Writing a patcher in Assembler | |7) Final Notes | ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 1) Programs that you'll need to crack Symantec Visual Page ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Here's the list of programs that you'll need to get to crack Symantec Visual Page: WinDisassembler Visual Page (no, really? ;) ) Hacker's View Don't expect to crack it without these utilities! Note: You can get them at http://cracking.home.ml.org, or if you're a CBE member, at CBE's memberz FTP Area And you can get Visual Page at http://www.symantec.com Are you ready? Ok, so let's start. 2) Finding the location that needs to be patched to remove the nag ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Now we're going to find the location that needs to be patched (where you have to modify the program so that it removes the nag...) Start Symantec Visual Page What's that annoying message? This Trial Version of blabla expires in 30 days... Ok, let's remove this nag. Exit Visual Page Go to the directory where Visual Page is installed (normally c:\VisualPage) Copy the file vpage.exe to vpage.bak (for Backup) and to 1.exe (for use by w32dasm... Why?? Because of the crappy "Application Running, can't modify it", well, anyways... Done? ok, now run w32dasm. Click on Disassembler --> Open File to Disassemble Go to the directory of Visual Page and select 1.exe Takes a while, heh? That's because this prog is quite big in size... Now, click on the menu Search --> Find Text and search for "visual page expires in" (that was part of the nag, remember?) Here's what we get: *Possible Reference to String Resource ID=05046: "This Trial Version of Visual Page expires in %1" <-- %1 is a variable :00419BFC 686B6130000 push 000013B6 <-- Saves the nag message :00419C01 8D4DD0 lea ecx, dword ptr [ebp-30] <-- Pops the nag screen! :00419C04 51 push ecx <-- Saves some shit to ecx Do you UNDERSTAND what we have to do? Well, it's easy. Think a little bit...;) We have a the nag message that gets saved and poped. We should just erase these lines! No, we can't do that... So, what? We have to NOP it!!! nop is a valid instruction that does ... nothing! That's it!!! You found the location to patch and what to change!!! And now you just need to patch it! (described in part 3) 3) Patching the location to remove the nag ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Click on the location right underneat the nag message (00419BFC) In the status bar, you'll see: "Code Data @: 00419BFC @Offset 000089FCh" So the offset address is A746 (you don't need the 0's in front and the h) Ok, remember this. Start Hacker's View to edit the exe file of Visual Page (hiew vpage.exe) Press F4, select Decode and press enter Press F5 (goto offset) and type 89FC (that's where we want to go) + Enter Now, you're almost done.... Press F3 (To edit the program) Now, you can see many numbers and letters... Keep on pressing 90 until the call (419C05) That means that you have to type "90" 9 times Now, press F9 to update the file and F10 to exit. Start Symantec Visual Page. No more nag! 4) Finding the location that needs to be patched to remove the expiration ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Now we're going to find the location that needs to be patched (where you have to modify the program so that it doesn't expire...) Start Symantec Visual Page Add one month to your system date (if you don't know how to do that, then learn how to use Windows and come back ;) ) What the heck? blablabla has expired... I didn't even try the program! Let's fix this "bug" :=) Exit Visual Page (anyway, you have no other choice...) Go to the directory where Visual Page is installed (normally c:\VisualPage) Copy the file vpage.exe to vpage.bak (for Backup) and to 1.exe (for use by w32dasm... Why?? Because of the crappy "Application Running, can't modify it", well, anyways... Done? ok, now run w32dasm. Click on Disassembler --> Open File to Disassemble Go to the directory of Visual Page and select 1.exe Takes a while, heh? That's because this prog is quite big in size... Now, click on the menu Search --> Find Text and search for "has expired" (that was part of the error message, remember?) Here's what we get: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |: 00419C11 (C) <-- Conditional Jump (suX!) | :00419C24 BB01000000 mov ebx, 00000001 <- Saves 1 to ebx (Boolean flag) *Possible Reference to String Resource ID=05043: "This Trial Version of Visual Page has expired." :00419C29 686B6130000 push 000013B3 <-- Saves the error message :00419C2E 8D4DD0 lea ecx, dword ptr [ebp-30] <-- Pops the error message Do you UNDERSTAND what we have to do now? Well, it's easy. Think a little bit...;) The program jumped to here from 00419C11 BECAUSE the condition was false (or true, whatever)... Ok, so we have to go to that part of the code and NOP it!!! That's it!!! You found the location to patch and what to change!!! And now you just need to patch it! (described in part 5) 5) Patching the location to remove the expiration date ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Go to the location where the conditional jump occured (00419C11) and click on the line. In the status bar, you'll see: "Code Data @: 00419C11 @Offset 00008A11h" So the offset address is 8A11 (you don't need the 0's in front and the h) Ok, remember this. Start Hacker's View to edit the exe file of Visual Page (hiew vpage.exe) Press F4, select Decode and press enter Press F5 (goto offset) and type 8A11 (that's where we want to go) + Enter Now, you're almost done.... Press F3 (To edit the program) Now, you can see 74 and some other things... Type "90" twice. Why "90"?? Ah, because 90 is the code for NOP... I really have to explain you all ;) Now, press F9 to update the file and F10 to exit. Start Symantec Visual Page. It worked! No more expiration date! 6) Writing a patcher in Assembler ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Now, to release the crack, you have to make what we call a patch. Yeah, you can't distribute the exe for two reasons: 1) It's illegal (a patch isn't illegal: it's your prog; but when a persons uses it, it's illegal) 2) It's quite big for a crack In the last tutorial, the patcher was in Pascal, so I decided to make this one in assembler... Humm, next time will be errrrr.... dunno! ;) Maybe VB. Here's the Assembler source code of the patcher: -------------------------------cut here--------------------------------------- code segment byte public assume cs:code, ds:code org 100h start: mov dx,offset logo call write call open_file mov filehandle,ax mov dx,offset fsize call write call check_size mov di,offset data mov si,offset ofs mov cx,2 mov dx,offset crackfile call write crackit: push cx call seek_file call read_file call seek_file call write_file add si,4 add di,2 pop cx loop crackit mov dx,offset cracksucc jmp short goback already_patched: mov dx,offset alreadycrk jmp short goback size_mismatch: mov dx,offset sizemismtch jmp short goback error: mov dx,offset erroropen goback: call write call close_file mov ah,4Ch int 21h Write proc near push ax mov ah,9 int 21h pop ax retn Write endp open_file proc near mov ah,3Dh mov al,2 mov dx,offset filenaam int 21h jb error retn open_file endp close_file proc near mov ah,3Eh mov bx,filehandle int 21h retn close_file endp check_size proc near mov bx,ax mov ax,4202h xor cx,cx xor dx,dx int 21h jb error cmp ax, lowsize jne size_mismatch cmp dx, highsize jne size_mismatch retn check_size endp read_file proc near mov ah,3fh mov bx,filehandle mov cx,1 mov dx,offset readbyte int 21h mov ah,readbyte cmp [di],ah jne already_patched jb error retn read_file endp write_file proc near mov ah,40h mov bx,filehandle mov cx,1 mov dx,di inc dx int 21h jb error retn write_file endp seek_file proc near mov ah,42h mov al,0 mov bx,filehandle mov dx,[si] mov cx,[si+2] int 21h jnc here jmp error here: retn seek_file endp filenaam db 'VPAGE.EXE', 0 filehandle dw 0 lowsize dw 21020 highsize dw 19 readbyte db 0 logo db ' ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ', 0Dh, 0Ah db 'Ûß ßÛ', 0Dh, 0Ah db 'Û Visual Page v1.0 Û', 0Dh, 0Ah db 'Û REMOVES EXPIRATION DATE + NAG Û', 0Dh, 0Ah db 'Û Û', 0Dh, 0Ah db 'Û E-mail: dc_cbe@hotmail.com Û', 0Dh, 0Ah db 'Û Website: http://www.cbe98.org Û', 0Dh, 0Ah db 'Û IRC: #cbe98 on Efnet Û', 0Dh, 0Ah db 'ÛÜ ÜÛ', 0Dh, 0Ah db ' ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß', 0Dh, 0Ah db 'þ OPENING FILE : ','$' fsize db 'OK!',0Dh,0Ah,'þ CHECKING FILESIZE : $' crackfile db 'OK!',0Dh,0Ah,'þ CRACKING FILE : $' cracksucc db 'OK!',0Dh,0Ah,'þ CRACK SUCCESSFULL!',0Dh,0Ah,'$' alreadycrk db 'ERROR!',0Dh,0Ah,'þ FILE ALREADY CRACKED OR DIFFERENT!',0Dh,0Ah,'$' sizemismtch db 'ERROR!',0Dh,0Ah,'þ WRONG VERSION OF FILE!',0Dh,0Ah,'$' erroropen db 'ERROR!',0Dh,0Ah,'þ CAN', 027h,'T OPEN FiLE !!',0Dh,0Ah,'$' ofs dw 35345 , 0 , 35346 , 0 data db 116, 144 , 17, 144 code ends end start ----------------------------------cut here------------------------------------ Now, compile this patcher (with TASM or MASM) and you can distribute your crack! 7) Final Notes ÄÄÄÄÄÄÄÄÄÄÄ I hope that you enjoyed reading this tutorial as much as I did writing it! I wrote it for Ap0ll0 and pist0ls who are newbies! I feel that you two are going to be good crackers :) Good luck, dudes! btw, my next cracking tutorial is going to be about patchers... Yup, don't miss it! -da Cracker/CBE dc_cbe@hotmail.com http://www.cbe98.org #cbe98 on Efnet Come and chat with us on IRC!