topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Saturday December 14, 2024, 12:25 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Virtualization to Create Single EXEs from Mixed Assemblies  (Read 25998 times)

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
This might be a useful heads-up for some people.

http://boxedapp.com/



It lets you create a single EXE file from multiple and mixed DLLs, so you can have a .NET program that pulls in native DLLs, but package it all as a single EXE.

BoxedApp Packer is a developer utility for converting your regular full-fledged applications to single self-sustaining executable files that don't require the installation in order to be run. That literally means that you can squeeze all ActiveX controls, dynamic libraries, and just all kinds of files that your original application depends on into a single executable file and run it just as if that was a regular application installed the regular way...

I've given it a quick few tests, and it pans out. Works very nicely.

Now, you can't use it for something like this call:

System.Diagnostics.Process.Start("blah.exe");

But boohoo. Everything else seems pretty slick.

Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

40hz

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 11,859
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #1 on: April 15, 2011, 04:03 AM »
Hey! Renegade's got a new avatar. Like it! :Thmbsup:

Thx for the heads up too!

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #2 on: April 15, 2011, 07:15 AM »
Hey! Renegade's got a new avatar. Like it! :Thmbsup:

Thx for the heads up too!

Thanks! It was one of those pieces of artwork that I bought while doing Super Simple. It was just so cute. :)

But do check out that BoxedApp. It's slick.

It's 300 Euro, but really, for that kind of software? That's cheap!

Of course, if you only need to merge .NET assemblies, then ILMerge.exe is the way to go.

Incidentally, Infralution's .NET Encryptor packs assemblies together, but I don't know if it will do mixed... I should check...
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #3 on: April 15, 2011, 07:25 AM »
Checked:

http://www.infraluti...viewtopic.php?t=1928

No. Infralution's .NET Encryptor only does .NET assemblies.

So, that leaves BoxedApp at the top of my list so far.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #4 on: April 15, 2011, 06:47 PM »
Hrm, if it supports both .NET assemblies and native DLLs, it has to either

1) unbundle the files to %TEMP% or whereever.
2) use manually coded and potentially fragile routines to load the native assemblies.

If the product does #1, please don't use it for your end-users' sake. Temp files == slow, and can trigger antivirus programs in the depressing way. If it's #2, test the result carefully across a wide range of Windows versions.

- carpe noctem

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #5 on: April 15, 2011, 09:37 PM »
Hrm, if it supports both .NET assemblies and native DLLs, it has to either

1) unbundle the files to %TEMP% or whereever.
2) use manually coded and potentially fragile routines to load the native assemblies.

If the product does #1, please don't use it for your end-users' sake. Temp files == slow, and can trigger antivirus programs in the depressing way. If it's #2, test the result carefully across a wide range of Windows versions.


It's virtualization. It loads DLLs into memory, then accesses them from there.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,736
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #7 on: April 16, 2011, 01:30 AM »
I've only given this a cursory try, but Enigma Virtual Box is similar and free.  There's an enhanced paid version.

Since I read this thread it prompted me to visit the site again. Seems v. 2.0 of EVB was just released on the 14th:

http://www.enigmapro...tor.com/en/home.html

The "Protector" version claims .NET support and sells for $149 USD for single user license. I played around a bit with the free version. It was easy to use.  Rather like a simple installer wrapper app.
« Last Edit: April 16, 2011, 01:35 AM by MilesAhead »

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #8 on: April 16, 2011, 06:38 AM »
I've only given this a cursory try, but Enigma Virtual Box is similar and free.  There's an enhanced paid version.

Since I read this thread it prompted me to visit the site again. Seems v. 2.0 of EVB was just released on the 14th:

http://www.enigmapro...tor.com/en/home.html

The "Protector" version claims .NET support and sells for $149 USD for single user license. I played around a bit with the free version. It was easy to use.  Rather like a simple installer wrapper app.


Nice find! I've not tried it yet, but I'll give it a spin and post back what I find.

Thanks!
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #9 on: April 16, 2011, 07:10 AM »
Well, it looks like the free one doesn't work for mixed assemblies. I've posted here: http://forum.enigmap...c.php?f=20&t=807 --We'll see what happens.

Still have the other one to try out.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #10 on: April 16, 2011, 07:27 AM »
Nope. Doesn't seem to work for mixed assemblies.

I didn't try with pure native or pure .NET.

Oh well. Otherwise, it looks like a good product. Just not what I was looking for.

Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #11 on: April 16, 2011, 08:58 AM »
Virtualization is such a fluff word these days, and their "technology" page is very brief - but it seems like they're doing #2 from my post above. Be sure to test extensively on various Windows platforms... the base code to skip Windows PE-executable/DLL loader and do your own is relatively easy, but there's craploads of special case stuff to handle, and you need to hook a lot of API functions in the manually loaded image - and getting all that code right is not trivial.
- carpe noctem

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #12 on: April 16, 2011, 09:41 AM »
Virtualization is such a fluff word these days, and their "technology" page is very brief - but it seems like they're doing #2 from my post above. Be sure to test extensively on various Windows platforms... the base code to skip Windows PE-executable/DLL loader and do your own is relatively easy, but there's craploads of special case stuff to handle, and you need to hook a lot of API functions in the manually loaded image - and getting all that code right is not trivial.

All the more reason to buy rather than build! :)
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #13 on: April 18, 2011, 08:10 AM »
Well, it looks like the free one doesn't work for mixed assemblies. I've posted here: http://forum.enigmap...c.php?f=20&t=807 --We'll see what happens.

Still have the other one to try out.

Well, to follow up, the guys a f***ing star! Seriously. The developer is amazing. He's followed up with information and checked the files I sent. Now, the problem isn't solved, but jeez... The developer is trying! That's a lot more than you get from most companies.

Check the forum link in the quote above -- you'll see what I mean.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

steeladept

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,061
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #14 on: April 22, 2011, 11:56 PM »
Glad to hear it!  I found it just yesterday on AlternativeTo when I was looking for Cameyo.  This is another free one like enigma that may, or may not do what you were looking at.  AlternativeTo has a few others in the category as well.  I personally was just seeing what was out there as an alternative to VMware ThinApp which I know is a great product, but rather expensive for individual use - like most VMware products.

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #15 on: April 23, 2011, 12:02 AM »
Glad to hear it!  I found it just yesterday on AlternativeTo when I was looking for Cameyo.  This is another free one like enigma that may, or may not do what you were looking at.  AlternativeTo has a few others in the category as well.  I personally was just seeing what was out there as an alternative to VMware ThinApp which I know is a great product, but rather expensive for individual use - like most VMware products.


I've used Cameyo as well, but it's an end-user focused program, and not a developer-oriented one. There are significant drawbacks with it. If you're looking to deploy an application as a software author, Cameyo runs lower down the list of good options.

I've not tried the VMware one though. I should have a look.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,291
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #16 on: April 23, 2011, 12:05 AM »
Glad to hear it!  I found it just yesterday on AlternativeTo when I was looking for Cameyo.  This is another free one like enigma that may, or may not do what you were looking at.  AlternativeTo has a few others in the category as well.  I personally was just seeing what was out there as an alternative to VMware ThinApp which I know is a great product, but rather expensive for individual use - like most VMware products.



Ummm...

You seem to have a little, tiny, miniscule, microscopic, tendency towards understatement... ;)

http://store.vmware....;rests=1303534979056

Starting at $6,050.00?

Ummm... I think I'll stop even looking at it...

:P :D

Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,736
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #17 on: April 23, 2011, 03:57 AM »
Starting at $6,050.00?

I hope it's as least "buy one get one free" or get the second one for a penny.





JulsSmile

  • Participant
  • Joined in 2011
  • *
  • Posts: 1
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #18 on: December 13, 2011, 01:09 PM »
Have heard much about boxedapp. I too want such a program, for me it would have been helpful. How can I get the key?

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 3,629
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #19 on: December 13, 2011, 01:13 PM »
I too want such a program, for me it would have been helpful. How can I get the key?
Euhm, buy it from the publishers?

David.P

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 208
  • Ergonomics Junkie
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #20 on: May 02, 2022, 08:23 AM »
Hello Software Connoisseurs,

While the above discussion is a little over my head, perhaps there are opinions on the question of what is the best/easiest/most robust way to convert any Windows-installable software into a portable application?

Before I try out everything, especially the free Enigma Virtual Box (which doesn't seem to have a snapshots feature), furthermore paid solutions such as BoxedApp or Turbo, I would be grateful for hands-on experience any of you guys might have.

In particular, I am interested in virtualizing, or making portable, older office programs like Word 2003.

Also, is it possible to change any program settings with such a virtualized installation package when running the packaged program? I would think probably not, since these can hardly be saved back to that single exe file, right?

Many thanks already

David

Shades

  • Member
  • Joined in 2006
  • **
  • Posts: 2,939
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #21 on: May 02, 2022, 05:27 PM »
You are correct about program settings not being adjustable after the portable version is created.

And be very careful about Office 2003. While Microsoft won't care if you turn your original Office 2003 copy into a portable version for your own use, do not think that they will not come after you if that portable version of yours becomes public through any means. Do not make the mistake that Microsoft will go easy on you, because it is such an old product already. Office 2003 is functionality-wise already more than enough for most people, I get that sentiment. But all Office products are holy to Microsoft, so expect to be chased down into a (legal) corner by the zealots Microsoft employs.

And there is another thing. Most software that can create a portable version, do this by creating a system snapshot before installing the normal version of the software, then install the software and take an 'after' snapshot when the installation is finished. The differences are stored together with the executables and from that bundle a portable version is generated. Making Microsoft Office portable is very likely to fail and/or become unwieldy, as Office integrates itself very deep into Windows. Your post clearly states that you only wish Word 2003 to be portable. But any version from Office is known to share so much between applications, that with making one application portable, you might as well make all of the tools in Office portable, it will barely make a difference in the size of the generated portableapp. 

Better to use the portable version of LibreOffice, much less head-ache.

A tool I have used successfully in the past: Cameyo

Best to use a computer that has only a bare Windows installation, And it should run only the most minimal amount of background services. No Windows Update, no Windows search indexer, no printer services, no anti-virus or malware software. All those things will make the resulting portable version larger than necessary, it might even break the generated portable application. You will end up using a VM for this, it is just easier.

If you go the VM route. Create the VM and strip it down to its bare minimum. Then make a snapshot or better yet, a copy of the virtual disk file into a safe location. Now use the portabilization tool you like to create the before snapshot from all the settings inside the VM. When prompted, install the software inside the VM and when the installer is finished, the portabilization tool will take over again. If the software installer asks for a reboot, don't do that. At least with Cameyo, doing a reboot will break the portableapp generation procedure.

This portablization procedure can take its sweet time, depending on the resources available and the software itself. So be patient.

When the portableapp is finally generated, you will need to test it first. You can use the portableapp outside the VM in the host computer, for example. But any other computer, without the software ever being installed, will do. Only when you are satisfied with the resulting portableapp, you should shut down the VM, remove the whole virtual hard disk file and copy back the safety backup into the place again. So you are ready for the next piece of software to be portablized. 

If you are not satisfied with the generated portableapp, adjust settings and re-generate the portableapp. Do this until you either have a satisfactory portableapp or realize that this software doesn't lend itself to become a portableapp. The latter is a real possibility. I fully expect Word 2003 to fall into this category.

What I have noticed with portablization attempts, is that when you wish to make a portableapp that requires registration or a license key, it type of information is often not included in the generated portableapp, even when you take the time to register the software before the taking from the 'after' system snapshot.  Which is not handy when you want to portabilize a piece of software with a time-limited license, such as the ones from 'GiveAwayForThe Day'-deals or 'SharewareOnSale'-deals.

But spent the time on looking for portable versions of software that are created by the author(s) first. Quite often they have such a version available. If you see the collection of PortableApps I have collected over the years, it has become pretty impressive. It is over 30 GByte in size now and very diverse in functionality. And for all these tools I have a general or specific use. The collection would have been much, much larger if I kept everything available in portableapps form.

David.P

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 208
  • Ergonomics Junkie
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #22 on: May 03, 2022, 03:07 AM »
Hi and thanks for your detailed information!

Meanwhile, I had performed various tests. As you say, it turned out that this should definitely be done in a fresh virtual machine. I used Windows XP in VMware Workstation Player.

In contrast to the captured installations on a work laptop with Windows 11, which took hours, turned out to be like 1.5 GB in size and did not work properly afterwards, the recording of the installation of Word 2003 in the virtual machine took only a few minutes and was smaller than 50 MB!

I had also come across Cameyo in the meantime and had used it for the capturing and packaging, in what I believe was the latest version from here.

Word 2003 packaged this way seems to run fine. However, when moving the package from the virtual machine to my desktop PC with Windows 10, I got various messages from Defender regarding alleged malware.

While I know that these are false positives, I am now hesitant to run the package on the actual target machine (my office laptop where I do not have admin privileges). If a virus is reported there, then I unfortunately have the IT department coming after me right away :huh:

Also, I use Dragon NaturallySpeaking to dictate text in Word 2003, which is also a major reason why I use this old version, besides my hundreds of macros and customizations in Word 2003.

Word 2003 still shows unmatched compatibility and speed together with NaturallySpeaking.

For this to work, NaturallySpeaking needs a DLL loaded in Word by the name of dgnword.dll. I can probably include this DLL in the virtualized Word 2003 package (using Cameyo) as well, can't I?
« Last Edit: May 03, 2022, 03:20 AM by David.P »

David.P

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 208
  • Ergonomics Junkie
    • View Profile
    • Donate to Member
Re: Virtualization to Create Single EXEs from Mixed Assemblies
« Reply #23 on: May 03, 2022, 12:47 PM »
Yeah!

I made sure to do the following:

- Scanned the portable Word 2003 package with the same virus scanner that our IT uses.
- Found out that this virus scanner is also listed on VirusTotal, and did not complain about the package there either.
- Switched the work laptop to airplane mode.

And then went for it and started the portable Word 2003.

And what can I say, it runs beautifully in all its Office 2003 design glory, even perfectly crisp on a 4K screen:

fwdv17V[1].pngVirtualization to Create Single EXEs from Mixed Assemblies

Now I just have to get my settings, Normal.dot and Dragon.dll into the package as well.

By the way, any Word options that I change in the portable version are being saved!

When I close Word and open it again later, the exact settings I changed earlier are active again. Isn't that awesome.

This is probably due to the fact that the program creates a VOS folder (probably "Virtual Operating System" folder), in which all files and settings, including (virtual) registry settings, are stored.

Edit: unfortunately, my dictation program Dragon NaturallySpeaking does not recognize any dictation when I dictate in the portable version of Word. I suppose this is so because all of Word's components, DLLs etc. are stored at different paths from where they ought to be :huh:
« Last Edit: May 03, 2022, 06:37 PM by David.P »