Stone's Search & Destroy Patch 1.0 ***BETA***

Send me bug reports

*********** DISCLAMER ************
Warning - this program is a disaster waiting to happen 
I take no responsibility for any damage caused by the program or sourcecodes
supplied in here. That goes for both direct and consequensial damage - use
it at your own risk! Further this sourcecode is copyrighted by Stone (c) 1997.
It may be distrubuted free of charge unchanged, and you may use the source
code at your discretion given that: 1) you strip the UCF-header, 2) you
greet me and give me proper credit for my work - include my email.
And last: This source code is NOT a UCF release and should not be treated as
such - all errors, flaws, bugs etc. lies on my shoulders *ONLY*
				- Stone/UCF 1997
*********** DISCLAMER ************


****************
1.0 List of Contents
****************

1.1 Introduction

2.0 How to use Stone's Search & Destroy patch
	2.1 The search string
	2.2 The patch string
	2.3 The negative displacement
	2.4 Limitations

3.0 How Stone's Search & Destroy patch work
	3.1 The search routine
	3.2 The patch routine

4.0 Greetings & Stuff
	4.1 Greetings
	4.2 Contacting the author (ME ME ME :) )

****************
1.1 Introduction
****************
Well - it's been a while since anybody released a Search & Destroy patch for
anything - and I believe now more than ever is the time to make search and 
destroy patches instead of normal offset patchers. These days updates for 
games and utils is often released to the public thru websites and these 
updates is often new exefiles so upon installing the update the copyprotection
is reinstalled. These new exe-files is often modified so that the 
copyprotection routine is located on a different offset in the file so that the
old offset patch no longer is able to find it. A simple solution is the 
Search & Destroy patch that instead of relying on the fileoffset searches
the entire file for a string within the copyprotection routine and patches
in reference to this instead.

Anyways I was bored and need some material for my webpage anyways ... so I 
wrote this fucker.

****************
2.0 Usage
****************
It's real simple. Load up the asm-file in your favorite editor, replace my
bogus information with the info relevant for your crack, exit the editor
and COMPILE with:
tasm /m stnsdp.asm
tlink /3 stnsdp

2.1 The search string
You'll need to enter your search-string as you find in the program you need
patched. As always on search strings it should be UNIQUE! In order for you
to make very good search strings I coded a "advanced" search interface.
It allows to include unknown values in search string (such as relocations) and
it allows string length up to 40h bytes (64d). 
What you do is that you write your search string as this:
findme db 023h,04fh,02dh,02eh
       db 02h,090h   etc.
If there is a byte in the string you do not want to be checked you enter a '0'.
My patcher will ignore it in it's string compare routine.
Theoretically you can enter strings longer than 40h bytes and in most cases
they will be found as well - however my program searches in blocks and I cannot
garantiue that strings longer than 40h bytes will be positively identified.

When you have entered your search string count how many bytes it is. Enter this
on the next line that says:
length db 6  ; where 6 is the lenght of your search string
THIS IS IMPORTANT!

2.2 The patch string
Similarly with the string of bytes you want written in the file. You enter
the bytes on the line that says
patchme db 90h,90h,ebh
and below that the number of bytes you need patched on the line that says
nobytes db 3 ; where 3 is the number of bytes you want patched

2.3 The Negative displacement
blah blah blah

2.4 Blah
Filesize max: 268,435,455 bytes
Only one patch string
only one search string

****************
3.0 Tech Stuff
****************
searches in blocks, re-searches half the block to make sure that the
search string wasn't "cut-in-half"

****************
4.0 Greetings etc.
****************

4.1 I may be reached thru email at: stone@one.se
	- I love hate mails
	- I love bugreports
	- I love suggestions
	- and.. I love getting positive feedback - that is the only
	  reason I release this stuff.. if I didn't I'd keep it to myself!
	- and.. http://www.one.se/~stone/index.htm

4.1.3 Greets to: UCF, Patriarch, Mr. Mox, Gdd, yrreb & #Cracking on EFFNET
					         ^2nd!

ARGH.. no bitching.. I'm no freaking coder -  and do gimme bug reports
