本帖最后由 a2002 于 2017-7-26 11:55 编辑
对于十六进制编辑,大家应该都知道吧,
我研究了一下,弄出了vbs的二字节型字符码到一字节型字符码的转换,在文件末的function中,
...也不好说什么,直接上源码:- rem ToHex made by a2002
- if Wscript.Arguments.Count=0 then wscript.Quit
- strLoadFile=wscript.Arguments(0)
- set fso=createobject("scripting.FileSystemObject")
- set open=fso.opentextfile(strLoadFile)
- do while open.atendofstream=false
- line=open.readline
- for i=1 to len(line)
- hx=hexex(mid(line,i,1))
- all=all+hx
- next
- all=all+"0D 0A "
- loop
- write="Address 0 1 2 3 4 5 6 7 8 9 A B C D E F"+chr(13)+chr(10)
- for i=1 to int(len(all)/48)
- write=write+right("00000000"+hex(i*16-16),8)+" "
- write=write+mid(all,i*48-47,48)+chr(13)+chr(10)
- next
- if len(all) mod 48 = 0 then
- write=left(write,len(write)-2)
- else
- write=write+right("00000000"+hex(i*16-16),8)+" "
- for i=1 to len(all) mod 48
- write=write+mid(all,int(len(all)/48)*48+i*3-2,3)
- next
- end if
- set open=fso.opentextfile(strLoadFile,2)
- open.write write
- open.close
- msgbox "Text to hex successfully"
-
- function hexex(str)
- str=asc(str)
- if str < 0 then
- str=str+65536
- lefts=int(str/256)
- rights=str-lefts*256
- lefts=right("0"+hex(lefts),2)
- rights=right("0"+hex(rights),2)
- hexex=lefts+" "+rights+" "
- else
- str=right("0"+hex(str),2)
- hexex=str+" "
- end if
- end function
复制代码 处理文本的结果:- Address 0 1 2 3 4 5 6 7 8 9 A B C D E F
- 00000000 69 66 20 57 73 63 72 69 70 74 2E 41 72 67 75 6D
- 00000010 65 6E 74 73 2E 43 6F 75 6E 74 3D 30 20 74 68 65
- 00000020 6E 20 77 73 63 72 69 70 74 2E 51 75 69 74 0D 0A
- 00000030 73 74 72 4C 6F 61 64 46 69 6C 65 3D 77 73 63 72
- 00000040 69 70 74 2E 41 72 67 75 6D 65 6E 74 73 28 30 29
- 00000050 0D 0A 73 65 74 20 66 73 6F 3D 63 72 65 61 74 65
- 00000060 6F 62 6A 65 63 74 28 22 73 63 72 69 70 74 69 6E
- 00000070 67 2E 46 69 6C 65 53 79 73 74 65 6D 4F 62 6A 65
- 00000080 63 74 22 29 0D 0A 73 65 74 20 6F 70 65 6E 3D 66
- 00000090 73 6F 2E 6F 70 65 6E 74 65 78 74 66 69 6C 65 28
- 000000A0 73 74 72 4C 6F 61 64 46 69 6C 65 29 0D 0A 64 6F
- 000000B0 20 77 68 69 6C 65 20 6F 70 65 6E 2E 61 74 65 6E
- 000000C0 64 6F 66 73 74 72 65 61 6D 3D 66 61 6C 73 65 0D
- 000000D0 0A 09 6C 69 6E 65 3D 6F 70 65 6E 2E 72 65 61 64
- 000000E0 6C 69 6E 65 0D 0A 09 66 6F 72 20 69 3D 31 20 74
- 000000F0 6F 20 6C 65 6E 28 6C 69 6E 65 29 0D 0A 09 09 68
- 00000100 78 3D 68 65 78 65 78 28 6D 69 64 28 6C 69 6E 65
- 00000110 2C 69 2C 31 29 29 0D 0A 09 09 61 6C 6C 3D 61 6C
- 00000120 6C 2B 68 78 0D 0A 09 6E 65 78 74 0D 0A 09 61 6C
- 00000130 6C 3D 61 6C 6C 2B 22 30 44 20 30 41 20 22 0D 0A
- 00000140 6C 6F 6F 70 0D 0A 77 72 69 74 65 3D 22 41 64 72
- 00000150 65 73 73 20 20 20 20 30 20 20 31 20 20 32 20 20
- 00000160 33 20 20 34 20 20 35 20 20 36 20 20 37 20 20 38
- 00000170 20 20 39 20 20 41 20 20 42 20 20 43 20 20 44 20
- 00000180 20 45 20 20 46 22 2B 63 68 72 28 31 33 29 2B 63
- 00000190 68 72 28 31 30 29 0D 0A 66 6F 72 20 69 3D 31 20
- 000001A0 74 6F 20 69 6E 74 28 6C 65 6E 28 61 6C 6C 29 2F
- 000001B0 34 38 29 0D 0A 09 77 72 69 74 65 3D 77 72 69 74
- 000001C0 65 2B 72 69 67 68 74 28 22 30 30 30 30 30 30 30
- 000001D0 30 22 2B 68 65 78 28 69 2A 31 36 2D 31 36 29 2C
- 000001E0 38 29 2B 22 20 22 0D 0A 09 77 72 69 74 65 3D 77
- 000001F0 72 69 74 65 2B 6D 69 64 28 61 6C 6C 2C 69 2A 34
- 00000200 38 2D 34 37 2C 34 38 29 2B 63 68 72 28 31 33 29
- 00000210 2B 63 68 72 28 31 30 29 0D 0A 6E 65 78 74 0D 0A
- 00000220 69 66 20 6C 65 6E 28 61 6C 6C 29 20 6D 6F 64 20
- 00000230 34 38 20 3D 20 30 20 74 68 65 6E 0D 0A 09 77 72
- 00000240 69 74 65 3D 6C 65 66 74 28 77 72 69 74 65 2C 6C
- 00000250 65 6E 28 77 72 69 74 65 29 2D 32 29 0D 0A 65 6C
- 00000260 73 65 0D 0A 09 77 72 69 74 65 3D 77 72 69 74 65
- 00000270 2B 72 69 67 68 74 28 22 30 30 30 30 30 30 30 30
- 00000280 22 2B 68 65 78 28 69 2A 31 36 2D 31 36 29 2C 38
- 00000290 29 2B 22 20 22 0D 0A 09 66 6F 72 20 69 3D 31 20
- 000002A0 74 6F 20 6C 65 6E 28 61 6C 6C 29 20 6D 6F 64 20
- 000002B0 34 38 0D 0A 09 09 77 72 69 74 65 3D 77 72 69 74
- 000002C0 65 2B 6D 69 64 28 61 6C 6C 2C 69 6E 74 28 6C 65
- 000002D0 6E 28 61 6C 6C 29 2F 34 38 29 2A 34 38 2B 69 2A
- 000002E0 33 2D 32 2C 33 29 0D 0A 09 6E 65 78 74 0D 0A 65
- 000002F0 6E 64 20 69 66 0D 0A 73 65 74 20 6F 70 65 6E 3D
- 00000300 66 73 6F 2E 6F 70 65 6E 74 65 78 74 66 69 6C 65
- 00000310 28 73 74 72 4C 6F 61 64 46 69 6C 65 2C 32 29 0D
- 00000320 0A 6F 70 65 6E 2E 77 72 69 74 65 20 77 72 69 74
- 00000330 65 0D 0A 6F 70 65 6E 2E 63 6C 6F 73 65 0D 0A 6D
- 00000340 73 67 62 6F 78 20 22 73 75 63 63 65 73 73 66 75
- 00000350 6C 22 0D 0A 0D 0A 66 75 6E 63 74 69 6F 6E 20 68
- 00000360 65 78 65 78 28 73 74 72 29 0D 0A 09 73 74 72 3D
- 00000370 61 73 63 28 73 74 72 29 0D 0A 09 69 66 20 73 74
- 00000380 72 20 3C 20 30 20 74 68 65 6E 0D 0A 09 09 73 74
- 00000390 72 3D 73 74 72 2B 36 35 35 33 36 0D 0A 09 09 6C
- 000003A0 65 66 74 73 3D 69 6E 74 28 73 74 72 2F 32 35 36
- 000003B0 29 0D 0A 09 09 72 69 67 68 74 73 3D 73 74 72 2D
- 000003C0 6C 65 66 74 73 2A 32 35 36 0D 0A 09 09 6C 65 66
- 000003D0 74 73 3D 72 69 67 68 74 28 22 30 22 2B 68 65 78
- 000003E0 28 6C 65 66 74 73 29 2C 32 29 0D 0A 09 09 72 69
- 000003F0 67 68 74 73 3D 72 69 67 68 74 28 22 30 22 2B 68
- 00000400 65 78 28 72 69 67 68 74 73 29 2C 32 29 0D 0A 09
- 00000410 09 68 65 78 65 78 3D 6C 65 66 74 73 2B 22 20 22
- 00000420 2B 72 69 67 68 74 73 2B 22 20 22 0D 0A 09 65 6C
- 00000430 73 65 0D 0A 09 09 73 74 72 3D 72 69 67 68 74 28
- 00000440 22 30 22 2B 68 65 78 28 73 74 72 29 2C 32 29 0D
- 00000450 0A 09 09 68 65 78 65 78 3D 73 74 72 2B 22 20 22
- 00000460 0D 0A 09 65 6E 64 20 69 66 0D 0A 65 6E 64 20 66
- 00000470 75 6E 63 74 69 6F 6E 0D 0A
复制代码
|