找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 56158|回复: 20

[系统相关] [已解决]批处理如何获取DLL路径?

[复制链接]
发表于 2009-10-19 18:50:17 | 显示全部楼层 |阅读模式
思路是先用TASKLIST /M列出所有进程调用的DLL,接着,用命令获取DLL的详细路径,并赋予给%%A

希望各位帮忙写出来,本人能力有限。

参见DOS联盟贴 http://www.cn-dos.net/forum/viewthread.php?tid=49030&fpage=1

希望能有P处理版本的出现。本人能力有限,期待各位帮忙!

[ 本帖最后由 luckboy45 于 2009-10-24 17:19 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2009-10-19 19:17:59 | 显示全部楼层
[原创][安全类脚本]VBS版进程放大镜(显示进程加载的所有模块(*.dll)详细信息)
http://www.bathome.net/viewthread.php?tid=339
发表于 2009-10-19 19:31:16 | 显示全部楼层

回复 1楼 的帖子

发表于 2009-10-19 21:39:11 | 显示全部楼层
另一个相关应用:
杀死调用某个指定dll文件的所有进程
http://bbs.verybat.org/viewthread.php?tid=15362
发表于 2009-10-19 23:28:37 | 显示全部楼层
原帖由 luckboy45 于 2009-10-19 18:50 发表
思路是先用TASKLIST /M列出所有进程调用的DLL,接着,用命令获取DLL的详细路径,并赋予给%%A

希望各位帮忙写出来,本人能力有限。

参见DOS联盟贴 http://www.cn-dos.net/forum/viewthread.php?tid=49030&fpag ...

用wmic取commandline該可以
发表于 2009-10-20 20:29:57 | 显示全部楼层
本论坛早已经有纯批处理的了
请见 进程与DLL模块相互查询及管理批处理版 http://bbs.bathome.net/thread-530-1-7.html
 楼主| 发表于 2009-10-21 18:34:00 | 显示全部楼层

回复 6楼 的帖子

兄弟的P处理写的不错,不过真遗憾,我的XP精简系统没有你所写的msinfo32 。。。。
start msinfo32 /categories +swenvloadedmodules /report particular.txt

我只希望能出现WMIC版本的P处理脚本,如果是调用外部工具PV的就免贴代码了,我有现成代码的。。。希望WMIC擅长的朋友能帮忙写出来,也好共同学习下!

还有一个问题,使用WMIC JOB 获得计划任务列表,或者用AT命令也可以,只要实现,列出所有的计划任务及该任务的程序路径,我曾试过用DIR那计划任务文件夹来获得计划任务,不过效果不理想,也希望各位看到后给一并解决掉,请务必帮忙,谢谢各位楼上的朋友热情帮忙!有电脑病毒问题请来我博客留言求救,我一定给予解决!
发表于 2009-10-21 19:06:33 | 显示全部楼层

回复 7楼 的帖子

你怎么不看3楼给出的链接?
 楼主| 发表于 2009-10-21 19:13:15 | 显示全部楼层

回复 8楼 的帖子

3楼的我看过的,没有我想要的结果,且运行多无效果。。。。说无效查询
发表于 2009-10-21 21:52:56 | 显示全部楼层
尝试一下获得进程 explorer.exe 的DLL地址:
  1. wmic process where name="explorer.exe" assoc
复制代码
 楼主| 发表于 2009-10-23 18:06:43 | 显示全部楼层

回复 10楼 的帖子

可能我的系统是GHOST版的关系,代码无任何效果可言。。。很感谢你的帮忙!

看样子这个帖子是比较有挑战难度的啊!~还是期待有能力的各位能帮忙写出来,

具体要求见7楼
发表于 2009-10-23 19:12:35 | 显示全部楼层

回复 11楼 的帖子

大家给的那些链接中的代码你都看过吗?还是看了之后不懂?随便修改一下就可以了。如果是不懂请直说,大家会直接给你写代码,而不用这么白费口舌。

另外,请不要在一个帖子中问多个主题不同的问题。问题如果有更新,请在顶楼编辑。
 楼主| 发表于 2009-10-23 19:42:32 | 显示全部楼层
感谢各位的帮助!

[ 本帖最后由 luckboy45 于 2009-10-24 17:18 编辑 ]
 楼主| 发表于 2024-11-1 15:17:08 | 显示全部楼层
将老帖重新顶起来,需要实现的效果是,过滤系统DLL,思路是获取所有进程和进程调用的所有DLL详细路径,接着过滤掉重复的DLL,然后用wmic datafile where "name='!a:\=\\!'" get manufacturer /value ,获得他们的签名,再过滤掉微软签名的DLL,从而达到最终过滤出可疑DLL的目的。

我是使用start msinfo32 /categories +swenvloadedmodules /report %temp%\a.txt来实现的,期待有不同方案。
发表于 2024-11-2 15:05:40 | 显示全部楼层
回复 14# luckboy45

用14楼要求的流程走一遍,只有获取*.dll全路径的可选方法不多,其中借用powershell一行流似乎至为简洁,但首启 ps 稍慢点,既然请ps进门了就顺手把 ‘去重’ 也给练了...
以下代码仅供参考

  1. @echo off &cd.>"0.0" &tasklist /m /fo csv|findstr /iv "映像名称 暂缺 tasklist.exe findstr.exe">0.1
  2. powershell "gc 0.1|%%{$_.split('.')[0].substring(1)}|select -unique|%%{gps $_|select -expandproperty modules|select filename|ac 0.0};gc 0.0|select -unique|sc 0.1"
  3. setlocal enabledelayedexpansion & (for /f "tokens=2 delims=}=" %%a in (0.1) do (
  4.    set "a=%%a" &for /f "tokens=2 delims==" %%v in (
  5.    'wmic datafile where "name='!a:\=\\!'" get manufacturer /value^|find "=" '
  6. ) do set "v=%%v" &if /i "!v!"=="!v:microsoft corporation=!" echo,[%%a] !v:~,-1!))>list.txt
  7. del/q "0.?"&endlocal&pause&exit/b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:48 , Processed in 0.022704 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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