473,785 Members | 2,969 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Writing an exe 'shrink wrapper' for .Net

Hi All,

Can anybody point me to some 'how-to' documentation, tutorials, etc as to
how to write a shrink/protect wrapper for .Net exes/dlls, (like the
Shrinkwrap product for instance).

I have got a couple of products nearly ready for sale, and have already come
up with some routines to protect them, (in the style of the old TurboPower
OnGuard), but really wanted to shrink and protect the exe's, so as to make
reverse engineering a bit more difficult.

I am having some trouble getting started. I have searched the net for links
and help, but have come up blank. Any pointers on how to get going would be
really appreciated.

Thanks
Gary.
Jan 20 '06 #1
4 1768
Gary Bond wrote:
Hi All,

Can anybody point me to some 'how-to' documentation, tutorials, etc as to
how to write a shrink/protect wrapper for .Net exes/dlls, (like the
Shrinkwrap product for instance).

I have got a couple of products nearly ready for sale, and have already come
up with some routines to protect them, (in the style of the old TurboPower
OnGuard), but really wanted to shrink and protect the exe's, so as to make
reverse engineering a bit more difficult.

I am having some trouble getting started. I have searched the net for links
and help, but have come up blank. Any pointers on how to get going would be
really appreciated.

Thanks
Gary.


Of course you won't find something like that easily by searching on
google. You need very in depth knowledge in win32asm, the Win32 API,
experience with compression algos (LZW or derivatives and such), and a
load of experience in very complex anti-debugging tricks (otherwise the
whole thing will be mostly pointless). Then again, I don't know how to
support MSIL either, and you might still want to do obfuscation. It's
not the kind of knowledge you'll pick up in a weekend or by reading a
book, it would take you years to master all this, so your best bet is to
find a decently priced commercial offering (or just obfuscating and
using a really good protection scheme in your apps).
Jan 20 '06 #2
Hi Gary,
Welcome to MSDN Newsgroup!

Thanks for John's reply. In addition to his comment, you also could refer
to the following article,
Title: The Increasing Need to Protect your Applications from Hackers and
Competitors
URL: http://www.codeproject.com/showcase/Dotfuscator.asp

I hope the above information is helpful for you. Thanks and have a nice day!

Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security
--------------------
Thread-Topic: Writing an exe 'shrink wrapper' for .Net
thread-index: AcYdnalrgu2J2mH iTUOrdFBxTO3sxA ==
X-WBNR-Posting-Host: 193.119.59.36
From: =?Utf-8?B?R2FyeSBCb25 k?= <Ga***@communit y.nospam>
Subject: Writing an exe 'shrink wrapper' for .Net
Date: Fri, 20 Jan 2006 00:44:01 -0800
Lines: 17
Message-ID: <8F************ *************** *******@microso ft.com>
MIME-Version: 1.0
Content-Type: text/plain;
charset="Utf-8"
Content-Transfer-Encoding: 7bit
X-Newsreader: Microsoft CDO for Windows 2000
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
Newsgroups: microsoft.publi c.dotnet.genera l
NNTP-Posting-Host: TK2MSFTNGXA03.p hx.gbl 10.40.2.250
Path: TK2MSFTNGXA02.p hx.gbl!TK2MSFTN GP08.phx.gbl!TK 2MSFTNGXA03.phx .gbl
Xref: TK2MSFTNGXA02.p hx.gbl microsoft.publi c.dotnet.genera l:186697
X-Tomcat-NG: microsoft.publi c.dotnet.genera l

Hi All,

Can anybody point me to some 'how-to' documentation, tutorials, etc as to
how to write a shrink/protect wrapper for .Net exes/dlls, (like the
Shrinkwrap product for instance).

I have got a couple of products nearly ready for sale, and have already comeup with some routines to protect them, (in the style of the old TurboPower
OnGuard), but really wanted to shrink and protect the exe's, so as to make
reverse engineering a bit more difficult.

I am having some trouble getting started. I have searched the net for linksand help, but have come up blank. Any pointers on how to get going would bereally appreciated.

Thanks
Gary.


Jan 23 '06 #3
Hi Both,

Thanks for the comments, and thanks for the link Terry - I will have a look
later this afternoon. (I think obfuscation is a must in any event)

Yep, I always knew this was going to be a hard one. I kinda thought that
compressing all or part of the code in question, then at runtime
decompressing the code in memory and using the ability of c# to run code from
memory might be the way to go. That way the uncompressed code only ever
exists in memory and yet is 'runnable'.

You could control the decompression of the code from compressed to
uncompressed form via your wrapper program so providing some level of
security.

What do you think? I know the effort to do this may not be commercially
viable, but its an interesting question anyway.

Anyhow, thanks both the comments,
regards,
Gary

""TerryFei" " wrote:
Hi Gary,
Welcome to MSDN Newsgroup!

Thanks for John's reply. In addition to his comment, you also could refer
to the following article,
Title: The Increasing Need to Protect your Applications from Hackers and
Competitors
URL: http://www.codeproject.com/showcase/Dotfuscator.asp

I hope the above information is helpful for you. Thanks and have a nice day!

Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security
--------------------
Thread-Topic: Writing an exe 'shrink wrapper' for .Net
thread-index: AcYdnalrgu2J2mH iTUOrdFBxTO3sxA ==
X-WBNR-Posting-Host: 193.119.59.36
From: =?Utf-8?B?R2FyeSBCb25 k?= <Ga***@communit y.nospam>
Subject: Writing an exe 'shrink wrapper' for .Net
Date: Fri, 20 Jan 2006 00:44:01 -0800
Lines: 17
Message-ID: <8F************ *************** *******@microso ft.com>
MIME-Version: 1.0
Content-Type: text/plain;
charset="Utf-8"
Content-Transfer-Encoding: 7bit
X-Newsreader: Microsoft CDO for Windows 2000
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
Newsgroups: microsoft.publi c.dotnet.genera l
NNTP-Posting-Host: TK2MSFTNGXA03.p hx.gbl 10.40.2.250
Path: TK2MSFTNGXA02.p hx.gbl!TK2MSFTN GP08.phx.gbl!TK 2MSFTNGXA03.phx .gbl
Xref: TK2MSFTNGXA02.p hx.gbl microsoft.publi c.dotnet.genera l:186697
X-Tomcat-NG: microsoft.publi c.dotnet.genera l

Hi All,

Can anybody point me to some 'how-to' documentation, tutorials, etc as to
how to write a shrink/protect wrapper for .Net exes/dlls, (like the
Shrinkwrap product for instance).

I have got a couple of products nearly ready for sale, and have already

come
up with some routines to protect them, (in the style of the old TurboPower
OnGuard), but really wanted to shrink and protect the exe's, so as to make
reverse engineering a bit more difficult.

I am having some trouble getting started. I have searched the net for

links
and help, but have come up blank. Any pointers on how to get going would

be
really appreciated.

Thanks
Gary.


Jan 23 '06 #4
Hi Gary,
Thanks for your response. :)

Yes, this is a very interesting question. If I get any information about it
later, I'll share with you. Thanks for your understanding!

Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security

--------------------
Thread-Topic: Writing an exe 'shrink wrapper' for .Net
thread-index: AcYf/lRwcnJpPJXaSyCP Rmi97of2fg==
X-WBNR-Posting-Host: 193.119.59.36
From: =?Utf-8?B?R2FyeSBCb25 k?= <Ga***@communit y.nospam>
References: <8F************ *************** *******@microso ft.com> <rs************ **@TK2MSFTNGXA0 2.phx.gbl>Subject: RE: Writing an exe 'shrink wrapper' for .Net
Date: Mon, 23 Jan 2006 01:21:02 -0800
Lines: 89
Message-ID: <A8************ *************** *******@microso ft.com>
MIME-Version: 1.0
Content-Type: text/plain;
charset="Utf-8"
Content-Transfer-Encoding: 7bit
X-Newsreader: Microsoft CDO for Windows 2000
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
Newsgroups: microsoft.publi c.dotnet.genera l
NNTP-Posting-Host: TK2MSFTNGXA03.p hx.gbl 10.40.2.250
Path: TK2MSFTNGXA02.p hx.gbl!TK2MSFTN GXA03.phx.gbl
Xref: TK2MSFTNGXA02.p hx.gbl microsoft.publi c.dotnet.genera l:186898
X-Tomcat-NG: microsoft.publi c.dotnet.genera l

Hi Both,

Thanks for the comments, and thanks for the link Terry - I will have a looklater this afternoon. (I think obfuscation is a must in any event)

Yep, I always knew this was going to be a hard one. I kinda thought that
compressing all or part of the code in question, then at runtime
decompressin g the code in memory and using the ability of c# to run code frommemory might be the way to go. That way the uncompressed code only ever
exists in memory and yet is 'runnable'.

You could control the decompression of the code from compressed to
uncompressed form via your wrapper program so providing some level of
security.

What do you think? I know the effort to do this may not be commercially
viable, but its an interesting question anyway.

Anyhow, thanks both the comments,
regards,
Gary

""TerryFei" " wrote:
Hi Gary,
Welcome to MSDN Newsgroup!

Thanks for John's reply. In addition to his comment, you also could refer to the following article,
Title: The Increasing Need to Protect your Applications from Hackers and
Competitors
URL: http://www.codeproject.com/showcase/Dotfuscator.asp

I hope the above information is helpful for you. Thanks and have a nice day!
Best Regards,

Terry Fei [MSFT]
Microsoft Community Support
Get Secure! www.microsoft.com/security
--------------------
>Thread-Topic: Writing an exe 'shrink wrapper' for .Net
>thread-index: AcYdnalrgu2J2mH iTUOrdFBxTO3sxA ==
>X-WBNR-Posting-Host: 193.119.59.36
>From: =?Utf-8?B?R2FyeSBCb25 k?= <Ga***@communit y.nospam>
>Subject: Writing an exe 'shrink wrapper' for .Net
>Date: Fri, 20 Jan 2006 00:44:01 -0800
>Lines: 17
>Message-ID: <8F************ *************** *******@microso ft.com>
>MIME-Version: 1.0
>Content-Type: text/plain;
> charset="Utf-8"
>Content-Transfer-Encoding: 7bit
>X-Newsreader: Microsoft CDO for Windows 2000
>Content-Class: urn:content-classes:message
>Importance: normal
>Priority: normal
>X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
>Newsgroups: microsoft.publi c.dotnet.genera l
>NNTP-Posting-Host: TK2MSFTNGXA03.p hx.gbl 10.40.2.250
>Path: TK2MSFTNGXA02.p hx.gbl!TK2MSFTN GP08.phx.gbl!TK 2MSFTNGXA03.phx .gbl
>Xref: TK2MSFTNGXA02.p hx.gbl microsoft.publi c.dotnet.genera l:186697
>X-Tomcat-NG: microsoft.publi c.dotnet.genera l
>
>Hi All,
>
>Can anybody point me to some 'how-to' documentation, tutorials, etc as to >how to write a shrink/protect wrapper for .Net exes/dlls, (like the
>Shrinkwrap product for instance).
>
>I have got a couple of products nearly ready for sale, and have already

come
>up with some routines to protect them, (in the style of the old TurboPower >OnGuard), but really wanted to shrink and protect the exe's, so as to make >reverse engineering a bit more difficult.
>
>I am having some trouble getting started. I have searched the net for

links
>and help, but have come up blank. Any pointers on how to get going
would be
>really appreciated.
>
>Thanks
>Gary.
>



Jan 24 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
5711
by: R Camarda | last post by:
Help, I have a database that has a data file of 2GB and a log file of 31GB. In enterprise manager, when I choose shrink it says there is 30GB of unused space. When I shrink the database, it does not shrink, (however it says it has completed). I've done a complete backup, tried shrink again, no dice. I then backed up the database (which the backup was 1.9GB), deleted the database and made a new database with 2,048MB for the data and same...
5
18341
by: BashiraInTrouble | last post by:
Hi Friends, I have tried almost everything but I cant seem to shrink the transaction log. Executing DBCC SQLPERF(LOGSPACE) gives me this info: Database Log Size (MB) Log Space Used (%) Status MY_eems 368.49219 16.034182 0 I made a complete backup of the database and transaction log and then executed this statement: DBCC SHRINKFILE (MYeems_log, 1)
0
2256
by: bohuge | last post by:
Hey! At the time being I'm working on a backup solution for a Qtek9090 pocketpc, which should be able to find and backup outlook data to a server, local files, messages and contact from the sim card (and backup them to a server as well) all written in C#. So I'm making a wrapper for the sim manager api. In order to use it's functions in my device application, I've used platform invoke method, to acces the simmanager functions from...
12
11773
by: hallpa1 | last post by:
Hi all, I posted messages before about trying to purge many records (about 35%) of a 200Gig database. The responses gave me a lot to think about, especially regarding the indexes. But due to the short windows that I have to run in, manipulating the indexes is not an option. But this leads to another question. When all of this is done, we will need to shrink the db to reclaim the space. We will also need to rebuild the indexes, but...
9
3460
by: Julien Biezemans | last post by:
Hi! Here is the problem: I'd like to restrict local filesystem stream operations to one directory just like a root jail. fopen('/file.bin') would actually open /some/path/file.bin. One goal of this behavior is to prevent Xinclude instructions to point to "out of application directory" files when processed by the XSLT processor, among other things.
3
2126
by: Galka | last post by:
Hello Environment: Windows XP, MS Access 2003. I'd like - in a report - to save space , when there is no company data. When there is, I print out company name, address, telephone number and mobile - 4 lines. When there is no company data, these 4 lines are made invisible by the following code: Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As
30
2706
by: Cramer | last post by:
I've finally gotton board with TDD (test driven development) and wow is it effective! I went from sceptic to True Believer with my first effort. My question: According to the various books and articles I have read about TDD, a good unit test does not rely on the database or other such external/environmental conditions. More generally, a good unit test is atomic and makes as few assumptions about its runtime environment as possible. But...
6
8796
by: Major Drake | last post by:
Windows 2003 64 bit sp2 + SQL Server std 32 bit sp2 compability mode 90, recovery model simple. I have about 40 Gb database where is about 98% free space (I deleted data from tables). dbcc checkdb -OK. dbcc reindex all tables -OK Shrink database (with reorganize and release unused pace) -no any affets,
0
11274
ashitpro
by: ashitpro | last post by:
Writing System Call Wrappers in User Space. Recently I saw a post in Linux/Unix section to know the user who deleted the file in linux. Currently there is nothing in linux which could achieve this. There are certain tools which profiles the activities on file system, but none of these provides the particular user information. Main task for all these tools to check the performance of the system. First I thought why not to hook the unlink...
0
10325
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10091
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8972
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7499
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6740
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5381
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4053
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3646
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2879
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.