读书人

散分推荐一款制作单独EXE的软件使

发布时间: 2012-05-03 14:06:56 作者: rapoo

散分,推荐一款制作单独EXE的软件,使用VB、.NET搞绿色软件的可以参考
工具介:Thinstall
作者:蔡


2004 年 9 月

完,需要始考到部署 (deployment) 的。部署往往不是一件的事,有一些需要解。早期,Java 尚未普及,多 Java 程式都面一困,那就是:用 Java 出的,不保可以在其他人的 PC 上行,因人可能有安 JRE (Java Runtime Environment,Java 行境)。即使有安 JRE,JRE 的版本可能也不。即使是在,依然存在。

同地,.NET在也遇到。目前,只有 Windows Server 2003 先安好 .NET Framework,其他的作系都有先安 .NET Framework。造成有些公司在估工具, .NET,而就 MFC,甚至回到 Win32 API,竟 MFC 和 Win32 的 DLL 在所有的 Windows 平台上都有。我常得可「技不死,只是凋零」,凋零得真慢呢!

如果安程式 .NET Framework 附在其中,造成一些:安 .NET Framework 需要有足的限,限不法安。例如,Guest 法存取 Registry,安 .NET Framework 需要存取 Registry。另外,也是一大,.NET Framework 下超 20MB(安後超100MB)。

幸好,有一些商提供工具可以解此,Thinstall 正是一的工具。在 .NET Framework 尚未普及的今日,的工具更得重要。Thinstall 是 Jitit 公司的品,你可以在 http://thinstall.com/ 找到它的料,以及下 30 天用版。

名思, Thinstall 是 Thin-Install 的意思,免於安的困。利用 Thinstall ,可以一的多案包 (package) 成一 EXE ,不需要解,不需要安 (install),就可以直接行。利用 Thinstall ,你可以 .NET Framework 和你的程式,以及相的案都包在一起,成一自自足的 EXE 。

除了 .NET Framework 包 EXE 之外,Thinstall 有一些外的好,包括了:

可以 3rd Party 程式,以及相的案,都包在一 EXE 中,程式行,不有案失的。
Thinstall 使用的技,比例可以比 ZIP 或 RAR 更高。
Thinstall 不整 .NET Framework 都包 EXE,只把有使用到的部分包 EXE,加上使用技,使得包出的程式不大,一般都在 3~8MB 之。
Thinstall 有使用加密技,可以保障料案不易地被他人改,程式也更不容易被反和反。
Thinstall 整合安程式的功能,可以建立始 (Start Menu) 桌面捷 (Desktop Shortcut)。
Thinstall 可以成 30 天用版 (Trial)。
使用 Thinstall 也不是全然有缺,最明的缺是,行效率或多或少受到影,且浪更多。我的是,大多的程式感不出效率差,但某些用到特殊的技巧的程式,其效率的差了。另外,使用 Thinstall ,必考到法律的。因 Thinstall 多程式都包,些人的程式 (包括.NET Framework) 是否可以著你的 EXE 而散播,Thinstall 的使用者需要好好研究其授方式。

Thinstall 的使用方式非常容易,你可以在 Thinstall 的站上看到用法介。值得注意的是,Jitit 公司不希望 Thinstall 品被不合法地用,所以於 Thinstall 的保相格。使用 Thinstall ,必能上,因 Thinstall 需要到 License Server,得知你是否合法的用 (或用),否不能行 Thinstall。你也可以向他 USB 的 Key,就可以不用上,使用 Thinstall。

Thinstall 可以利用PE案格式的 Import Table,以及利用 .NET Metadata Table 的,得知此程式使用了哪些 DLL,Thinstall 自加入些 DLL,甚至接使用到的 DLL (也就是 DLL 所使用的 DLL),也被自加入。但是,Thinstall 法得知程式中利用 Win32 的 LoadLibrary() 或 .NET的Assembly.Load() 等API所入的 DLL 有哪些,所以使用者必自行些 DLL 加入到 Thinstall 中,以免包出的 EXE 缺不全。

Thinstall 用的制相巧妙,利用一 Virtual OS 程式和 OS 隔。如果你的程式是 .NET 程式,在你的程式和 Virtual OS 之,有一 .NET CLR,如 1 所示:


1
如果你利用Thinstall包.NET程式,那Thinstall所生出的EXE,除了包含你的原始EXE之外,有.NET Framework,以及Thinstall Virtual OS,如2所示。


2
Thinstall Virtual OS 重新改了 300+ Win 32 API,些 API 大都是和案、Registry、Process 等有。Virtual OS 有自己的 Virtual File System 和 Virtual Registry。些被改的 API, Virtual File System 和 Real File System 整合起,成一新的 File System; Virtual Registry 和 Real Registry 整合起,成一新的 Registry。

系入此 Thinstall 包出的 EXE ,Virtual OS 先被入,Virtual OS 接著入原始的 EXE (以及.NET Framework),然後解解密、更改此 EXE(以及.NET Framework) 所使用到的 300+ API,使其呼叫到 Virtual OS 的版本,而不是 Real OS 的版本。最後把行交此 EXE。偷天日的工作,於是完成!

因 Thinstall 部使用套 Virtual OS 的制,而不是 .NET 一的制,所以 Thinstall 除了用包 .NET 程式,也可以用包 Java 程式,甚至 VB,或其他程式。我得是一套很方便的工具,值得您也。

地址:http://msdn.microsoft.com/zh-tw/library/dd229231.aspx

[解决办法]
顶一下。
[解决办法]
支持
[解决办法]
路过帮顶~
[解决办法]
up
[解决办法]
up
[解决办法]
还是翻译成简体中文吧

工具介绍:Thinstall
作者:蔡学镛




2004 年 9 月

软体开发完毕,需要开始考虑到部署 (deployment) 的问题。部署往往不是一件简单的事,有一些问题需要解决。早期,Java 尚未普及时,许多 Java 程式员都会面临一个困扰,那就是:用 Java 开发出来的软体,不保证可以在其他人的 PC 上执行,因为别人可能没有安装 JRE (Java Runtime Environment,Java 执行环境)。即使有安装 JRE,JRE 的版本可能也不对。即使是现在,这个问题依然存在。

同样地,.NET现在也遇到这个问题。目前,只有 Windows Server 2003 预先安装好 .NET Framework,其他的作业系统都没有预先安装 .NET Framework。这会造成有些公司在评估开发工具时,会舍弃 .NET,而就 MFC,甚至回到 Win32 API,毕竟 MFC 和 Win32 的 DLL 在所有的 Windows 平台上都有。我常觉得这可称为「旧技术不死,只是凋零」,凋零得还真慢呢!

如果让安装程式将 .NET Framework 附在其中,会造成一些问题:安装 .NET Framework 时需要有足够的权限,权限不够则无法安装。例如,Guest 帐户无法存取 Registry,安装 .NET Framework 需要存取 Registry。另外,体积也是一个大问题,.NET Framework 下载超过 20MB(安装後超过100MB)。

幸好,有一些软体厂商提供工具可以解决此问题,Thinstall 正是一个这样的工具。在 .NET Framework 尚未普及的今日,这样的工具更显得重要。Thinstall 是 Jitit 公司的产品,你可以在 http://thinstall.com/ 找到它的资料,以及下载 30 天试用版。

顾名思义, Thinstall 是 Thin-Install 的意思,让软体免於安装的困扰。利用 Thinstall ,可以将一个软体的许多档案包装 (package) 成一个 EXE 档,不需要解压缩,不需要安装 (install),就可以直接执行。利用 Thinstall ,你可以将 .NET Framework 和你的程式,以及相关的档案都包装在一起,变成一个自给自足的 EXE 档。

除了将 .NET Framework 包装进 EXE 之外,Thinstall 还有一些额外的好处,包括了:

可以将 3rd Party 程式库,以及相关的档案,都包装在一个 EXE 档中,让程式执行时,不会有档案遗失的状况。
Thinstall 使用的压缩技术,压缩比例可以比 ZIP 或 RAR 更高。
Thinstall 并不会将整个 .NET Framework 都包装进 EXE,只把有使用到的部分包装进 EXE,加上使用压缩技术,这使得包装出来的程式体积不大,一般都在 3~8MB 之间。
Thinstall 有使用加密技术,可以保障资料档案不会轻易地被他人窥视与窜改,程式也更不容易被反编译和反组译。
Thinstall 整合安装程式的功能,可以建立开始选单 (Start Menu) 与桌面捷径 (Desktop Shortcut)。
Thinstall 可以让软体变成 30 天试用版 (Trial)。
使用 Thinstall 也不是全然没有缺点,最明显的缺点是,执行效率会或多或少受到影响,且浪费更多记忆体。我的经验是,大多数的程式感觉不出效率变差,但某些用到特殊的技巧的程式,其效率的确变差了。另外,使用 Thinstall 时,必须考虑到法律的问题。因为 Thinstall 将许多程式库都包装进来,这些别人开发的程式库 (包括.NET Framework) 是否可以随着你的 EXE 而散播,Thinstall 的使用者需要好好研究其授权方式。

Thinstall 的使用方式非常容易,你可以在 Thinstall 的网站上看到用法介绍。较值得注意的是,Jitit 公司不希望 Thinstall 产品被不合法地盗用,所以对於 Thinstall 的保护相当严格。使用 Thinstall 时,电脑必须能上网,因为 Thinstall 需要连线到 License Server,来得知你是否为合法的用户 (或试用户),否则将不能执行 Thinstall。你也可以向他们购买 USB 的 Key,就可以不用上网,离线使用 Thinstall。

Thinstall 可以利用PE档案格式的 Import Table,以及利用 .NET Metadata Table 内记录的资讯,来得知此程式使用了哪些 DLL,Thinstall 会自动加入这些 DLL,甚至连间接使用到的 DLL (也就是 DLL 所使用的 DLL),也会被自动加入。但是,Thinstall 无法得知程式中利用 Win32 的 LoadLibrary() 或 .NET的Assembly.Load() 等API所动态载入的 DLL 有哪些,所以使用者必须自行将这些 DLL 加入到 Thinstall 中,以免包装出来的 EXE 档残缺不全。

Thinstall 采用的机制相当巧妙,利用一个 Virtual OS 将程式和 OS 隔开来。如果你的程式是 .NET 程式,则在你的程式和 Virtual OS 之间,还有一个 .NET CLR,如图 1 所示:


图 1
如果你利用Thinstall来包装.NET程式,那麽Thinstall所产生出来的EXE档内,除了包含你的原始EXE档之外,还有.NET Framework,以及Thinstall Virtual OS,如图2所示。


图 2
Thinstall Virtual OS 重新改写了 300+ 个 Win 32 API,这些 API 大都是和档案、Registry、Process 等有关。Virtual OS 内有自己的 Virtual File System 和 Virtual Registry。这些被改写的 API,将 Virtual File System 和 Real File System 整合起来,成为一个新的 File System;将 Virtual Registry 和 Real Registry 整合起来,变成一个新的 Registry。

当系统载入此 Thinstall 包装出来的 EXE 时,Virtual OS 会先被载入,Virtual OS 会接着载入原始的 EXE (以及.NET Framework),然後解压缩与解密、并该更改此 EXE(以及.NET Framework) 所使用到的这 300+ API,使其呼叫到 Virtual OS 的版本,而不是 Real OS 的版本。最後把执行权交给此 EXE。偷天换日的工作,於是完成!

因为 Thinstall 内部使用这套 Virtual OS 的机制,而不是针对 .NET 来设计一个专属的机制,所以 Thinstall 除了用来包装 .NET 程式,也可以用来包装 Java 程式,甚至 VB,或其他程式。我觉得这是一套很方便的工具,值得您也试试。

地址:http://msdn.microsoft.com/zh-tw/library/dd229231.aspx
[解决办法]
这是个办法
[解决办法]
WIN7即将流行,库问题很快消失.

读书人网 >.NET

热点推荐