Newbies first class. (#1)


======================================================================
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.