You are here

Possible alternative way to create portable apps

13 posts / 0 new
Last post
usminion
Offline
Last seen: 14 years 11 months ago
Joined: 2008-11-18 18:07
Possible alternative way to create portable apps

I'd like to start by saying great job with this outstanding project. I personally know over 100 people who use portable apps daily and they love it! Myself, I have always been very interested in the concept of portable applications being a software engineer by trade (and hobby), but I wonder if the current approach is the most appropriate. I've never developed an application using the portable apps approach but in general if I were to create a portable application architecture, I would probably go about it differently (I think). Keep in mind this is just a knee jerk approach and technical details would have to be ironed out. Why not just create custom system DLL's which "override" the disk I/O functionality provided by Windows? Take advantage of the Windows DLL search order (application directory is first by default). For instance, map Windows registry API functions to work with XML files in the PortableApps environment. The idea is to basically create a portable sandbox that users would carry with them. Doing so would open the PortableApps selection to any application that could be installed into the sandbox hence extending the possibilities. I understand that not EVERY application would work in this environment and there may be a possible licensing problems, but in general does this technical approach make sense? For all I know it may be how PortableApps works now, but I doubt it because you have to have a "Portable" version of an application in order for it to be compatible. Let me know what you think.

Matt

OliverK
OliverK's picture
Offline
Last seen: 2 years 9 months ago
Developer
Joined: 2007-03-27 15:21
If I remember correctly, the

If I remember correctly, the problem is that doing what you have suggested would require administrator privileges. But I'm not sure.

The next "wave", I guess you could call it, is IntelliLaunch. I'm still doing testing of it, but essentially it is a launcher configured via a ini. You edit the ini, and the launcher reads it and handles everything from there.

I've fixed the misspellings and am adding some new features.

I agree with you that the best way is just resend the registry to be built on the actual flash device, but I think that would need admin privileges.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

usminion
Offline
Last seen: 14 years 11 months ago
Joined: 2008-11-18 18:07
What about using Detours or

What about using Detours or executable patching to provide a work around to the admin privilege issue? I have done some research in this area and it appears that most alternatives use similar approaches. I have been working on some test scenarios that prove that there is a clean alternative through API hooking (implemented through one of the common approaches) without the requirement of Administrative privileges. My testing is still in "beta" so to speak but there is a good chance that you will have some open source competition over the next few months.

Zach Thibeau
Zach Thibeau's picture
Offline
Last seen: 1 year 5 months ago
Developer
Joined: 2006-05-26 12:08
using detours actually means

using detours actually means you need to install detours on that computer for it to work so it's a no go.

your friendly neighbourhood moderator Zach Thibeau

BuddhaChu
BuddhaChu's picture
Offline
Last seen: 7 years 5 months ago
Joined: 2006-11-18 10:26
All of the features you

All of the features you mention require something to be installed therefore admin privileges are required.

Cancer Survivors -- Remember the fight, celebrate the victory!
Help control the rugrat population -- have yourself spayed or neutered!

usminion
Offline
Last seen: 14 years 11 months ago
Joined: 2008-11-18 18:07
That is absolutely not true!

That is absolutely not true! I am currently working with a custom library based on concepts introduced in Detours and it has absolutely no dependencies beyond those included with any standard NT based Windows operating system. If y'all want a test environment to prove my concepts I'd be happy to provide binaries.

BuddhaChu
BuddhaChu's picture
Offline
Last seen: 7 years 5 months ago
Joined: 2006-11-18 10:26
See the Detours answer above

See the Detours answer above from Zach.

No software is ever going to "override the disk I/O functionality provided by Windows" without having something installed...as a driver, software, etc.

Cancer Survivors -- Remember the fight, celebrate the victory!
Help control the rugrat population -- have yourself spayed or neutered!

usminion
Offline
Last seen: 14 years 11 months ago
Joined: 2008-11-18 18:07
Again you are wrong and it is

Again you are wrong and it is obvious that you don't understand how Detours works. It hooks the API without having to install any sort of driver or other software and I have examples to prove it. The only implementation restriction is that you have to run the binaries you want hooked through a launcher similar to what PortableApps does today. I have a basic launcher coded but it still needs a little work, and I have a sample hook DLL that needs to be extended to cover all of the APIs to be hooked. Those of you that keep saying that it isn't possible need to learn what Detours does or at least ask for an example and PROVE me wrong.

BuddhaChu
BuddhaChu's picture
Offline
Last seen: 7 years 5 months ago
Joined: 2006-11-18 10:26
As Zach and I both stated,

As Zach and I both stated, Detours itself has to be installed on the target system since it comes in .msi file. Therefore, it's useless to us.

See the discussion in these forums about .NET and it's uselessness to us also.

PROVE to us that Detours doesn't need to be installed on the target machine and then we may listen to your ranting.

Cancer Survivors -- Remember the fight, celebrate the victory!
Help control the rugrat population -- have yourself spayed or neutered!

usminion
Offline
Last seen: 14 years 11 months ago
Joined: 2008-11-18 18:07
Have you ever used Detours?

Have you ever used Detours? Yes the DEVELOPMENT files distributed for building Detours libraries is distributed as a MSI however once you build the Hooking DLL and a launcher those files are standalone with the exception of the Detoured.dll file. Even that is beside the point though because I have created a hooking mechanism based on concepts introduced by Detours which no longer requires the Detoured.dll or any DLL outside what is included in a standard Windows installation. If you don't believe me check out my simple RunHooked API hooking example. This example shows the ExitProcess API function hooked using a mechanism similar to that used by Detours. The application distributed to be hooked (even though you can use any application) is a simple HelloWorld executable. The "launcher" is called RunHooked.exe. It takes 2 parameters, /d Hook.dll and a command line to hook. Extract the zip to a directory on your local PC and start a command prompt. Navigate to the directory which you have extracted the example to. First run HelloWorld.exe to prove that it is just a simple executable that displays the text "Hello World", then run the following command line:

> RunHooked /d:ExitProcHook.dll HelloWorld

The ExitProcHook.dll is my simple Hook DLL which displays a message box containing "Closing Application" when the ExitProcess API function call is used. The version in my file share also has a couple debug messages stating when the Hook is actually being attached and detached from the executable. It works with all of the standard Windows executables that I could think of. Please try it yourself and try it extensively. I know that this example does not include all of the Hooks necessary for what I have proposed, but it proves that the API Hooking can be accomplished without installation. I have another hook DLL (a work in progress so to speak) that implements most of the Windows API I/O functions including Registry edits and File I/O but it still needs some work before I'll be consider it beta. Hopefully this simple example will prove what my suggested hooking mechanism is capable of and maybe even get some of you long time Portable Apps folks looking for a better alternative as well.

m2
Offline
Last seen: 13 years 1 month ago
Joined: 2006-12-12 12:00
You stand correct, it's not

You stand correct, it's not only possible, it has been done. At least twice:
-VMWare ThinApp (formerly Thinstall)
-JauntePE
I've heard that XEN is working on a similar thing too.

Using this way has been suggested here a few times, but nobody feels to be capable of implementing it.

So if you want to be such person, please forget about naysayers and go on. Want to be original? Do it at the source level. It's going to be more integrated and less error prone. Though probably limited to only 1 language.

Whether you want to do it or not, I recommend you to download a ThinApp trial and read the docs. This is a true piece of programming art and you seem to be a person advanced enough to really admire it's beauty.

OliverK, Zach Thibeau, BuddhaChu:
Self confidence has some advantages but I suggest to verify your beliefs before trying to put creative people down.

"Those people who think they know everything are a great annoyance to those of us who do." Asimov

usminion
Offline
Last seen: 14 years 11 months ago
Joined: 2008-11-18 18:07
Thank you m2 for your

Thank you m2 for your supportive comments. I have used ThinApp professionally for a while now and have been very happy with my experience but I believe the price tag is a little much to be practical for individual users. I am not at all familiar with JauntePE but will definitely look into it. I am going to continue down the path that I am on and hopefully have something complete to show by the end of January if not sooner.

OliverK, Zach Thibeau, BuddhaChu - I appreciate the criticism and skepticism; without it I probably would have given up on my idea.

Mark Sikkema
Offline
Last seen: 12 years 6 months ago
Developer
Joined: 2009-07-20 14:55
Are you still around ?

If only there would be a very simple hook to redirect the Cookies & Temporary Internet Files ?

It would solve some issues ! (for me anyway)

[edit] free to redistribute or open source of course !

Formerly Gringoloco
Windows XP Pro sp3 x32

Log in or register to post comments