精华内容
下载资源
问答
  • winhex脚本

    2013-11-07 10:23:26
    脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文本字符...当在winhex中使用数学表达式的时候,可以引用数学表达式,但是必须用括号括起来。在...
    脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文本字符串(甚至10进制数值)都可以作为参数,你可以使用引号强制转换数字参数为文本参数。如果文本或者变量名中存在空格,则引号是必须的,在引号中的所有字符都被被识别成一个参数而存在。
    当在winhex中使用数学表达式的时候,可以引用数学表达式,但是必须用括号括起来。在数学表达式中不能有空格。同样可以在数学表达式中应用数字变量。支持的操作有,加法(+),减法(-),乘法(*),整除(/),模除(%),逻辑运算符AND(&),OR(|),以及XOR(^)。以下是有效的数学表达式:(5*2+1), (MyVar1/(MyVar2+4)), or (-MyVar)。
    以下是目前支持的脚本命令的详细描述以及使用实例。
    Create "D:\My File.txt" 1000
    创建一个1000字节的新文件,如果已经存在同名文件,则将其覆盖。
    Open "D:\My File.txt"
    Open "D:\*.txt"
    打开指定格式的文件,如果通配符为“?”则winhex会让用户选择要打开的文件。
    Open C:
    Open D:
    打开指定的逻辑驱动器。如果通配符为“:?”则winhex会让用户选择要打开的逻辑驱动器或者磁盘。
    Open 80h
    Open 81h
    Open 9Eh
    打开指定的物理介质。软盘的为00h,硬盘与u盘为80h,光盘为9Eh。
    可以增加第二个参数来设定文件或者介质的编辑模式(“in-place”或者“read-only”)
    CreateBackup
    为活动文件的当前状态创建WHX备份。
    CreateBackupEx 0 100000 650 true "F:\My backup.whx"
    备份当前活动磁盘中从0扇区到100000扇区的数据。备份文件将自动分割成650M大小。并且选择了压缩选项。输出文件的路径以及名称作为最后的参数写入。
    如果备份文件不需要分割,则第三个参数的数值该为0即可。如果不启动压缩功能则将“true”改为“false”。如果需要自动分配文件名以及文件路径则最后的参数表示为“""”即可。
    Goto 0x128
    Goto MyVariable
    将光标的位置移动到偏移量0x128位置(16进制表示)。同样也可以用数字变量(最长8字节)来定义光标移动的位置。
    Move -100
    将当前光标的位置向后移动100字节(16进制)。
    Write "Test"
    Write 0x0D0A
    Write MyVariable
    在光标当前位置(以覆盖模式)写入ASCII字符“Test”或者两个字节的16进制数“0D0A”。这里同样可以写入数字变量中的值。同时将光标移动到被覆盖部分的后面。当到达文件的结尾时,将在文件尾部添加空字节以完成操作。下一个写命令将不会在文件尾巴。
    Write2
    和“Write”的功能类似,当时当到达文件结尾的时候,不会在文件添加空字节。
    So it is not safe to assume that Write2 always moves the current position forward by the number of bytes written.
    Insert "Test"
    功能与“Write”类似,但是在“insert”模式只能应用于文件。
    Read MyVariable 10
    从当前位置读入10个字节的数据到“MyVariable”变量中。如果变量不存在,它将会创建一个。winhex同时可以支持48个不同的变量。另一个创建变量的命令是“Assign”。
    ReadLn MyVariable
    从当前位置读入一整行的数据到“MyVariable”变量中直到遇到换行符。如果变量已经存在了,则变量的大小将会被从新调整。
    Close
    不保存的关闭当前活动窗口。
    CloseAll
    不保存的关闭所有窗口。
    Save
    保存当前活动窗口中打开的文件或磁盘的修改。
    SaveAs "C:\New Name.txt"
    将当前活动窗口打开的文件另存为指定目录下的文件。如果通配符为“?”,则winhex会让用户自己选择保存的路径以及文件名。
    SaveAll
    保存所有窗口中修改。
    Terminate
    中断脚本的执行。
    Exit
    中断脚本的执行并且关闭winhex。
    ExitIfNoFilesOpen
    如果在winhex中没有打开的文件将终止脚本文件的执行。
    Block 100 200
    Block "My Variable 1" "My Variable 2"
    在当前活动窗口中定义一个偏移量从100到200的选块(10进制)。下一行命令表示定义从变量"My Variable 1"到"My Variable 2"的选块(最长8字节)
    Block1 0x100
    在偏移量0x100处定义一个字节的选块。同样可以使用变量。
    Block2 0x200
    定义一个从开头到偏移量0x200部分的选块。同样可以使用变量。
    Copy
    将当前选块复制进剪切板中。如果没有定义选块,其功能和编辑菜单中的复制命令相同。
    Cut
    将当前选块中的文件剪切到剪切板中。
    Remove
    将当前选块中的数据从文件中移除。
    CopyIntoNewFile "D:\New File.dat"
    CopyIntoNewFile "D:\File +MyVariable+.dat"
    将当前选块中的数据复制进指定的新文件,而不复制进剪切板。如果没有定义选块,其功能和编辑菜单中的复制命令相同。同样可以复制磁盘扇区中的数据作为一个新文件。新建的文件不会自动在winhex的编辑窗口中打开。可以在“+”之间加入变量,变量名将被解释为不大于2^24(16M)的整数。通常在循环应用以及文件恢复中比较有用。
    Paste
    将剪切板中的数据粘贴入文件中,并且不改变光标当前位置。
    WriteClipboard
    将剪切板中的数据写入文件或磁盘扇的当前位置中,不改变光标当前位置,并且覆盖从当前光标所在位置以后的数据。
    Convert Param1 Param2
    将当前活动文件中的数据从一种格式转换成另一种格式。有效的参数是ANSI,IBM,EBCDIC,Binary,HexASCII,IntelHex,
    MotorolaS, Base64, UUCode, LowerCase, 以及UpperCase,与转换菜单中的转换菜单命令功能相同。
    AESEncrypt "My Password"
    使用AES加密当前活动文件或者磁盘,或其选块,使用指定的密钥(最高32位)。
    AESDecrypt "My Password"
    解密当前活动文件或磁盘。
    Find "John" [MatchCase MatchWord Down Up BlockOnly SaveAllPos Unicode Wildcards]
    Find 0x1234 [Down Up BlockOnly SaveAllPos Wildcards]
    分别搜索当前活动窗口中名为“john”的字符串或16进制值数0x1234,并且在第一个搜索到的地方停下来。其他的参数是可选的。
    默认的winhex搜索整个文件或磁盘。其他的可选参数功能和通常的winhex搜索选项相同。
    ReplaceAll "Jon" "Don" [MatchCase MatchWord Down Up BlockOnly Unicode Wildcards]
    ReplaceAll 0x0A 0x0D0A [Down Up BlockOnly Wildcards]
    在当前活动窗口中使用其他的值替换所有存在上述字符串或16进制数值的地方。在“in-place”模式下只能应用与磁盘。
    IfFound
    如果发现了值则执行下面的命令。

    IfEqual MyVariable "Hello World"
    IfEqual 0x12345678 MyVariable
    IfEqual MyVariable 1000
    IfEqual MyVariable MyOtherVariable
    IfEqual MyVariable (10*MyOtherVariable)
    比较两个整数值(其中每个值可以是常量,整数变量或者数学表达式)或者两个变量,ASCII字符串,或16进制数值(2进制模式)。比较两个对象的2进制数值长度,如果不相同的话则返回结果为false。只有返回值为true时,下面的命令才会被执行。if条件不可以镶套使用。
    IfGreater MyVariable "Hello World"
    IfGreater 0x12345678 MyVariable
    IfGreater MyVariable 1000
    IfGreater MyVariable MyOtherVariable
    IfGreater MyVariable (10*MyOtherVariable)
    和IfEqual拥有相同的参数。第一个参数大于第二个参数,返回值为true,则下面的命令才能被执行。if条件不可以镶套使用。
    Else
    应用在IfFound或IfEqual之后。如果没有任何对象被搜索到或者比较的目标不相同,则执行else后面的代码。
    EndIf
    结束if条件命令执行(在IfFound或IfEqual之后)。
    {...
    ExitLoop
    ...}
    退出循环。其后会有一个方括号来定义其循环次数,可以是变量也可以是关键字“unlimited”(无限循环)。winhex脚本中循环只能使用ExitLoop命令来退出。循环不可以镶套使用。
    举例:
    { Write "Loop" }[10] 将输出“Loop”字符串10次。
    Label ContinueHere
    创建一个标签并命名为“ContinueHere”
    JumpTo ContinueHere
    脚本跳转到标签处继续执行.
    NextObj
    循环在所有窗口中进行切换“活动”窗口。如果有三个窗口被打开,并且窗口#3状态为活动窗口,则“NextObj”命令将会让窗口#1变为活动窗口。
    ForAllObjDo
    在ForAllObjDo与EndDo之间的脚本代码将在所有打开的文件或者磁盘中执行。
    CopyFile C:\A.dat D:\B.dat
    将C:\A.dat文件中的内容复制到D:\B.dat中。
    MoveFile C:\A.dat D:\B.dat
    将C:\A.dat文件转移到D盘中并命名为D:\B.dat。
    DeleteFile C:\A.dat
    将C:\A.dat文件删除。
    InitFreeSpace
    InitSlackSpace
    使用当前初始化设置清理当前逻辑驱动器中的所有自由空间或松散空间,InitSlackSpace将驱动器的模式临时转换为“in-place”模式,以保存未保存的修改。
    InitMFTRecords
    使用当前初始化设置在当前NTFS格式的逻辑驱动器中清理未使用的MFT FILE记录。对于其他的文件系统无效。修改立即就会写入硬盘中。
    Assign MyVariable 12345
    Assign MyVariable 0x0D0A
    Assign MyVariable "I like WinHex"
    Assign MyVariable MyOtherVariable
    将整数,二进制数值,ASCII文本,或其他变量内容保存到“MyVariable”变量中。如果这个变量不存在,将会被自动创建。其他的创建变量的方法:Read,GetUserInput,InttoStr。同时可以允许有48个变量存在。
    Release MyVariable
    删除一个已存在的变量,因为winhex脚本中只支持48个变量存在,所以用过的不再使用变量我们可以将其删除以释放变量空间。

    GetUserInput MyVariable "Please enter your name:"
    在脚本运行期间,保存用户指定的ASCII文本或二进制数据(0x...)到变量“MyVariable”中。第二个参数给除了用户提示。如果变量不存在,它将重新创建一个。其他创建变量的方式:Assign,Read。
    GetUserInputI MyIntegerVariable "Please enter your age:"
    与GetUserInput功能相同,但是只允许整数型变量。
    Inc MyVariable
    将变量解释为整数(不大于8位)并且每运行一次变量自动加1。在循环中有用。
    Dec MyVariable
    将变量解释为整数(不大于8位)并且每运行一次变量自动减1。在循环中有用。
    IntToStr MyStr MyInt
    IntToStr MyStr 12345
    将第一个变量中的ASCII文本转换成整数并保存到第二个变量中。
    StrToInt MyInt MyStr
    将第一个变量中的整数转换成ASCII文本并保存到第二个变量中。
    GetClusterAlloc MyStr
    在逻辑卷中,找回哪个文件被储存在当前簇中的文本描述,然后将描述保存到指定的变量中。
    GetClusterAllocEx IntVar
    在逻辑卷中,找回一个整数值指示簇是否被分配,1或者非0,表示该簇已被分配。并且将描述保存在指定变量中。
    GetClusterSize IntVar
    返回逻辑卷中簇的大小,并将数值保存到指定的变量中。
    InterpretImageAsDisk
    将磁盘镜像或证据文件作为原始物理磁盘或分区一样对待。需要specialist或forensic许可。
    CalcHash HashType MyVariable
    CalcHashEx HashType MyVariable
    与工具菜单中的hash命令功能相同并且将变量储存在指定变量中(如果变量不存在,则会自动创建)。HashType参数必须为以下类型中的一种:CS8, CS16, CS32, CS64, CRC16, CRC32, MD5, SHA-1, SHA-256, PSCHF。CalcHashEx命令将在windows窗口中显示hash值。
    MessageBox "Caution"
    显示信息对话框,并且提供ok和cancel两个按钮。按下cancel按脚本本。
    ExecuteScript "ScriptName"
    在脚本的当前运行处运行另一个脚本。调用其他外部脚本可以镶套使用。当被调用的脚本执行完成以后,脚本继续执行下面的命令。这个特征可以帮助用户清楚的了解脚本的结构。
    Turbo On
    Turbo Off
    管理道模式开关。
    Debug
    用户可以利用该命令确定脚本中的每一条命令都是否有效。
    UseLogFile
    错误信息被写入当前文件夹下的日志文件“scripting.log”。这些信息不会显示在信息对话框中。非常有用,特别在运行的脚本主机无法远程连接的时候。
    CurrentPos
    GetSize
    unlimited
    以上三个是winhex脚本中的关键字,可以被使用在应用数字参数的地方。在脚本执行过程中,CurrentPos表示当前活动文件或者磁盘窗口中光标的偏移地址,GetSize表示了它的大小。unlimited实际上表示的是整数2,147,483,647。


    转载于:https://blog.51cto.com/awolfs8888/1321498

    展开全文
  • winhex脚本编程.txt

    2021-07-21 12:19:52
    winhex脚本编程.txt
  • winhex脚本使用

    2010-06-23 21:08:57
    winhex脚本使用,winhex脚本使用
  • winhex 脚本教程

    2011-12-30 09:22:41
    winhex 脚本教程,不错的教程文件,学到脚本编写
  • winhex脚本的中文说明,用脚本可以做更多,更快
  • winhex脚本命令教程--中文版.doc
  • WinHex脚本命令教程--中文版

    千次阅读 2017-01-20 17:11:17
    WinHex脚本命令教程–中文版 脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文本字符串(甚至10进制数值)都可以作为参数,你可以使用引号...

    WinHex脚本命令教程–中文版

    脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文本字符串(甚至10进制数值)都可以作为参数,你可以使用引号强制转换数字参数为文本参数。如果文本或者变量名中存在空格,则引号是必须的,在引号中的所有字符都被被识别成一个参数而存在。

    当在winhex中使用数学表达式的时候,可以引用数学表达式,但是必须用括号括起来。在数学表达式中不能有空格。同样可以在数学表达式中应用数字变量。支持的操作有,加法(+),减法(-),乘法(*),整除(/),模除(%),逻辑运算符AND(&),OR(|),以及XOR(^)。以下是有效的数学表达式:(5*2+1),
    (MyVar1/(MyVar2+4)), or (-MyVar)。

    以下是目前支持的脚本命令的详细描述以及使用实例。

    Create “D:\My File.txt” 1000
    创建一个1000字节的新文件,如果已经存在同名文件,则将其覆盖。

    Open “D:\My File.txt”
    Open “D:*.txt”
    打开指定格式的文件,如果通配符为“?”则winhex会让用户选择要打开的文件。

    Open C:
    Open D:
    打开指定的逻辑驱动器。如果通配符为“:?”则winhex会让用户选择要打开的逻辑驱动器或者磁盘。

    Open 80h
    Open 81h
    Open 9Eh
    打开指定的物理介质。软盘的为00h,硬盘与u盘为80h,光盘为9Eh。
    可以增加第二个参数来设定文件或者介质的编辑模式(“in-place”或者“read-only”)

    CreateBackup
    为活动文件的当前状态创建WHX备份。

    CreateBackupEx 0 100000 650 true “F:\My backup.whx”
    备份当前活动磁盘中从0扇区到100000扇区的数据。备份文件将自动分割成650M大小。并且选择了压缩选项。输出文件的路径以及

    名称作为最后的参数写入。
    如果备份文件不需要分割,则第三个参数的数值该为0即可。如果不启动压缩功能则将“true”改为“false”。如果需要自动分配文件名以及文件路径则最后的参数表示为“”“”即可。

    Goto 0x128
    Goto MyVariable
    将光标的位置移动到偏移量0x128位置(16进制表示)。同样也可以用数字变量(最长8字节)来定义光标移动的位置。

    Move 100
    将当前光标的位置向后移动100字节(16进制)。

    Write “Test”
    Write 0x0D0A
    Write MyVariable
    在光标当前位置(以覆盖模式)写入ASCII字符“Test”或者两个字节的16进制数“0D0A”。这里同样可以写入数字变量中的值。

    同时将光标移动到被覆盖部分的后面。当到达文件的结尾时,将在文件尾部添加空字节以完成操作。下一个写命令将不会在文件尾巴

    Write2
    和“Write”的功能类似,当时当到达文件结尾的时候,不会在文件添加空字节。So it is
    not safe to assume that Write2 always moves the current position forward by the number of bytes written.

    Insert “Test”
    功能与“Write”类似,但是在“insert”模式只能应用于文件。

    Read MyVariable 10
    从当前位置读入10个字节的数据到“MyVariable”变量中。如果变量不存在,它将会创建一个。winhex同时可以支持48个不同的变量。另一个创建变量的命令是“Assign”。

    ReadLn MyVariable
    从当前位置读入一整行的数据到“MyVariable”变量中直到遇到换行符。如果变量已经存在了,则变量的大小将会被从新调整。

    Close
    不保存的关闭当前活动窗口。

    CloseAll
    不保存的关闭所有窗口。

    Save
    保存当前活动窗口中打开的文件或磁盘的修改。

    SaveAs “C:\New Name.txt”
    将当前活动窗口打开的文件另存为指定目录下的文件。如果通配符为“?”,则winhex会让用户自己选择保存的路径以及文件名。

    SaveAll
    保存所有窗口中修改。

    Terminate
    中断脚本的执行。

    Exit
    中断脚本的执行并且关闭winhex。

    ExitIfNoFilesOpen
    如果在winhex中没有打开的文件将终止脚本文件的执行。

    Block 100 200
    Block “My Variable 1” “My Variable 2”
    在当前活动窗口中定义一个偏移量从100到200的选块(10进制)。下一行命令表示定义从变量”My Variable 1”到”My Variable 2”的选块(最长8字节)

    Block1 0x100
    在偏移量0x100处定义一个字节的选块。同样可以使用变量。

    Block2 0x200
    定义一个从开头到偏移量0x200部分的选块。同样可以使用变量。

    Copy
    将当前选块复制进剪切板中。如果没有定义选块,其功能和编辑菜单中的复制命令相同。

    Cut
    将当前选块中的文件剪切到剪切板中。

    Remove
    将当前选块中的数据从文件中移除。

    CopyIntoNewFile “D:\New File.dat”
    CopyIntoNewFile “D:\File +MyVariable+.dat”
    将当前选块中的数据复制进指定的新文件,而不复制进剪切板。如果没有定义选块,其功能和编辑菜单中的复制命令相同。同样可以复制磁盘扇区中的数据作为一个新文件。新建的文件不会自动在winhex的编辑窗口中打开。可以在“+”之间加入变量,变量名将被解释为不大于2^24(16M)的整数。通常在循环应用以及文件恢复中比较有用。

    Paste
    将剪切板中的数据粘贴入文件中,并且不改变光标当前位置。

    WriteClipboard
    将剪切板中的数据写入文件或磁盘扇的当前位置中,不改变光标当前位置,并且覆盖从当前光标所在位置以后的数据。

    Convert Param1 Param2
    将当前活动文件中的数据从一种格式转换成另一种格式。有效的参数是ANSI,IBM,EBCDIC,Binary,HexASCII,IntelHex,

    MotorolaS, Base64, UUCode, LowerCase, 以及UpperCase,与转换菜单中的转换菜单命令功能相同。

    AESEncrypt “My Password”
    使用AES加密当前活动文件或者磁盘,或其选块,使用指定的密钥(最高32位)。

    AESDecrypt “My Password”
    解密当前活动文件或磁盘。

    Find “John” [MatchCase MatchWord Down Up BlockOnly SaveAllPos Unicode Wildcards]
    Find 0x1234 [Down Up BlockOnly SaveAllPos Wildcards]
    分别搜索当前活动窗口中名为“john”的字符串或16进制值数0x1234,并且在第一个搜索到的地方停下来。其他的参数是可选的。默认的winhex搜索整个文件或磁盘。其他的可选参数功能和通常的winhex搜索选项相同。

    ReplaceAll “Jon” “Don” [MatchCase MatchWord Down Up BlockOnly Unicode Wildcards]
    ReplaceAll 0x0A 0x0D0A [Down Up BlockOnly Wildcards]
    在当前活动窗口中使用其他的值替换所有存在上述字符串或16进制数值的地方。在“in-place”模式下只能应用与磁盘。

    IfFound
    如果发现了值则执行下面的命令。

    IfEqual MyVariable “Hello World”
    IfEqual 0x12345678 MyVariable
    IfEqual MyVariable 1000
    IfEqual MyVariable MyOtherVariable
    IfEqual MyVariable (10*MyOtherVariable)
    比较两个整数值(其中每个值可以是常量,整数变量或者数学表达式)或者两个变量,ASCII字符串,或16进制数值(2进制模式)。比较两个对象的2进制数值长度,如果不相同的话则返回结果为false。只有返回值为true时,下面的命令才会被执行。if条件不可以镶套使用。

    IfGreater MyVariable “Hello World”
    IfGreater 0x12345678 MyVariable
    IfGreater MyVariable 1000
    IfGreater MyVariable MyOtherVariable
    IfGreater MyVariable (10*MyOtherVariable)
    和IfEqual拥有相同的参数。第一个参数大于第二个参数,返回值为true,则下面的命令才能被执行。if条件不可以镶套使用。

    Else
    应用在IfFound或IfEqual之后。如果没有任何对象被搜索到或者比较的目标不相同,则执行else后面的代码。

    EndIf
    结束if条件命令执行(在IfFound或IfEqual之后)。

    {…
    ExitLoop
    …}
    退出循环。其后会有一个方括号来定义其循环次数,可以是变量也可以是关键字“unlimited”(无限循环)。winhex脚本中循环只能使用ExitLoop命令来退出。循环不可以镶套使用。
    举例:
    { Write “Loop” }[10] 将输出“Loop”字符串10次。

    Label ContinueHere
    创建一个标签并命名为“ContinueHere”

    JumpTo ContinueHere
    脚本跳转到标签处继续执行.

    NextObj
    循环在所有窗口中进行切换“活动”窗口。如果有三个窗口被打开,并且窗口#3状态为活动窗口,则“NextObj”命令将会让窗口#1变为活动窗口。

    ForAllObjDo
    在ForAllObjDo与EndDo之间的脚本代码将在所有打开的文件或者磁盘中执行。

    CopyFile C:\A.dat D:\B.dat
    将C:\A.dat文件中的内容复制到D:\B.dat中。

    MoveFile C:\A.dat D:\B.dat
    将C:\A.dat文件转移到D盘中并命名为D:\B.dat。

    DeleteFile C:\A.dat
    将C:\A.dat文件删除。

    InitFreeSpace
    InitSlackSpace
    使用当前初始化设置清理当前逻辑驱动器中的所有自由空间或松散空间,InitSlackSpace将驱动器的模式临时转换为“in-place”模式,以保存未保存的修改。

    InitMFTRecords
    使用当前初始化设置在当前NTFS格式的逻辑驱动器中清理未使用的MFT FILE记录。对于其他的文件系统无效。修改立即就会写入硬盘中。

    Assign MyVariable 12345
    Assign MyVariable 0x0D0A
    Assign MyVariable “I like WinHex”
    Assign MyVariable MyOtherVariable
    将整数,二进制数值,ASCII文本,或其他变量内容保存到“MyVariable”变量中。如果这个变量不存在,将会被自动创建。其他的创建变量的方法:Read,GetUserInput,InttoStr。同时可以允许有48个变量存在。

    Release MyVariable
    删除一个已存在的变量,因为winhex脚本中只支持48个变量存在,所以用过的不再使用变量我们可以将其删除以释放变量空间。

    GetUserInput MyVariable “Please enter your name:”
    在脚本运行期间,保存用户指定的ASCII文本或二进制数据(0x…)到变量“MyVariable”中。第二个参数给除了用户提示。如果变量不存在,它将重新创建一个。其他创建变量的方式:Assign,Read。

    GetUserInputI MyIntegerVariable “Please enter your age:”
    与GetUserInput功能相同,但是只允许整数型变量。

    Inc MyVariable
    将变量解释为整数(不大于8位)并且每运行一次变量自动加1。在循环中有用。

    Dec MyVariable
    将变量解释为整数(不大于8位)并且每运行一次变量自动减1。在循环中有用。

    IntToStr MyStr MyInt
    IntToStr MyStr 12345
    将第一个变量中的ASCII文本转换成整数并保存到第二个变量中。

    StrToInt MyInt MyStr
    将第一个变量中的整数转换成ASCII文本并保存到第二个变量中。

    GetClusterAlloc MyStr
    在逻辑卷中,找回哪个文件被储存在当前簇中的文本描述,然后将描述保存到指定的变量中。

    GetClusterAllocEx IntVar
    在逻辑卷中,找回一个整数值指示簇是否被分配,1或者非0,表示该簇已被分配。并且将描述保存在指定变量中。

    GetClusterSize IntVar
    返回逻辑卷中簇的大小,并将数值保存到指定的变量中。

    InterpretImageAsDisk
    将磁盘镜像或证据文件作为原始物理磁盘或分区一样对待。需要specialist或forensic许可。

    CalcHash HashType MyVariable
    CalcHashEx HashType MyVariable
    与工具菜单中的hash命令功能相同并且将变量储存在指定变量中(如果变量不存在,则会自动创建)。HashType参数必须为以下类

    型中的一种:CS8, CS16, CS32, CS64, CRC16, CRC32, MD5, SHA-1, SHA-256, PSCHF。CalcHashEx命令将在windows窗口中显示

    hash值。

    MessageBox “Caution”
    显示信息对话框,并且提供ok和cancel两个按钮。按下cancel按脚本本。

    ExecuteScript “ScriptName”
    在脚本的当前运行处运行另一个脚本。调用其他外部脚本可以镶套使用。当被调用的脚本执行完成以后,脚本继续执行下面的命令。这个特征可以帮助用户清楚的了解脚本的结构。

    Turbo On
    Turbo Off
    管理道模式开关。

    Debug
    用户可以利用该命令确定脚本中的每一条命令都是否有效。

    UseLogFile
    错误信息被写入当前文件夹下的日志文件“scripting.log”。这些信息不会显示在信息对话框中。非常有用,特别在运行的脚本主机无法远程连接的时候。

    CurrentPos
    GetSize
    unlimited
    以上三个是winhex脚本中的关键字,可以被使用在应用数字参数的地方。在脚本执行过程中,CurrentPos表示当前活动文件或者磁盘窗口中光标的偏移地址,GetSize表示了它的大小。unlimited实际上表示的是整数2,147,483,647。

    转载地址winhex脚本命令教程–中文版
    NTFS分析
    MFT分析

    展开全文
  • winhex脚本命令

    2009-06-26 23:08:22
    winhex脚本命令教程--中文版 脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文 本字符串(甚至10进制数值)都可以作为参数,你可以使用引号...
    winhex 脚本命令教程 -- 中文版 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长 255 字符的参数。有疑点的地方是十六进制,文

    本字符串(甚至 10 进制数值)都可以作为参数,你可以使用引号强制转换数字参数为文本参数。如果文本或者变量名中存在空格,

    则引号是必须的,在引号中的所有字符都被被识别成一个参数而存在。

    当在 winhex 中使用数学表达式的时候,可以引用数学表达式,但是必须用括号括起来。在数学表达式中不能有空格。同样可以在数

    学表达式中应用数字变量。支持的操作有,加法( + ),减法( - ),乘法( * ),整除( / ),模除( % ),逻辑运算符 AND & ),

    OR | ),以及 XOR ^ )。以下是有效的数学表达式: (5*2+1), (MyVar1/(MyVar2+4)), or (-MyVar)

    以下是目前支持的脚本命令的详细描述以及使用实例。

    Create "D:\My File.txt" 1000
    创建一个 1000 字节的新文件,如果已经存在同名文件,则将其覆盖。

    Open "D:\My File.txt"
    Open "D:\*.txt"
    打开指定格式的文件,如果通配符为 “?” winhex 会让用户选择要打开的文件。

    Open C:
    Open D:
    打开指定的逻辑驱动器。如果通配符为 “:?” winhex 会让用户选择要打开的逻辑驱动器或者磁盘。

    Open 80h
    Open 81h
    Open 9Eh
    打开指定的物理介质。软盘的为 00h ,硬盘与 u 盘为 80h ,光盘为 9Eh
    可以增加第二个参数来设定文件或者介质的编辑模式( “in-place” 或者 “read-only”

    CreateBackup
    为活动文件的当前状态创建 WHX 备份。

    CreateBackupEx 0 100000 650 true "F:\My backup.whx"
    备份当前活动磁盘中从 0 扇区到 100000 扇区的数据。备份文件将自动分割成<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /> 650M 大小。并且选择了压缩选项。输出文件的路径以及

    名称作为最后的参数写入。
    如果备份文件不需要分割,则第三个参数的数值该为 0 即可。如果不启动压缩功能则将 “true” 改为 “false” 。如果需要自动分配

    文件名以及文件路径则最后的参数表示为 “""” 即可。

    Goto 0x128
    Goto MyVariable
    将光标的位置移动到偏移量 0x128 位置( 16 进制表示)。同样也可以用数字变量(最长 8 字节)来定义光标移动的位置。

    Move -100
    将当前光标的位置向后移动 100 字节( 16 进制)。

    Write "Test"
    Write 0x0D0A
    Write MyVariable
    在光标当前位置(以覆盖模式)写入 ASCII 字符 “Test” 或者两个字节的 16 进制数 “0D0A” 。这里同样可以写入数字变量中的值。

    同时将光标移动到被覆盖部分的后面。当到达文件的结尾时,将在文件尾部添加空字节以完成操作。下一个写命令将不会在文件尾

    Write2
    “Write” 的功能类似,当时当到达文件结尾的时候,不会在文件添加空字节。 So it is
    not safe to assume that Write2 always moves the current position forward by the number of bytes
    written.

    Insert "Test"
    功能与 “Write” 类似,但是在 “insert” 模式只能应用于文件。

    Read MyVariable 10
    从当前位置读入 10 个字节的数据到 “MyVariable” 变量中。如果变量不存在,它将会创建一个。 winhex 同时可以支持 48 个不同的变

    量。另一个创建变量的命令是 “Assign”

    ReadLn MyVariable
    从当前位置读入一整行的数据到 “MyVariable” 变量中直到遇到换行符。如果变量已经存在了,则变量的大小将会被从新调整。

    Close
    不保存的关闭当前活动窗口。

    CloseAll
    不保存的关闭所有窗口。

    Save
    保存当前活动窗口中打开的文件或磁盘的修改。

    SaveAs "C:\New Name.txt"
    将当前活动窗口打开的文件另存为指定目录下的文件。如果通配符为 “?” ,则 winhex 会让用户自己选择保存的路径以及文件名。

    SaveAll
    保存所有窗口中修改。

    Terminate
    中断脚本的执行。

    Exit
    中断脚本的执行并且关闭 winhex

    ExitIfNoFilesOpen
    如果在 winhex 中没有打开的文件将终止脚本文件的执行。

    Block 100 200
    Block "My Variable 1" "My Variable 2"
    在当前活动窗口中定义一个偏移量从 100 200 的选块( 10 进制)。下一行命令表示定义从变量 "My Variable 1" "My Variable 2"

    的选块(最长 8 字节)

    Block1 0x100
    在偏移量 0x100 处定义一个字节的选块。同样可以使用变量。

    Block2 0x200
    定义一个从开头到偏移量 0x200 部分的选块。同样可以使用变量。

    Copy
    将当前选块复制进剪切板中。如果没有定义选块,其功能和编辑菜单中的复制命令相同。

    Cut
    将当前选块中的文件剪切到剪切板中。

    Remove
    将当前选块中的数据从文件中移除。

    CopyIntoNewFile "D:\New File.dat"
    CopyIntoNewFile "D:\File +MyVariable+.dat"
    将当前选块中的数据复制进指定的新文件,而不复制进剪切板。如果没有定义选块,其功能和编辑菜单中的复制命令相同。同样可

    以复制磁盘扇区中的数据作为一个新文件。新建的文件不会自动在 winhex 的编辑窗口中打开。可以在 “+” 之间加入变量,变量名

    将被解释为不大于 2^24 16M )的整数。通常在循环应用以及文件恢复中比较有用。

    Paste
    将剪切板中的数据粘贴入文件中,并且不改变光标当前位置。

    WriteClipboard
    将剪切板中的数据写入文件或磁盘扇的当前位置中,不改变光标当前位置,并且覆盖从当前光标所在位置以后的数据。

    Convert Param1 Param2
    将当前活动文件中的数据从一种格式转换成另一种格式。有效的参数是 ANSI IBM EBCDIC Binary HexASCII IntelHex

    MotorolaS, Base64, UUCode, LowerCase, 以及 UpperCase ,与转换菜单中的转换菜单命令功能相同。

    AESEncrypt "My Password"
    使用 AES 加密当前活动文件或者磁盘,或其选块,使用指定的密钥(最高 32 位)。

    AESDecrypt "My Password"
    解密当前活动文件或磁盘。

    Find "John" [MatchCase MatchWord Down Up BlockOnly SaveAllPos Unicode Wildcards]
    Find 0x1234 [Down Up BlockOnly SaveAllPos Wildcards]
    分别搜索当前活动窗口中名为 “john” 的字符串或 16 进制值数 0x1234 ,并且在第一个搜索到的地方停下来。其他的参数是可选的。

    默认的 winhex 搜索整个文件或磁盘。其他的可选参数功能和通常的 winhex 搜索选项相同。

    ReplaceAll "Jon" "Don" [MatchCase MatchWord Down Up BlockOnly Unicode Wildcards]
    ReplaceAll 0x0A 0x0D0A [Down Up BlockOnly Wildcards]
    在当前活动窗口中使用其他的值替换所有存在上述字符串或 16 进制数值的地方。在 “in-place” 模式下只能应用与磁盘。

    转载于:https://blog.51cto.com/wsszsmx/170151

    展开全文
  • winhex模板编写工具,能帮助你快速分析文件格式!还有篇介绍winhex模板的文档和winhex绿色版程序!
  • 如何使用WinHex脚本自动修复FAT32文件系统DBR  此脚本不是去复制备份的DBR,而是通过文件系统计算BPB参数,来达到修复文件系统的目的,下面是脚本:   Assign ParSize GetSize Assign SecSize 512 ...

    如何使用WinHex脚本自动修复FAT32文件系统DBR

            此脚本不是去复制备份的DBR,而是通过文件系统计算BPB参数,来达到修复文件系统的目的,下面是脚本:

     

    Assign ParSize GetSize
    Assign SecSize 512

    Goto 0x000
    Write 0xEB5890
    Write 0x4D53444F53352E30
    Write SecSize
    Write 0x00
    Write 0x0000
    Write 0x02
    Write 0x0000
    Write 0x0000
    Write 0xF8
    Write 0x0000
    Write 0x3F00
    Write 0xFF00
    Write 0x00000000
    Write 0x0000000000000000
    Write 0x0000
    Write 0x0000
    Write 0x02000000
    Write 0x0100
    Write 0x0600
    Write 0x000000000000000000000000
    Write 0x80
    Write 0x00
    Write 0x29
    Write 0x9E3A76F0
    Write 0x48424E2052657061697220
    Write 0x4641543332202020
    {
    Write 0x00
    }[420]
    Write 0x55AA

    Goto 0x020
    Write (ParSize/SecSize)

    Goto 0x000
    Find 0xF8FFFF0FFFFFFF Down
    IfFound
    Assign FAT1 CurrentPos
    Move SecSize
    EndIF

    Find 0xF8FFFF0FFFFFFF Down
    IfFound
    Assign FAT2 CurrentPos
    Move SecSize
    EndIF

    Goto 0x024
    Write ((FAT2/SecSize)-(FAT1/SecSize))

    Goto 0x00E
    Write (FAT1/SecSize)

    Goto ((FAT2-FAT1)+FAT2)
    Find 0x2E20202020202020202020 Down
    IfFound
    Assign SEC1 CurrentPos
    Move 26
    Read CDX1 2
    EndIF

    Find 0x2E20202020202020202020 Down
    IfFound
    Assign SEC2 CurrentPos
    Move 26
    Read CDX2 2
    EndIF

    Goto 0x00D
    Write (((SEC1/SecSize)-(SEC2/SecSize))/((CDX1)-(CDX2)))

    MessageBox "DBR修复完成!"

    展开全文
  • 【教程】佳能5d3 mov视频恢复 winhex脚本恢复MOV视频 数据恢复 佳能数据恢复 *******************************************************************************************************************************...
  • 照片或特殊文件丢失后 采用winhex脚本进行数据恢复方法1:打开winhex,打开一个正常的图片文件如:JPG CR2 BMP; 视频类文件 MP4 WAV RMVB MTS MOV ; 办法文档文件如DOC XLS PPT MDB等.查看文件前8-16位字节,然后保存...
  • 在看了困惑的浪漫的《winhex高级专题2》,测试了一下最后一个案例,用脚本写了一个RAID5盘顺序计算的winhex脚本。在此对困惑的浪漫表示感谢。 下面是源代码: //根据困惑的浪漫winhex高级教程2改编messagebox ...
  • 脚本命令适用的环境比较多。脚本文件中的注释以双斜杠为开头。脚本支持最长 255 字符的参数。有疑点的地方是十六进制,文本...当在 winhex 中使用数学表达式的时候,可以引用数学表达式,但是必须用括号括起来。在数...
  • 接某机关硬盘,恢复全盘的word,如果... 脚本实现的步骤如下: 1脚本实现word的批量提取,提取后80%以上直接打不开. 2脚本实现关键字的批量提取,找到关键字后上下各拷贝512KB 3脚本实现unicode码转汉字. ...
  • 遇到一个客户用的是特殊软件,软件是不支持找此类型的,因为这种类型的数据对客户很重要,最后没办法只能动用WinHex脚本了,我询问客户每个文件大概多大,客户说不知道,还好我发现了文件的特种判断出了文件尾,...
  • 代码很少,用起来还是很方便的,不多做解释了。 GetUserInputI sqdx "请输入单个扇区大小(字节):"GetUserInputI ch "请输入要跳转的扇区号:" Goto (ch*sqdx) 转载于:...
  • 昨天有一个同行想要一个MOV的批量提取脚本,我试着自己写了一个DOC的脚本(不考虑碎片),已经实现了DOC的批量提取,不过遗憾的是脚本以SEC为单位,速度比较慢。一直想着如何做到簇级提取(这样似乎能快一些),不过...
  • 故障盘:三星80G 本盘 故障现象: 其中一个逻辑区被病毒破坏,大概有几十个文件夹无法打开,文件系统为FAT32 故障分析: 经过分析发现出问题的文件夹子目录或三级目录中被插入1个写入"USB"字样的...看来得使用脚本处理...
  • 转载于:https://blog.51cto.com/chs163/219709
  • 今天早上起来,稀里糊涂,可能是我对数据恢复这个行业走火入魔了,一大早上就萌发一个想法,用脚本实现查找分区,然后我就开始起来想具体要怎么弄,之前的想法就是做一个简单的MBR分区表的重建,但是做着做着又来了...
  • 转载于:https://blog.51cto.com/chs163/219659
  • 经过实验发现使用脚本可以正常定位碎片并得到碎片信息,当然脚本也是有缺点的,那就是速度比较慢。下一步会在用户的镜像上做进一步的实验,以判断在大型的MDF文件上脚本的执行效率和准确性! 照片名称:SQL MDF...
  • WINHEX 数据恢复实用脚本

    千次阅读 2017-05-22 09:04:34
    WINHEX 脚本 Winhex 脚本,之所以不叫程序,因为他实际上是一种批处理,通过对 Winhex 现有的 Winhex API 的调用,来实现需要的功能,所以功能有限。 如果电脑上直接安装了 Winhex 是可以直接...
  • winhex mdf 提取脚本

    2011-11-08 21:32:04
    提取 分区的中的 mdf 碎片文件 有需要的朋友可以研究下 脚本中的代码
  • WinHex应用与数据恢复

    2018-04-07 10:13:14
    本书还揭示了WinHex 脚本编程及WinHex API 函数的秘密,这在相关图书中是很难得的。最后,本书以SQL Server 数据库页组合技术为案例回顾了部 分所学内容。 本书以WinHex 的功能模块为线索,看似讲述操作技法,实则...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,674
精华内容 669
关键字:

winhex脚本