[求助] 求带比较的winhex脚本编写

[复制链接]

该用户从未签到

3

主题

33

回帖

19

积分

[INTOHARD]工兵

Rank: 1

积分
19
发表于 2017-9-20 09:25:53 | 显示全部楼层 |阅读模式
要求查找文件头,并指定跳到特定扇区读取特定数节进行已知比较 符合则选块生成文件,不符合则跳过继续执行查找下一个文件头

比如,已知文件头112233445566 ,已知第二扇区开始为778899

目的是过滤垃圾文件,(指过滤掉文件头为112233445566 但第二扇区非778899的文件)

于是我想到利用比较代码,但是不知道怎么写?请大神指教

下面是我的写法,但无法实现比较,不知道哪里错了,求解
assign m4 778899
assign m1 0                                 
{  
                                             
find 0x112233445566 down                          
iffound
                                          
assign m2 currentpos   
move 512
read m5 3
ifequal m4 m5                 
move 576000                                                                                    
assign m3 currentpos

                  
block m2 m3  


                                    
endif                                                      
inc m1  
                                                      
copyintonewfile "H:\recovery\video.+m1"            
}                                                               
[2]                           
  • TA的每日心情
    擦汗
    2018-5-18 22:56
  • 签到天数: 609 天

    [LV.9]二品侍郎

    16

    主题

    1144

    回帖

    6005

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6005
    发表于 2017-9-20 10:12:55 | 显示全部楼层
    0x112233445566这个如果在winhex里面看到是这样,在脚本里面就要高低位反转...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-18 22:56
  • 签到天数: 609 天

    [LV.9]二品侍郎

    16

    主题

    1144

    回帖

    6005

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6005
    发表于 2017-9-20 10:14:18 | 显示全部楼层
    if语句在脚本里面好像是不能嵌套运行的...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    33

    回帖

    19

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    19
     楼主| 发表于 2017-9-20 10:23:41 | 显示全部楼层
    要怎么解决不能嵌套,大神可以帮忙修改下代码吗?谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-18 22:56
  • 签到天数: 609 天

    [LV.9]二品侍郎

    16

    主题

    1144

    回帖

    6005

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6005
    发表于 2017-9-20 10:25:35 | 显示全部楼层
    本帖最后由 scq330 于 2017-9-20 10:27 编辑

    一般错就错在16进制在脚本里面要写成高低位反转的,其它我看脚本问题不大,
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-18 22:56
  • 签到天数: 609 天

    [LV.9]二品侍郎

    16

    主题

    1144

    回帖

    6005

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6005
    发表于 2017-9-20 10:29:51 | 显示全部楼层
    恢复者aa 发表于 2017-9-20 10:23
    要怎么解决不能嵌套,大神可以帮忙修改下代码吗?谢谢

    现在脚本是运行出错还是不能查找到相应的东西?如果是出错,先修改代码让它能查找到相应的东西,后面的再一步一步的调试...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-18 22:56
  • 签到天数: 609 天

    [LV.9]二品侍郎

    16

    主题

    1144

    回帖

    6005

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6005
    发表于 2017-9-20 10:32:03 | 显示全部楼层
    本帖最后由 scq330 于 2017-9-20 10:37 编辑

    assign m4 778899
    assign m1 0                                 
    {  
                                                 
    find 0x112233445566 down        //这里要注意查找的16进制数据和在winhex里面看到的不一样,要高低位反转                  
    iffound
                                              
    assign m2 currentpos   
    move 512
    read m5 3
    endif     //在这里读取到m5的数值就要中断第一个if判断了
    ifequal m4 m5         //比较m4 m5,如果值为真,进行下面的操作        
    move 576000                                                                                    
    assign m3 currentpos

                      
    block m2 m3  


                                        
                                                       
    inc m1  
                                                          
    copyintonewfile "H:\recovery\video.+m1"        
    endif       //这里结束比较,结果无论真假都回去上面接着查下去,由下面的循环数据决定
    }                                                               
    [2]   //这个循环数据不好确定
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    33

    回帖

    19

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    19
     楼主| 发表于 2017-9-20 10:33:28 | 显示全部楼层
    现在脚本可以实现截取,就是无法判断第二扇区,判断语句没有生效
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-18 22:56
  • 签到天数: 609 天

    [LV.9]二品侍郎

    16

    主题

    1144

    回帖

    6005

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    6005
    发表于 2017-9-20 10:35:00 | 显示全部楼层
    恢复者aa 发表于 2017-9-20 10:33
    现在脚本可以实现截取,就是无法判断第二扇区,判断语句没有生效

    我大概改了一下,你看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    33

    回帖

    19

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    19
     楼主| 发表于 2017-9-20 11:09:16 | 显示全部楼层
    scq330 发表于 2017-9-20 10:35
    我大概改了一下,你看看

    好的,感谢大神,我按你的方法试试
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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