无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5013|回复: 20
打印 上一主题 下一主题

PE下系统的DLL外置了再复制回后一定要注册吗

[复制链接]
跳转到指定楼层
1#
发表于 2009-8-12 15:23:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各位老大,PE为了要减少内核的大小,一般都会把一些DLl和部分程序外置,启动时再复制回SYSTEM32下面,这时这些原来就是PE核心下DLL外置了再复制回后一定要注册吗?我发现好多不用注册,直接复制回来后也一样正常使用。请教下那些必须注册,那些不用注册。

我自己用的PE外置了这些:


QUOTE:
7Z.DLL                            LZ32.DLL                         STOBJECT.DLL
7ZG.EXE                         MAKECAB.EXE                 TASKMGR.EXE
7-ZIP.DLL                       MFC42LOC.DLL               TIMEDATE.CPL
asycfilt.dll                       MSCMS.DLL                     vbscript.dll
ATL.DLL                          MSPAINT.EXE                  VGA861.FON
ATTRIB.EXE                    msvbvm60.dll                  WINABC.CWD
AVICAP32.DLL                MSVFW32.DLL                 WINABC.IME
BATMETER.DLL               NDPTSP.TSP                    WINABC.OVL
BROWSELC.DLL              netid.dll                           WINMM.DLL
C_949.NLS                     NETRAP.DLL                    WINRNR.DLL
C_20127.NLS                 NETUI0.DLL                     WINWB86.IME
C_28591.NLS                 NETUI1.DLL                     WINWB86.MB
CALC.EXE                       NTSHRUI.DLL                  wscript.exe
CHKNTFS.EXE                 ODBCBCP.DLL                 wshext.dll
CREDUI.DLL                   OLECLI32.DLL                 wshom.ocx
DESKADP.DLL                 OLECNV32.DLL                WSOCK32.DLL
DESKMON.DLL                OLEPRO32.DLL               WTSAPI32.DLL
ELS.DLL                          OLESVR32.DLL                xcopy.exe
ESENT.DLL                      OLETHK32.DLL                XnView.dll
EXPAND.EXE                   OPENGL32.DLL                XPSP2RES.DLL
FMIFS.DLL                      PDH.DLL                          
FORMAT.COM                POWRPROF.DLL
GLU32.DLL                      REGEDT32.EXE
H323.TSP                       RICHED20.DLL
HashTab.dll                    RICHED32.DLL
HID.DLL                          RSVPSP.DLL
HIDPHONE.TSP              scrrun.dll
hotplug.dll                      SEND.DLL
ICCVID.DLL                    SHELLSTYLE.DLL
INDICDLL.DLL                 SHFOLDER.DLL
INSTALLIME.EXE            SHOWDRIVE.EXE
INTERNAT.EXE               SHOWFILE.VBS
LINKINFO.DLL                SNMPAPI.DLL
LPK.DLL                          STDOLE2.TLB


但我只注册了下面三个就行。好像也没什么不正常。
REGSVR32 /S SEND.DLL
REGSVR32 /S HashTab.dll
REGSVR32 /S XnView.dll

[ 本帖最后由 潮退潮生 于 2009-8-13 00:09 编辑 ]
2#
发表于 2009-8-12 16:26:02 | 只看该作者
注册一下,说不能注册的就不用注册。
回复

使用道具 举报

3#
发表于 2009-8-12 17:20:52 | 只看该作者
我的PE里面的一些DLL都是外置的,很少再复制到内核,给一个环境变量就得了。
回复

使用道具 举报

4#
发表于 2009-8-12 18:18:33 | 只看该作者
看放哪  放system32下的都不用注册
回复

使用道具 举报

5#
 楼主| 发表于 2009-8-12 19:47:48 | 只看该作者
原帖由 hw5837 于 2009-8-12 17:20 发表
我的PE里面的一些DLL都是外置的,很少再复制到内核,给一个环境变量就得了。

一般为了体积都做成7Z包,要解压回SYSTEM32.变量用不上。
回复

使用道具 举报

6#
 楼主| 发表于 2009-8-12 19:49:53 | 只看该作者
原帖由 yichya 于 2009-8-12 16:26 发表
注册一下,说不能注册的就不用注册。

不能注册当然不用注册,我是想能不用注册尽量不注册
回复

使用道具 举报

7#
发表于 2009-8-12 21:50:01 | 只看该作者
该注册的一定要注册,保险起见,可以把system32下面的文件全部注册一遍,用命令,很快的
回复

使用道具 举报

8#
发表于 2009-8-12 23:03:10 | 只看该作者
有那些是可以外置的?或者说有哪些文件是必须要放在启动内核的(也就是说启动必须的)?大大们能给个列表就好了!!我也想将一些系统文件和应用文件一起外置!!
回复

使用道具 举报

9#
 楼主| 发表于 2009-8-12 23:17:09 | 只看该作者
原帖由 free68 于 2009-8-12 23:03 发表
有那些是可以外置的?或者说有哪些文件是必须要放在启动内核的(也就是说启动必须的)?大大们能给个列表就好了!!我也想将一些系统文件和应用文件一起外置!!

我自己用的PE外置了这些:
7Z.DLL                            LZ32.DLL                         STOBJECT.DLL
7ZG.EXE                         MAKECAB.EXE                 TASKMGR.EXE
7-ZIP.DLL                       MFC42LOC.DLL               TIMEDATE.CPL
asycfilt.dll                       MSCMS.DLL                     vbscript.dll
ATL.DLL                          MSPAINT.EXE                  VGA861.FON
ATTRIB.EXE                    msvbvm60.dll                  WINABC.CWD
AVICAP32.DLL                MSVFW32.DLL                 WINABC.IME
BATMETER.DLL               NDPTSP.TSP                    WINABC.OVL
BROWSELC.DLL              netid.dll                           WINMM.DLL
C_949.NLS                     NETRAP.DLL                    WINRNR.DLL
C_20127.NLS                 NETUI0.DLL                     WINWB86.IME
C_28591.NLS                 NETUI1.DLL                     WINWB86.MB
CALC.EXE                       NTSHRUI.DLL                  wscript.exe
CHKNTFS.EXE                 ODBCBCP.DLL                 wshext.dll
CREDUI.DLL                   OLECLI32.DLL                 wshom.ocx
DESKADP.DLL                 OLECNV32.DLL                WSOCK32.DLL
DESKMON.DLL                OLEPRO32.DLL               WTSAPI32.DLL
ELS.DLL                          OLESVR32.DLL                xcopy.exe
ESENT.DLL                      OLETHK32.DLL                XnView.dll
EXPAND.EXE                   OPENGL32.DLL                XPSP2RES.DLL
FMIFS.DLL                      PDH.DLL                          
FORMAT.COM                POWRPROF.DLL
GLU32.DLL                      REGEDT32.EXE
H323.TSP                       RICHED20.DLL
HashTab.dll                    RICHED32.DLL
HID.DLL                          RSVPSP.DLL
HIDPHONE.TSP              scrrun.dll
hotplug.dll                      SEND.DLL
ICCVID.DLL                    SHELLSTYLE.DLL
INDICDLL.DLL                 SHFOLDER.DLL
INSTALLIME.EXE            SHOWDRIVE.EXE
INTERNAT.EXE               SHOWFILE.VBS
LINKINFO.DLL                SNMPAPI.DLL
LPK.DLL                          STDOLE2.TLB

但我只注册了下面三个就行。好像也没什么不正常。
REGSVR32 /S SEND.DLL
REGSVR32 /S HashTab.dll
REGSVR32 /S XnView.dll

[ 本帖最后由 潮退潮生 于 2009-8-12 23:20 编辑 ]
回复

使用道具 举报

10#
发表于 2009-8-13 01:07:50 | 只看该作者
如果复制回system32的目录,好像基本上都不用注册的,注册了也是白搭
有哪个运行不正常再注册好了
回复

使用道具 举报

11#
发表于 2009-8-13 07:59:15 | 只看该作者
资源中带REGINST的要注册。
回复

使用道具 举报

12#
发表于 2009-8-13 08:37:58 | 只看该作者
有一个最简单的办法,
1.dir /b > c:\list.txt
2.打开EXCEL,导入数据,把LIST.TXT的全部数据导入一个表的B列中(A也成,一会剪切到B)
3.把A列的格里写上call $,跟B列一样长。
4.导出成TXT格式,会提示你什么编码的,不用管。
5.用记事本(就是WINDOWS带的那个,用别的不见得成功)打开它,中间有一个很长的空格,把它用替换全部删掉。
6.在第一行前加上一行:logs c:\reg.txt
7.在最后一行后加上一行:logs
8.保存成REG.INI
9.用PECMD LOAD reg.ini
10.打开c:\reg.txt,看着,只要不是操作成功完成的,就不用注册了。
回复

使用道具 举报

13#
发表于 2009-8-13 08:40:00 | 只看该作者
原帖由 netwinxp 于 2009-8-13 07:59 发表
资源中带REGINST的要注册。

干脆用IDA反汇编,看导出函数表里有DllRegisterServer的就得注册吧。
回复

使用道具 举报

14#
发表于 2009-8-13 09:25:58 | 只看该作者
LOGS %SystemRoot%\DLL.LOG   

FORX %SystemRoot%\SYSTEM32\*.DLL,AnyDLL,0,CALL $%AnyDLL% 

LOGS 


加载一下,查看DDL.LOG 就知了
回复

使用道具 举报

15#
发表于 2009-8-13 11:21:15 | 只看该作者

回复 #14 oym2007 的帖子

这个方法从原理上来讲和我的差不多,不过更简洁简便.
回复

使用道具 举报

16#
发表于 2009-8-13 11:57:22 | 只看该作者
还是不太明白 REGSVR32 具体做了些什么
存在reginst项执行reginst项?
注册表登记dll所在路径?
回复

使用道具 举报

17#
发表于 2009-8-13 12:06:53 | 只看该作者
REGINST是一个INF文件.
回复

使用道具 举报

18#
发表于 2009-8-13 22:28:19 | 只看该作者
应该不会吧
回复

使用道具 举报

19#
发表于 2009-8-13 22:53:45 | 只看该作者
有些重要的是要注册的,在我看来,那些DLL 一般在PE的制作过程中似乎就被注册了(能在HKCR\CLSID下找到对应项)

而::::
但我只注册了下面三个就行。好像也没什么不正常。
REGSVR32 /S SEND.DLL
REGSVR32 /S HashTab.dll
REGSVR32 /S XnView.dll
这些貌似都是目录或右键扩展。。。


其实可以这样的,在CLSID下的InprocServer32
下不指定目录,只指定文件名。
然后在PATH下加入DLL的路径,这样就可以了,而且当系统目录下有该文件时会优先使用。
回复

使用道具 举报

20#
发表于 2009-8-13 22:57:06 | 只看该作者
原帖由 yichya 于 2009-8-13 08:37 发表
有一个最简单的办法,
1.dir /b > c:\list.txt
2.打开EXCEL,导入数据,把LIST.TXT的全部数据导入一个表的B列中(A也成,一会剪切到B)
3.把A列的格里写上call $,跟B列一样长。
4.导出成TXT格式,会提示你 ...



BAT更简单...

for /f "delims=" %%i in ('dir %systemroot%\system32\*.dll') do (
regsvr32 /s %%i
if not errorlevel 0 echo %%i >>%temp%\error.txt
)
回复

使用道具 举报

21#
 楼主| 发表于 2009-8-13 23:43:42 | 只看该作者
谢谢楼上各位的指点,先去试试,完了再反溃
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-10 15:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表