首页
社区
课程
招聘
[求助od regsvr32时,为什么弹出注册表呢?
发表于: 2009-4-11 13:54 4791

[求助od regsvr32时,为什么弹出注册表呢?

2009-4-11 13:54
4791
我用od跟踪regsvr32 一个dll.想测试一下,regsvr32会不会调用dll 的入口点函数。
结果却弹出了注册表程序?为什么呢?

另外,哪位能解答我的疑问呢:regsvr32会不会调用dll 的入口点函数?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
你所说的“弹出了注册表程序”,是不是指打开了regedit.exe?(它叫注册表编辑器,而不是什么注册表程序)

一个DLL的入口点函数,在以下几种情况被调用(详见MSDN),而不论它被哪个进程加载:

it is called by the system when processes and threads are initialized and terminated, or upon calls to the LoadLibrary and FreeLibrary functions.


由fdwReason参数的值指出当前是哪种情况被调用:

DLL_PROCESS_ATTACH

DLL_THREAD_ATTACH

DLL_THREAD_DETACH

DLL_PROCESS_DETACH
2009-4-11 18:07
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼上的回复。确实是弹出了注册表编辑器。

我还是不明白为什么会弹出注册表编辑器?

还有就是regsvr32会不会调用入口点呢?也就是regsvr32 到底初始没初始线程呢?
2009-4-13 16:40
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
regsvr32,简化一些,就是先LoadLibrary(...),再GetProcAdress(,"DllRegisterServer",...);然后CALL一下得到的DllRegisterServer。

具体会有什么行为,完全由程序中的DllRegisterServer函数决定的,它只要CreateProcess("regedit.exe",...),那就会弹出regedit了;如果它ExitWindowsEx,那就是关机了。

第二个问题:你觉得什么是线程?每一个进程,至少有一个主线程,它是进程创建时由系统创建的;否则,进程如何运行?
2009-4-13 20:00
0
游客
登录 | 注册 方可回帖
返回
//