无忧启动论坛

标题: 关于WIM文件只读可写挂载. [打印本页]

作者: chenall    时间: 2008-1-25 12:05
标题: 关于WIM文件只读可写挂载.
是不是可以修改WIMGAPI.DLL里面GetFileAttributesW的返回值,
应该有一个对比的过程,我想应该只需要修改一下这个对比的过程,是不是就可以实现只读属性可写挂载呢?
这个对比应该是用位的. 按位“与”, 按位“异”, 按位“或”其中一种,

论坛里有没有会汇编的,反编译修改下,感觉应该可行.
作者: neo4026    时间: 2008-1-25 12:40
不用反汇编
叫123MM写个API HOOK就可以了

我看看有没调用这个API...

  1. 00884172   CALL DWORD PTR DS:[<&KERNEL32.GetFileAtt  kernel32.GetFileAttributesW
  2. 00884190   CALL DWORD PTR DS:[<&KERNEL32.SetFileAtt  kernel32.SetFileAttributesW
  3. 008841B5   CALL DWORD PTR DS:[<&KERNEL32.CreateFile  kernel32.CreateFileW
  4. 008841DE   CALL DWORD PTR DS:[<&KERNEL32.SetFileAtt  kernel32.SetFileAttributesW
复制代码


想像一下按这个顺序这个搭配会做什么工作...

[ 本帖最后由 neo4026 于 2008-1-25 12:43 PM 编辑 ]
作者: neo4026    时间: 2008-1-25 12:51
找到的相关汇编代码如下 劳烦兄弟们帮看看了
俺只能帮忙帮到这里

没搞错的话应该是选中那里

OD.JPG (91.73 KB, 下载次数: 44)

OD.JPG

作者: chenall    时间: 2008-1-25 13:58
不懂汇编.
试下修改
CMP EAX,-1
修改后面的跳转
作者: 123    时间: 2008-1-25 15:05
关键是有谁搞出来了?
作者: neo4026    时间: 2008-1-25 15:44
MSDN上不去 baidu了下 说明如下:
原形 DWORD GetFileAttributes(
LPCTSTR lpFileName // address of the name of a file or directory
);
注明 function GetFileAttributesW(lpFileName: PWideChar): DWORD; stdcall;
功能 返回文件的属性
说明 FILE_ATTRIBUTE_ARCHIVE | 存档文件
FILE_ATTRIBUTE_COMPRESSED | 压缩文件
FILE_ATTRIBUTE_DIRECTORY | 目录
FILE_ATTRIBUTE_HIDDEN | 隐含文件
FILE_ATTRIBUTE_NORMAL | 正常文件
FILE_ATTRIBUTE_OFFLINE | 脱机文件
FILE_ATTRIBUTE_READONLY | 只读文件
FILE_ATTRIBUTE_SYSTEM | 系统文件
FILE_ATTRIBUTE_TEMPORARY | 临时文件
-1 | 不存在


所以-1只是判断文件是否存在 要判断是否能写 应该看返回值是否FILE_ATTRIBUTE_READONLY

问题是FILE_ATTRIBUTE_READONLY的值是多少?

找了下VB的API声明:
Const FILE_ATTRIBUTE_READONLY = &H1
&H1 = 0xh1 = 17.....


继续OllyDebug...

[ 本帖最后由 neo4026 于 2008-1-25 03:46 PM 编辑 ]
作者: chenall    时间: 2008-1-25 15:51
好像&h1的是指十六进制1吧.
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800

作者: neo4026    时间: 2008-1-25 15:54
不行 调用GetFileAttributesW的地方太多了

To lxl1638 : 如果对只读文件强行可写加载返回的提示是?
作者: chenall    时间: 2008-1-25 16:01
应该是返回False
作者: neo4026    时间: 2008-1-25 16:03
原帖由 chenall 于 2008-1-25 04:01 PM 发表
应该是返回False

寒一个 还以为返回的什么字符串就能用串式参考找到
作者: 123    时间: 2008-1-25 16:11
看看那个不用驱动就能解决的高人能不能出现
作者: nn2nn    时间: 2008-1-25 16:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: chenall    时间: 2008-1-25 21:15
我再来炒一炒,看有没有高手出现.....

可以试试imagex.exe程序这个不用wimgapi.dll支持的,如果这个可以改通过了,那就离成功不远了.
作者: nn2nn    时间: 2008-1-25 21:35
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3