Welcome To Security.Fx-Vista.Com

Computer Security Information

Home

Newbies First Class

<<< Back

=================================================================

TARGET: WinZip v8.0>> get it from "http://www.download.com"

TOOLS : W32dsm v8.9, Hiew>> get them from "http://www.crackstore.com"

=================================================================

 

The usual disclaimer:-

I BLUENYBBLE CANNOT BE HELD ANY RESPONSIBILITY FOR ANY ACTIONS YOU MAY DO WITH THE INFORMATION PROVIDED IN THIS TUTORIAL NOR ANYONE WHO PROVIDED YOU WITH THIS INFORMATION NOR ANY GROUP I AM INVOLVED IN CAN BE HELD RESPONSIBILITY FOR YOUR ACTIONS. THIS FILE IS STRICTLY WRITTEN FOR EDUCATIONAL USE, IF YOU LIKE WINZIP BUY IT! IF YOU DO DECIDE TO USE THIS FILE FOR ILLEGAL PURPOSES, STOP READING NOW! BY CONTINUING YOU AGREE TO THE TERMS MENTIONED ABOVE!

 

okay then!! let us start our crack dudes...

get yourself a heavy hot-chocolate cup and start downloading the tools needed.. ready?? then let's start...

 

first you run your WinZip unregistered version and try to enter any stuff in the fields available for the  registry information, ex. "la flamme" and "321321" you'll immediately get an error message or a "bad  boy!".. the message will contain the sentence "Incomplete or incorrect information", write it down and get  ready to the next step...

 

brows for the WinZip main file "Winzip32.exe", make a copy out of it "just in case you committed a  mistake", give any other extension to the copy you made ex."Winzip32.exx" and keep it aside for later  use if needed.. launch your disassembler and load the original WinZip main executable file, now you'll be  searching for the string popped up to you once you tried to registered illegally, from the "Refs" menu  select "String Data References" a small window contains many strings used in the executable file will pop  up, now look up for the error message carefully...

 

got it?? well, mine was holding the address "ID=00654"..

 

NOTE: the address mustn't always contains the whole message showed up in the bad boy.

double click on it, you'll be taken to somewhere among the ASM codes that is nearby the possible  reference for the error message, you must now be able to see the lines:

 

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:

|:0040800C(C), :00408015(C), :0040801E(C) //the required conditional

references.

| ^^^^^^^^ ^^^^^^^^ ^^^^^^^^

:00408067 E89C020000 call 00408308

* Possible Reference to String Resource ID=00654: "Incomplete or incorrect

information"

|

:0040806C 688E020000 push 0000028E

:00408071 E860690300 call 0043E9D6

:00408076 50 push eax

:00408077 53 push ebx

:00408078 6A3D push 0000003D

:0040807A E886770200 call 0042F805

:0040807F 83C410 add esp, 00000010

:00408082 FF05686C4800 inc dword ptr [00486C68]

:00408088 833D686C480003 cmp dword ptr [00486C68], 00000003

:0040808F 0F85F9000000 jne 0040818E

:00408095 6A00 push 00000000

 

now all you want is to get the right conditional reference value...

 

NOTE: this line must be found somewhere above or below the possible ID reference...

now pick ONLY the numbers followed by the (C) keyword.. well, this version of WinZip contains three  conditional references thinking that they had over protected it:).. write down the three bunch of  conditional references without the (C).. got 'em?? gr8, (shift+F12) to open the go to code location window  and type in the conditional references one by one.. each time you must be taken to another place within  the file, if the selected line was highlighted with green then you're hitting the right position, here how it  looks like...

 

* Reference To: USER32.GetDlgItemTextA, Ord:0104h //tells you this file is 32-bit software.

|

:00407FF1 FF1528644700 Call dword ptr [00476428]

:00407FF7 56 push esi

:00407FF8 E8866C0300 call 0043EC83

:00407FFD 56 push esi

:00407FFE E8A96C0300 call 0043ECAC

:00408003 803DD0BD480000 cmp byte ptr [0048BDD0], 00

:0040800A 59 pop ecx

:0040800B 59 pop ecx

:0040800C 7459 je 00408067 //the conditional statement in

hexadecimal mode.

:0040800E 803DFCBD480000 cmp byte ptr [0048BDFC], 00

:00408015 7450 je 00408067

:00408017 E81BFAFFFF call 00407A37

:0040801C 85C0 test eax, eax

:0040801E 7447 je 00408067

:00408020 57 push edi

 

now take a little glance at the disassembler status bar while the highlight is green, it should look similar to  this:

 

Line: 16790 Pg 336 of 5451 Code Data @:0040800C @Offset 0000800Ch in File:

Winzip32.exe

^^^^^^^^

write down the hexadecimal offset address without the (h).. do the same recent steps with the other two  conditional references to get the rest of the offsets you need.. now you can say you're done with the  disassembler..

 

don't be ungrateful and say thanx b4 closing it, thank you to the cool disassembler;)...

 

now launch your HIEW and start browsing for the target we were havin' fun with.. once it's loaded you'll  be seeing a dreadful mess!! don't worry and press (F4), select the option "Decode"..

 

a neat columns of hexes and their values across are displayed.. press (F5) and start filling in the offsets you've just got from our faithful disassembler.. "you can dispose the first set of zeros".. Enter.. you're  highlighting a set of two hexes now.. a "74" value is what we're looking for.. "why 74 is explained later in  the glossary appended".. (F3) to edit, replace 74 with 75 "notice the je across changing to jne"... (F9) to save your changes, you'll be repeating the hex filling mission all over again with the remaining offsets and  if you happened to face 75 or 85, replace them to the values 74 and 84 "by order", (do the opposite when  confronted --> 74 to 75, 84 to 85).. once you're done with all your offsets press (F9) to save and (F10) to  quit hiew...

 

"also don't forget to thank your hiew:)".. now you're filled with curiosity to try your WinZip cracked  version.. go open your WinZip cracked version and try to put anything in the registry input fields.. and...  "Incomplete or incorrect information":) "DAMN! THE BAD BOY AGAIN!! BUT I DID NOTHING WRONG!!".. what i was trying to tell is you have to take into the account the nasty failure every time you're doing  your job as a cracker.. alwayz remember the rule "try and err!"...

 

no prob pal! you already have the offsets.. now go and (nop) the offsets references by putting the value  90 this time (in place of 74 or 75, 84 or 85).. this will disable any function call caused by the je or jne...  trying any entry to register now will work..

 

in order to view the differences between your cracked version and the original safety copy supposing you  made it on the desktop "the exx one", type the following command under dos mode...

 

FC /B C:\PROGRA~1\WINZIP\WINZIP32.EXE C:\WINDOWS\DESKTOP\WINZIP32.EXX >

C:\WINDOWS\DESKTOP\COMP.TXT

 

a file called "comp.txt" will be created on your desktop that demonstrates the differences between the two  files in hex mode, the contents should look like this...

 

Comparing files C:\PROGRA~1\WINZIP\Winzip32.exe and

C:\WINDOWS\DESKTOP\WINZIP32.EXE

0000800C: 74 90

00008015: 74 90

0000801E: 74 90

well, good luck 'till the next lesson!

## APPENDEX ##

 

NOTE: the information provided in this section was written according to my own-self experience.. hence it  mustn't be 100% correct!

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% MOST IMPORTANT ASM CODES GLOSSARY %%%%% %

% HEX CODE ACTION %

% je 74 jump if it's equal. %

% je 84 jump if it's equal. %

% jne 75 jump if it's not equal. %

% jne 85 jump if it's not equal. %

% call E8 calls a function. %

% nop 90 no operation "kills it". %

% add 00 adds two bytes to ram. %

% inc 40-47 increases. %

% dec 48-4F decreases. %

% %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

BADBOY: windows built in popup message.

to differentiate a bad boy from NAGs "non-built in windows messages", copy this JS coding into a text file  and change it's extension to "htm".. view it as an html document, here's the code...

 

//////////////////////////////////////////////////////////////////////////

<html><head><script>

function ale(){

window.alert('alert message');

return 0;

}

function con(){

window.confirm('confirm message');

return 0;

}

</script></head>

<body bgcolor=#000000>

<basefont face=Arial color=a6caff>

<center>those two are a simple of the most common bad boys you'll be

facing.<br>

<form><input type=button value="1st bad boy!" onclick="ale()">

<input type=button value="2nd bad boy!" onclick="con()"></form>

another common bad boy will contain the error sign (<font

face="CommonBullets" size=5>(</font>) within the message.<br>the last type

you may face would contain a question mark in a call out

(?).<br><br><br><br><font face=Arial size=7

color=#0000ff><b><strong><big>!</big></strong></b><br>BlueNybble</font>

</center></body></html>

//////////////////////////////////////////////////////////////////////////

always keep in mind that there's no bug-free programme except the traditional "Hello World!"  programme:)

 

BlueNybble  

 

Credits

 

Author: BlueNybble.

<<< Back

 

Copyright ©2008 www.Security.Fx-Vista.Com | All rights reserved