0 1 0 1 0 1 0

+=widYa@cL 2011=+

0 1 0 1 0 1 0

from newbie to another Tools Used :  Softice 3.24 - W32Dasm 8.93 - Hiew 6.02 Reverse Engineering Lab

 

WebFlix Pro 1.5.1 Build Date 19990104
Author : MediaWare Solutions Pty Ltd
Email : info@mediaware.com.au
Homepage : http://www.mediaware.com.au

Intro
Hi guys, you are now reading my 8th tutorial ... bla .. bla .. bla ..

Overview
WebFlix Pro is a complete MPEG-1 video exploration and analysis tool. With WebFlix Pro you can :

play MPEG-1 (.mpg) and Video CD (.dat) videos, quickly and accurately get to any location in a video, play a presentation as a continuous loop with auto repeat, analyze the action of your favorite sports star in slow motion by combining variable rate play with auto repeat, cut and paste from separate videos to create your own custom video, find key video events, such as film cuts and dissolves to create a shot index of your video which can be exported as an  html summary page of thumbnail images, analyze the underlying MPEG-1 stream, convert a Video CD (.dat) video to a MPEG-1 (.mpg) file.

This means that the entire video is at your fingertips from extracting your favorite frames as snapshots to put in your photo album to combining those special moments in your existing videos into your own movie creation. Best of all WebFlix Pro requires no special hardware to run on your computer.

The Essay
Run Webflixpro and enter registration dialog via Register-Register WebFlix Pro ... we're asked to enter :

KEY :
Your name :
Company name :

Fill out with your favour entry .. now we should set some breakpoints before pushing the OK button :

[CTRL]+D
BPX GETWINDOWTEXTA  [ENTER]
BPX GETDLGITEMTEXTA [ENTER]
BPX MESSAGEBOXA     [ENTER]
BPX HMEMCPY         [ENTER]
X   [ENTER]

push [OK] .. #bOOm# .. surprise .. break due to BPX32!MessageBoxA .. press F11 to get the caller .. #bOOm# .. "Sorry, I cannot recognise your registration key. Please re-enter." .. [OK] .. #bOOm# .. we're landing in tk80.dll code below messageboxa call .. huh we're break in the bad routine already ! .. we have to find this bad conditional jump .. tracing backwards now .. snip ... snip ... snip ... 3 minutes left ... 'DAMN' forget about it! ... clear all breakpoints & leave SoftICE at once ..

Now let's see what can we get from deadlistings ... double click on our bad message ... heh seems we can easily registered this program   .. HOW ?! .. just avoid the bad routine (messages) and we'll lead automatically to good routine ... yep we're gonna modified some bytes ! save us a lot of time ! (i've cutted a lot of codes to save our time) .. here are our 'magic' conditional jumps .. i'm sure you can easily locate these codes :

:0045689E 3BF8           cmp edi, eax                    ; do they match ?
:004568A0 0F842E010000   je 004569D4                     ; jump if equal to good routine

:004568A6 3B3D541F4D00   cmp edi, dword ptr [004D1F54]   ; another comparison
:004568AC 0F8422010000   je 004569D4                     ; jump if equal to good routine

:004569DD 3BC8           cmp ecx, eax                    ; another comparison
:004569DF 0F84EC010000   je 00456BD1                     ; jump if equal to good routine

:00456BE0 3BC1           cmp eax, ecx                    ; another comparison
:00456BE2 0F8EAA000000   jle 00456C92                    ; jump if less or equal to good routine

:00456CA3 3BCA           cmp ecx, edx                    ; another comparison
:00456CA5 742C           je 00456CD3                     ; jump if equal to good routine

Huh .. we don't care anymore what's value being compare in codes above .. now let's finish this naughty program .. first, create backup copy of webflixpro.exe .. just in case .. now let's modified the bytes using hiew (Note the offset at the bottom of Win32dasm) :

:004568A0 (@offset 55CA0h)
:004568AC (@offset 55CACh)
:004569DF (@offset 55DDFh)
:00456BE2 (@offset 55FE2h)
:00456CA5 (@offset 560A5h)

run hiew webfli~1.exe - select mode decode (F4-F3) - find the offset to patch (F5) - Edit (F3)

55CA0 : 0F842E010000 --> change to --> E92F01000090
55CAC : 0F8422010000 --> change to --> E92301000090
55DDF : 0F84EC010000 --> change to --> E9ED01000090
55FE2 : 0F8EAA000000 --> change to --> E9AB00000090
560A5 : 742C         --> change to --> EB2C

.. don't forget to update the changes (F9) .. i also written a simple byte patcher in asm .. not good enough but it works. After we patched it then we can enter any entry in registration dialog to make it registered. Then the program will create the license data in 'license.dat' located in our webflix directory . That'S aLL 4 now guys ... hope this tut can help u ..


Asm patcher source
; Webflix Pro 1.5.1 19990104 patcher
; bY widYa@cL 2011 (20/03/99)
;
; use tasm32 wfp151-p.asm and then tlink /3/t wfp151-p.obj
; to generate wfp151-p.com
.model tiny
.386P
.code
 org 100h
start:
mov   dx, offset intro
call  print                     ; print intro
; find target file 
mov dx,offset filename          ; get filename into ds:dx
mov cx,3fh                      ; any file attributes
mov ah,4eh                      ; find first matching file
int 21h
jc  notfound                    ; If carry is set, ax contains one of the following error codes 
				; 2: File not found - 18: No more files .. heh look the same ..
; good we found it .. now check the filesize
; after Find First File is called, we have a good information at the DTA:Offset 26 (decimal) File size in bytes
; let's use it .. shall we ?! ..
mov ah,2fh                      ; get DTA address (returns pointer to the current DTA in es:bx)
int 21h
mov eax,[bx+26]                 ; get file size in bytes into eax
cmp eax,[filesize]              ; do they match ?
jne wrongsize                   ; yes ? nope it .. no ? get the right version ! ..
; gotcha ..  open the file
mov dx,offset filename          ; get filename into ds:dx
mov ax,3D02h                    ; open file for reading & writing
int 21h
mov bx,ax                       ; put file handle in bx
; let's write the patch
mov ax,4200h                    ; seek (move file pointer) from the beginning of file
mov cx,5                        ; hi order of offset
mov dx,5ca0h                    ; lo order of offset
int 21h                         ; move it ..
mov ah,40h                      ; setup to write new byte(s)
mov cx,6                        ; six bytes to patch
mov dx,offset byte1             ; point dx to patch data
int 21h                         ; patch it ..
; woaah ..
mov ax,4200h
mov cx,5
mov dx,5cach
int 21h
mov ah,40h
mov cx,6
mov dx,offset byte2
int 21h
mov ax,4200h
mov cx,5
mov dx,5ddfh
int 21h
mov ah,40h
mov cx,6
mov dx,offset byte3
int 21h
mov ax,4200h
mov cx,5
mov dx,5fe2h
int 21h
mov ah,40h
mov cx,6
mov dx,offset byte4
int 21h
mov ax,4200h
mov cx,5
mov dx,60a5h
int 21h
mov ah,40h
mov cx,1
mov dx,offset byte5
int 21h
mov ah,3eh                      ; done .. close the file
int 21h
; available messages
mov  dx,offset msgsucc          ; have fun ..
call print
jmp  exit
wrongsize:
mov  dx,offset msgver           ; duh ..
call print
jmp  exit
notfound:
mov   dx,offset msgnotf         ; waaah ..
call  print
exit:
mov ah,4ch                      ; back to real life
int 21h
; our handy procedure 
print proc
mov   ah,9                      ; print string
int   21h
ret
print endp
; data
byte1    db 0E9h,02Fh,01,00,00,090h,0
byte2    db 0E9h,023h,01,00,00,090h,0
byte3    db 0E9h,0EDh,01,00,00,090h,0
byte4    db 0E9h,0ABh,00,00,00,090h,0
byte5    db 0EBh,0
filename db 'webfli~1.exe',0
filesize dd 1121792
intro    db 0ah,0dh, '╔───────────────────────────────────────╗'
         db 0ah,0dh, '│ Crack for WebFlix Pro 1.5.1 19990104  │'
         db 0ah,0dh, '│            -=widYa@cL 2011=-          │'
         db 0ah,0dh, '╚───────────────────────────────────────╝'
         db 0ah,0dh,0ah,0dh,'$'
msgsucc  db 'Patch Successful : Don''t Forget To Support',0ah,0dh,'$'
msgver   db 'Patch Failed : Wrong Version',0ah,0dh,'$'
msgnotf  db 'Patch Failed : File Not Found',0ah,0dh,'$'
end start
Final notes

... and we only get for what we have done ..
... let me know if you have any comments/suggestions/critics ?! ...

Special greetz
CrackZ, SandMan, Torn@do


GOD IS THE MOST GREAT

 

Written bY : widYa@cL 2011
Page CreaTed : 20 March 1999