Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Need info on protecting software...

Author
Message
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 06:32 Edited at: 5th Mar 2004 07:05
My partner and I recently incorporated our software company and have some software that we want to be able to sell from our site. While I am in the process of setting up the ecommerce portion of the site and all the back-end merchant and banking stuff I was looking for, but not having much luck with finding, info on the following topics:

-product obfuscation (I have some info)
-techniques for incorporating non-breakable "30-day Trial" time bombs
-generating and using Unique Registration keys
-product patching Partial vs. Kitchen Sink
-Copyrights & Intellectual property

As an employee I didn't have anything to do with the above topics because the software I wrote was internal and proprietary, but now as I am trying to get my products out to the public market I need be very concerned with piracy protection.

any links or info you could provide would be greatly appreciated.
Thanks
James

-RUST-
"What the... Mooooooooooo!"
Neophyte
21
Years of Service
User Offline
Joined: 23rd Feb 2003
Location: United States
Posted: 5th Mar 2004 06:50
@CattleRustler

"product obfuscation (I have some info)"

???

Never heard of it.

"techniques for incorporating non-breakable "30-day Trial" time bombs"

No such thing. If its on their comp it can be cracked and hacked. Keep this in mind when you are trying to secure your product.

"generating and using Unique Registration keys "

I would suggest looking up PGP. Pretty Good Privacy. Or something similar. Also, don't store the key in the executable. In fact, don't provide any software means of validating whether the key is good or bad as this can be ripped out and used to make a key gen.

Have something where when the key is entered it runs the decryption routine regardless of whether it is a valid key or not. If its a bad key is will produce a junk file that can't be loaded. If its good it produces the required file(a dll perhaps?) that contains the code for the full application or enough code to initalize the features missing in the trial.

"product patching Partial vs. Kitchen Sink"

Never heard of those terms before so unfortuately I can't help you here.

"any links or info you could provide would be greatly appreciated."

The best advice I could give you is to learn from the pros. The ones who crack software for fun and profit.

I won't post any direct links, but type in "Reverse Enginerring Crack" and you should get several suitable links to various sites. Don't type in just "Crack" or "Hack" or any other direviatives as you'll just gets thousands of useless warez sites and the like. No real info at all in those.

Also, one last parting note. Look up someone called "Fravia". Paticularly in combination with the word "Reverser". Lots of usefull info down that route.

Hope this helped and good luck with your business.
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 07:09
Thanks Neophyte I will look in to what you mentioned.
just fyi Obfuscation is sort of a name-mangling encryption technique that is applied to an executable by an obfuscation utility, that makes it orders-of-magnitude harder to decompile into anything readable/useable to crack/reverse engineer. I am not saying an obfuscated exe is impossible to decipher just much much harder.

-RUST-
"What the... Mooooooooooo!"
Dave J
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Feb 2003
Location: Secret Military Pub, Down Under
Posted: 5th Mar 2004 09:03
Yup, VS.NET has an obfuscator in it, I'm not sure if you know this or not already or if you're even using .NET but the one included is quite good.


"Computers are useless they can only give you answers."
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 5th Mar 2004 09:40
On a different nte, have you seen osCommerce for the eCommerce side? It's open source and bloody good. It even includes functionality for downloadable products.

Check out the site in my sig for an older version. I probably use about 20 - 30% of the functionality.

BatVink (formerly StevieVee)
http://facepaint.me.uk/catalog/default.php
Neophyte
21
Years of Service
User Offline
Joined: 23rd Feb 2003
Location: United States
Posted: 5th Mar 2004 09:53
@CattleRustler

"just fyi Obfuscation is sort of a name-mangling encryption technique that is applied to an executable by an obfuscation utility, that makes it orders-of-magnitude harder to decompile into anything readable/useable to crack/reverse engineer"

I still don't get it.

How would that make it more difficult to crack? Does it rearrange your code or something? If it just applies name-mangling than that really isn't going to slow anyone down as crackers work at the assembly level using a debugger to step through and find the weak points.
Dave J
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Feb 2003
Location: Secret Military Pub, Down Under
Posted: 5th Mar 2004 10:31 Edited at: 5th Mar 2004 10:31
It's so it becomes unreadable, reading code is important for cracking. Here's an example:


Obfuscators might make it look like this:



Much harder to know what's going on.


"Computers are useless they can only give you answers."
OSX Using Happy Dude
21
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 5th Mar 2004 12:16 Edited at: 5th Mar 2004 12:17
With the C64 (and to a lesser extent the RiscPC), you could do self-modifying code, which meant the executable was actually encrypted, and when the program was loaded and run it would de-encrypt into memory at the same location. I'm not sure if this is possible with Windows, due to memory protection.

The other possibility is using DESKey...


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 5th Mar 2004 12:21
If it's a DBPro executable, traditional techniques of decompiling won't work in the same way as with a C++ or assembly executable. Most of the functionality is controlled through .dll's, so your actual DBPro executable is pretty strange and harder to crack - you could say you have obfuscation already, because a cracker would not expect half the stuff a DBPro executable would be doing.

30 day trials would be pretty difficult to protect, I doubt you could do very much to keep it solid, so it's probably best taking a different trial approach - like disabling saving. One thing, don't just disable a menu command or something, remove the saving code completely otherwise the disabling part could be disabled itself which would mean a functioning program. If I was you I'd upload the demo with no saving functions, then email the full version executable to your customers with unique program ID's. If each of your customers has a unique ID with their version, you can check for illegal uploads of your software and know instantly which customer screwed you. Make a point of explaining this, and you might never see an illegal copy make it to the net.

A good idea is to update the full version, and let the demo version lag a little behind in terms of features.


Van-B


The nature of Monkey was irrepressible!.
OSX Using Happy Dude
21
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 5th Mar 2004 12:34 Edited at: 5th Mar 2004 12:46
http://www.searchlores.org/protec/protec.htm
Might be of slight interest.


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 5th Mar 2004 13:09
You could base the reg key on the hardware, but you may be making a rod for your own back. Check out the disgruntled users of TGC latest map making tool in a thread from a month or so ago.

BatVink (formerly StevieVee)
http://facepaint.me.uk/catalog/default.php
BadMonkey91
20
Years of Service
User Offline
Joined: 13th Jan 2004
Location:
Posted: 5th Mar 2004 15:32
I have no idea, so this post is pointless..

Badmonkey91@hotmail.com
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 15:38 Edited at: 5th Mar 2004 15:43
An interesting article briefly explaining Encryption vs. One-Way Hasihing vs. Obfuscation, and how they are different than each other (short-2 pages). A very good read.

http://zdnet.com.com/2100-1107-995962.html

@exeat, yes the Dotfuscator Community edition with vs.net, I am aware-thanks! Your example of what an encrypted piece of code might look like was actually too nice, it may be more like...

(according to what I have read so far)

@Batvink - yeah, I am kind of leary of hardware locking for the reasons you mention.

@VanB, TCA - thanks guys (Van not dbp yet, apps in vb.net)

@Neo - I guess have a look online about Obfuscation. Basically the code characters and order are scrambled to a degree that becomes human unreadable, but remains computer readable for execution. This differs from Encryption in that without the decryption key, a human or a computer can't decipher the encrypted data. See the article above.

I guess one technique begets the other. If I have a highly complex obfuscation applied to the exe, then the time-bomb/registration key portion doesn't have to be so extraordinarily clever as the decompiler won't expose how it's implemented - I guess.
This is all new territory for me.

Thanks all, your continued support and info is welcomed.
I'd really like to hear if NG and TCG has any advice for me.


-RUST-
"What the... Mooooooooooo!"
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 16:38
update: I just used ILDASM.EXE to decompile one of my exe's from software I wrote, all I can say is this is very scary. I am going to try and obfuscate the exe and then decompile again and see the difference. I will post some results in this thread when I am done.

Are these topics interesting to anyone else?

after that I will play with some dbp exe's I made.

-RUST-
"What the... Mooooooooooo!"
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 5th Mar 2004 16:45
Depending on the type of app, there are other solutions. I'm currently working on an application that requires a bespoke "media pack" for each use, which allows me to control the distribution.

Think outside the box

BatVink (formerly StevieVee)
http://facepaint.me.uk/catalog/default.php
zircher
21
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 5th Mar 2004 16:59
I wouldn't worry too much about piracy. Do stop casual piracy, but there isn't much you can do about professional pirates that can't be undone. The harder you make it the harder they will try to crack it.

Your goal is to get the people that will pay to pay. Since some people will never pay, don't try to squeeze blood from a turnip. Consider the costs and hassle to you versus the the revenue you'd lose from professional pirates.
--
TAZ

CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 17:45
Zircher I agree. But as it stands now anyone with a copy of ILDASM.EXE can view my software decompiled in plain text, so some degree of obfuscation is necessary. I just registered for a 14 day trial of Preemptive Solutions Dotfustcator Pro, because the Community Edition that comes with VS.NET doesn't seem to like anything other than .xml files?? I also ran it from within vs ide and it did "something" but I don't know where the output went. I easily decompiled the exe again and saw everything, where D-CE was supposed to "break" ildasm.exe.

my head hurts but I pay that price to have my own business. Btw that reminds me, where is that partner of mine??
<picks up phone>

-RUST-
"What the... Mooooooooooo!"
TKF15H
21
Years of Service
User Offline
Joined: 20th Jul 2003
Location: Rio de Janeiro
Posted: 5th Mar 2004 17:55 Edited at: 5th Mar 2004 17:56
Here's a text I translated.


These numbers surprised me. Looks like securing software is a good theme for the next Mission Imposible movie.

Magellan
20
Years of Service
User Offline
Joined: 21st Feb 2004
Location: 001110101
Posted: 5th Mar 2004 17:57
Just wondering, what type of software is it?

All this content are belong to me.
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 18:26
Magellan

I have a few useful applications that I wrote in vb.net that I would like to post on my site as 30-day-try-before-you-buy packages. Eventually this would include games and other things we do. So before I can do any of this I need to figure out how to protect the software from disassembly/decompilation. It seems to me that before anything else (30 day Time Bombs, reg Keys etc) I need to incorporate some form of obfuscation to the package, as to not reveal how the other protection methods work. I am not looking to go crazy but just add a layer of protection that stops the novice cracker to the intermediate level cracker. I know nothing is fully secure from a determined expert. I just want to protect my hard work from all but the most expert level cracker, who in all eventuality will not see my software as worth cracking in the first place (at least the items I have developed currently). But by the same token one of the products should take off like a rocket in the development community but that's "hush hush" and maybe just wishful thinking. You guys will be privvy as soon as I can get the stuff safely out the door. I will be offering free items to people who are willing to beta test some stuff for us but again I need to incorporate some protections first.

-RUST-
"What the... Mooooooooooo!"
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 18:39 Edited at: 5th Mar 2004 18:39
<sig test, sorry>

I know, it looks like crap at the moment.

-RUST-
"What the... Moooooooo!"
Surreal Studio IanG
21
Years of Service
User Offline
Joined: 21st Sep 2003
Location: Cyberspace...I think
Posted: 5th Mar 2004 19:08
dont bother makin a serial protection, cause its easy to make keygens (i dont make them) just look at all the sites which have them, ie http://keygen.us make more than one version then have a different server that is the download site for people who have bought the product.

some one might have already said this, its just i didn't read the previous posts

Flick that switch...*BANG*...Not that one!
the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 5th Mar 2004 19:09
I think the best method for trial software is to have two versions, the full version you give to paying customers and the trial versions that has the features not available removed from the source. A cracker can't enable what isn't there.
Rob K
Retired Moderator
22
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 5th Mar 2004 19:24
I would suggest that you:

- Don't include the code for the whole program, only the stuff for the accessible features. Greying out a menu item ain't good enough.
- There should be limits on size of data etc. in the trial version which means that you could use the software for testing, but not easily for full blown commercial purposes.
- VB.NET will do most of the code obfuscation for you. I'm not being anti-VB6/VB.NET, but because of the way that Delphi/VB/VB.NET programs are structured (with a whole host of other libraries supporting them), they are hard to dissassemble anyway.
- The Trial Version & Full version should be different executables, this has the bonus that a hacker cannot crack the software using the trial version.

Important note:

It does not matter how wonderful your encryption etc. is, if you simply do this at some point in the program:

If IsRegistered() Then
ExecuteSomeCode
End If

Someone who knew what they were doing could simply change this statement from the machine code equivilent of an IF statement to the machine code equivilent of a GOTO statement, as if the code was:

goto address
address:
ExecuteSomeCode


BlueGUI-Windows UI Plugin
Neophyte
21
Years of Service
User Offline
Joined: 23rd Feb 2003
Location: United States
Posted: 5th Mar 2004 20:41
@CattleRustler

Okay. I think I understand what obfuscation is, but what I don't understand is how it protects your code. Crackers work at the assembly level so all this mixing really isn't going to slow them down at all.

@VanB

"If it's a DBPro executable, traditional techniques of decompiling won't work in the same way as with a C++ or assembly executable. Most of the functionality is controlled through .dll's, so your actual DBPro executable is pretty strange and harder to crack"

Not true. Disassemblers won't disassembly dlls without you telling them too so all you are left with is your code and the code to call a dll command(which isn't that big or difficult to understand). If anything it would probably be easier.

@TCA

"I'm not sure if this is possible with Windows, due to memory protection."

Yes, self modifying code is possible with Windows. Protected mode memory only prevents you from accessing the memory of other processes, and since your code is loaded into your memory space it can be accessed.
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 5th Mar 2004 20:42
Product patching partial vs kitchen sink... whats this?

Is it making a patch which changes the exe vs. recompiling a totally new exe with changes?

Currently thinking of a new company name
Sticking to a project idea for once
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 20:46
thanks for the info RobK, and everyone. I agree with the 2-different-exe's method to discern between demo and full version, and not being able to crack what isn't there. What I want to be able to stop is one paid version being spread around and run on any machine without some unique keying constraints.

the research continues.
thanks again

-RUST-
"What the... Moooooooo!"
zircher
21
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 5th Mar 2004 20:56
As a side note, that would be a nice anti-hack. 'Fixing' any program that tried to download an update.

Dreq934
20
Years of Service
User Offline
Joined: 15th Dec 2003
Location: SC, USA
Posted: 5th Mar 2004 20:57 Edited at: 5th Mar 2004 20:58
The only un-hackable system are online pay games . The only forseable way to hack one of those is to break into their servers and modify their databases (assuming they even use them!). Other than that, freeloaders are pretty much SOL, which also puts a decent hault of hacking of the game in general. Look at Everquest -vs- Diablo 2!

"I LIKE MARSHMELLOWS!" - Homestar Runner
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 20:57 Edited at: 5th Mar 2004 20:58
@Neo http://www.preemptive.com/products/dotfuscator/FAQ.html
I'll try and find some other links again from last night. there was one that showed actual code and how the obfusc process worked in foiling crackers. Also Java and .NET are different in how they need protecting compared to unmanaged C++,VB COM programs.

@Moonshine, sorry about those terms (I made them up) but yes you hit the nail on the head - I am interested in patching only the part of the exe that has changed as compared to recompiling and reposting the whole exe - I know nothing about this stuff. I guess with good protections it shouldn't matter much as the exe's arent huge.

-RUST-
"What the... Moooooooo!"
Neophyte
21
Years of Service
User Offline
Joined: 23rd Feb 2003
Location: United States
Posted: 5th Mar 2004 21:50
@CattleRustler

Okay, things are much clearer now. It scrambles the intermediate langauge of Java and .NET and not the source code. I was under the impression that it was just messing with source(which with compiled langs like C++ would be rather pointless).

So crackers that use tools that disassemble that intermediate lang will not be able to tell what is going on so easily.

I'm still not too conviced that something like that will help though. If you are just doing a static disassemble then yeah, that would be pretty time consuming to sort through, but most crackers use a debugger as well. So all they have to do is step through your code and work out where and when the routines for checking for a valid version occur(which isn't to difficult to do. There are tools out there that specifically look for winapi functions that would give away what you are doing.)

Anyway, I forgot to mention a winapi function I stumbled across once, IsDebuggerPresent. I don't remember the arguments it took or its return type, but I'd advise looking into it. It could be quite usefull in slowing down crackers who use debuggers.
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 22:01
@neo thats good to know - thanks.
Also, I just downloaded and installed a trial version of Preemptive Solution's Dotfustcator Pro and I was able to obfuscate my code and when I tried to decompile with ildasm.exe the ildasm crashed hard!
That is an interesting step forward.

ILDASM with no obfuscation


ILDASM With Obfuscation - allowing ildasm


ILDASM with obfuscation and disallow ildasm = ildasm.exe crashed

-RUST-
"What the... Moooooooo!"
zircher
21
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 5th Mar 2004 22:20
Here's some VB code that might be useful. It fetches the machine's product ID which can be used for a number of authentication schemes. This was part of a project where a friend wanted to make crypto-keys based on the installed machine.
--
TAZ



CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 23:17
thanks zirch.
fortunately in .NET all the win32api crap isn't necessary.

thanks again tho.

-RUST-
"What the... Moooooooo!"
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 5th Mar 2004 23:58
anyone interested in seeing a decompiled dbp executable. Not an exe from the DBP internal files, a decompile of an exe that I made called BSPTEST.EXE.

Maybe a mod could step in and let me know if that is ok to post here?
(if anyone is interested)

thanks
(ps the decompiler is open source which I downloaded and compiled here. Something in it blew up during the dcomp of the dbp exe file, but it ran full thru on .net exe's and vb6 exe's)

-RUST-
"What the... Moooooooo!"
indi
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Earth, Brisbane, Australia
Posted: 6th Mar 2004 00:57
dreq unfortunately people can make something called a "shard" think of a gem thats shattered, its a shard of the real server but hosted elsewhere. the main thing with computers is anything is possible. Many years ago an english man developed the only man made one way algorythym which could not be undone per say from one direction.

A possible good solution since most people are online now adays is to bind the game to the machines motherboard ID and then send a request to a server to allow it to continue, but once again this could be subverted.


IanM
Retired Moderator
22
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 6th Mar 2004 13:59
@CR,
You'll need to speak to Lee about posting that disassembly - you might be breaking your DBPro license agreement if you do post.

Another way of protecting yourself from pirates that I've heard of is you you don't ship all of the functional parts of your code, just stubs that would call a server that you have provided to do the work. Obviously, this discounts any customers without internet access, and you have to provide guarantees about the availability and speed of your server/servers.

*** Soon to be released - A Network Plug-in ***

For free Plug-ins, source and the DBPro Interface library for Visual C++ 6, .NET and soon for Dev-C++ http://www.matrix1.demon.co.uk
M00NSHiNE
21
Years of Service
User Offline
Joined: 4th Aug 2003
Location: England, UK
Posted: 6th Mar 2004 15:53
Well CattleRustler, for the patching, heres a piece of software that looks secure enough - if i was going to patch partially (which is much better as it saves your bandwidth and webspace)then id use this by clickteam, who made klik 'n' play & the games factory...

http://www.clickteam.com/English/patch_maker.htm

Currently thinking of a new company name
Sticking to a project idea for once
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 6th Mar 2004 16:45
@Ian Thanks for the heads up - I won't be posting the code

@MoonShine - Thanks, I will add that to my growing list of links!

If you guys who are intersted in the crackers point of view visit:
http://fravia.anticrack.de/progcor.htm This guy seems to be an expert cracker but he explains what crackers look for and how to avoid your programs being cracked (or at least making it very difficult)

At some point I will try and compile all of my links and research and post it up here for all to use. Many helpful links in the posts above.

Cheers All!


-RUST-
"What the... Moooooooo!"
Lord Ozzum
21
Years of Service
User Offline
Joined: 29th Oct 2003
Location: Beyond the Realms of Death
Posted: 6th Mar 2004 18:37
I can't help you, but good luck
Post here when you finish

Neophyte
21
Years of Service
User Offline
Joined: 23rd Feb 2003
Location: United States
Posted: 6th Mar 2004 18:46
@CattleRustler

"If you guys who are intersted in the crackers point of view visit:
http://fravia.anticrack.de/progcor.htm This guy seems to be an expert cracker but he explains what crackers look for and how to avoid your programs being cracked (or at least making it very difficult)"

I see you found fravia.

Yes, he has been in the reverser business for a long time. Definately worth heeding his advice.
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 6th Mar 2004 19:06
Neo, yes thanks - Fravia is pretty cool, pretty funny, pretty informative. He also linked off to a bunch of "protectionist" sites which was nice. I was reading into the wee hours last night (one of my eyes fell out of my head and cat scurried off with it - reminds me to go find it)

Well I took some good advice that was posted here and made a demo version of my application with the "good stuff" code stripped out. I left the menus in but disabled them so to whet the appettite - but no code-behind remains for that stuff . I am probably about 1 week away from release on my site - speaking of which I have to work on the site (oh crap. ) - knew I was forgetting something...

Thanks All

-RUST-
"What the... Moooooooo!"
CattleRustler
Retired Moderator
21
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 6th Mar 2004 19:10 Edited at: 6th Mar 2004 19:11
<sig test again, sorry>

EDIT: tre-ugly!

"What the... Moooooooo!"

test

Login to post a reply

Server time is: 2024-11-24 21:22:11
Your offset time is: 2024-11-24 21:22:11