阅读:3464回复:10
[原创]工作了.只有周末才有闲功夫作点小程序了.源代码含
刚刚论坛上有朋友问怎么获取某个设备对应的volume的名字
就像windows的safely remove device所完成的那样 其实很简单 稍微跟踪下就知道windows是怎么完成的 作驱动的,softice难道还不够熟练么..就那么点汇编代码一下子就跟踪出来了..呵呵 源代码参上.... 没有使用什么未公开的函数 每个函数都能用msdn搜索到. 这个代码作为一个例子演示一下windows是怎么完成这个功能的 在他的基础上要实现一些比如给定一个盘符删除对应的设备的程序那自然易如反掌... stobject.dll是windows那个任务栏小图标控制代码的dll 要找到他很简单 addr explorer.记录下pid bpx shell_notifyicon if(pid == xxx) 然后插拔一下u盘 softice就跳出来了... 记录下hwnd跟messageid 用spy++一类的工具看看hwnd的窗口函数 map32看看地址 就能知道那个dll的名字了 然后bpx 到窗口函数 if(*(esp+8) == msgid) 然后鼠标移动到那个小图标上面去 softice又跳出来了 跟踪进去就能如何如何 再然后随便用个什么反汇编的工具分析一下就行了. |
|
最新喜欢:asdfsl... |
沙发#
发布于:2005-04-02 20:59
源代码里面只是获取了第一个volume的盘符
要获取全部的盘符很简单 用个缓冲区保存所有的盘符 每找到一个就放一个进去 这样就能收集全部的盘符了 一时疏忽忘记这个了....不好意思 |
|
板凳#
发布于:2005-04-02 21:32
修改了几个bug.现在能收集全部的盘符
大家下载这个版本的吧 |
|
|