3mile
发表于 2010-8-26 17:08:51
回复 15# C.L
的确,写硬盘是非常危险的。
但是水能载舟亦能覆舟,加上阅读权限吧。阅读权限设得高点,至少100以上。
让大家(其实是指我自己)有升级的冲动。
让我努力提高吧。
C.L
发表于 2010-8-26 17:12:09
本帖最后由 C.L 于 2010-8-26 17:20 编辑
回复 16# 3mile
好吧,我也觉得应该设一下阅读权限,要是不懂的人拿来乱搞,说不定会出什么事情,不过阅读权限设50好了,高级会员可以看到,毕竟能升到高级会员的,应该多少会懂得一点的
找不到设置权限,倒是有个积分限制的,那就设500积分好了,和权限50是对等的吧
afan
发表于 2010-8-26 17:23:13
NB得很,看得我蛋疼…
又多了个搁置的项目…
itljl
发表于 2010-8-26 18:21:37
权限太大了,看不了。
xsjtxy
发表于 2010-8-26 18:27:19
楼上的,你快了啊。还有30分升级。
我大概明年就能看到了。伤心啊。
如果能直接写扇区是不是可以不挂载盘符。直接读写。防止分区里面的东西中毒?
C.L
发表于 2010-8-28 14:02:38
回复 20# xsjtxy
如果能直接写扇区是不是可以不挂载盘符。直接读写。防止分区里面的东西中毒?
理论上是可以的,不过现在有个技术问题没有得到解决,就是大于4G的扇区指针不能正确的没置。
itljl
发表于 2010-8-28 14:31:17
学习一下,但无法查看。
C.L
发表于 2010-8-28 14:34:11
回复 22# itljl
为了安全考虑,不得不设个权限,不方便之处,请谅解
不过你的积分也差不多,加把劲就可以了,呵呵~~
itljl
发表于 2010-8-28 14:36:14
回复 23# C.L
大哥,我已经很努力了,可是权限还差得远。可以再低一点吗?
需要这个代码,主要是帮一个朋友检测和备份一下他的MBR,谢谢。
pusofalse
发表于 2010-8-28 14:42:00
Func _NtSetInformationFile($hFile, $iInfoClass, $vBuffer, $iBuffer, $sBufferType = "ptr")
Local $iResult, $tStatus, $pStatus
$tStatus = DllStructCreate("ubyte Status")
$pStatus = DllStructGetPtr($tStatus)
$iResult = DllCall("Ntdll.dll", "dword", "NtSetInformationFile", "handle", $hFile, _
"ptr", $pStatus, $sBufferType, $vBuffer, "ulong", $iBuffer, _
"dword", $iInfoClass)
Return SetError($iResult, 0, $iResult = 0)
EndFunc ;==>_NtSetInformationFile
#include <SetupAPI.au3>
$hFile = _CM_Create_File("\\.\PhysicalDrive0", 0xC0000000, 3, 0, 3, 0)
_NtSetInformationFile($hFile, 14, 1024 * 1024 * 1024 * 7, 8, "int64*")
$pBuffer = _CM_Heap_Alloc(512)
_CM_Read_Device($hFile, $pBuffer, 512)
_CM_Close_Handle($hFile)
$tBuffer = DllStructCreate("byte Binary", $pBuffer)
MsgBox(0, @Extended, DllStructGetData($tBuffer, "Binary"))
偏移7G。
itljl
发表于 2010-8-28 14:45:01
回复 25# pusofalse
弱弱的请教一下,这里的7G,4G指的磁盘的大小?还是文件大小?Thanks
pusofalse
发表于 2010-8-28 14:48:15
回复 26# itljl
偏移指针,即从7G处开始读取。
C.L
发表于 2010-8-28 15:03:09
回复 25# pusofalse
很强大的代码,学习了,上次P版说过了这个函数,还没有空去研究,现在P版的研究成果放出来了,感谢P版。
有代码了,可得要仔细的了解一下NtSetInformationFile()这个函数的作用,呵呵~~
yejier
发表于 2010-8-28 20:35:22
这么高级的东西 没有权限看郁闷加强发帖
C.L
发表于 2010-8-28 22:31:24
回复 25# pusofalse
再次感谢P版,已解决4G限制的问题,经过测试,现在更改后的代码可以读取大小为500G硬盘内的任意的扇区,现在AU3理论上、技术上已经可以任意读取分区表,PBR,EBR,FAT表,$MFTMirr,$Volume等特殊文件和任何的扇区上的普通文件,应该可以算是一个突破吧~~ 呵呵~
代码现在还不是太成熟,暂不放出。