[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

原创:32位系统下,用cmd脚本 修改任意文件任意位置的 HEX,函数方式调用

  1. @Echo off&Mode con cols=80 lines=26&setlocal EnableDelayedExpansion&color a&Title 修改任意文件的HEX [-☆Ver: 1.1 -☆ By_ 凌枫工作组  Q群:35962310 ☆-]
  2. chcp 437>nul&graftabl 936>nul
  3. rem 调用方法:
  4. rem call :修改HEX "100 FFFF" "第一要替换的数值+,+第二个要替换的数值+,+三+,+四+,+....+,+第N个" "要把第一个替换为的数值+,+要把第二个替换为的数值+,+三+,+四+,+....+,+第N个" "要修改的文件的路径"
  5. rem 比如 破解 XP SP3 的TCPIP连接数,由原来的 10 破解为 512:
  6. rem 下面调用的参数的意思是:
  7. rem 将 %windir%\system32\drivers\tcpip.sys 文件里
  8. rem 数值为 05 00 0A 00 00 00 的地方 修改为:05 00 00 02 00 00
  9. rem 数值为 6B ED 05 00 01 00 的地方 修改为:6E EF 05 00 01 00
  10. call :修改HEX "100 FFFF" "05 00 0A 00 00 00+,+6B ED 05 00 01 00" "05 00 00 02 00 00+,+6E EF 05 00 01 00" "%windir%\system32\drivers\tcpip.sys"
  11. exit
  12. :修改HEX
  13. for %%p in ("!tmp!\Blocks") do md %%p 2>nul&set BkTmpP=%%~p
  14. if not exist !BkTmpP!\1 (
  15. set CutF_V=!tmp!\CutFile.vbs
  16. (
  17. Echo iCutSize = 1024 * 64
  18. Echo With CreateObject^("Adodb.Stream"^)
  19. Echo .Open
  20. Echo .Type = 1
  21. Echo .LoadFromFile^("%~4" ^)
  22. Echo iBlocks = .Size / iCutSize
  23. Echo If iBlocks ^<^> Fix^(iBlocks^) Then iBlocks = iBlocks+1
  24. Echo Set S = CreateObject^("Adodb.Stream"^)
  25. Echo For i = 1 To iBlocks
  26. Echo .Position = ^(i - 1^) * iCutSize
  27. Echo S.Type = 1
  28. Echo S.Mode = 3
  29. Echo S.Open
  30. Echo .CopyTo S, iCutSize
  31. Echo S.SaveToFile "!BkTmpP!\" ^& i, 2
  32. Echo S.Close
  33. Echo Next
  34. Echo .Close
  35. Echo End With
  36. )>!CutF_V!
  37. wscript.exe /b !CutF_V!
  38. )
  39. set V_2=%2&set V_2=!V_2:+="!
  40. set V_3=%3&set V_3=!V_3:+="!
  41. FOR %%a in (!V_2!) do (
  42. set /a Var1=!Var1!+1&set Var2=
  43. FOR %%A in (!V_3!) do (
  44.   set /a Var2=!Var2!+1
  45.   if "!Var1!"=="!Var2!" for /f %%Y in ('dir "!BkTmpP!\*" /b /o:n') do for /f "tokens=*" %%Z in ('Echo exit^|cmd/kprompt $_S %~1 %%~a $_Q^|debug !BkTmpP!\%%Y^|find ":"') do Echo exit|cmd/kprompt $_S %~1 %%~a $_E %%Z %%~A $_W $_Q|debug !BkTmpP!\%%Y >nul
  46. )
  47. )
  48. set Files=&for /f %%F in ('dir "!BkTmpP!\*" /b /o:n') do set Files=!Files!+"!BkTmpP!\%%F"/b
  49. copy /y !Files:~1! "已修改_%~n4%~x4" >nul
  50. Del /f /s /q "!BkTmpP!\*.*" >nul
  51. goto :eof
复制代码

如果原文能找到出处,还请注明,谢谢

TOP

回复 2# lxzzr


    我猜楼主就是凌枫工作组

TOP

本人原创的 。。。。    以组织的名义 发表的~~~  请移到原创区吧~~ 谢谢啦!

TOP

回复 4# tkaven


大概研究了下,你这个脚本,不支持长文件名,中文名暂且不论,文件大小有限制,不能大于576KB,望改进,加油!

TOP

返回列表